CN111755039A - 在恢复进程期间减少存储器系统中单元干扰的设备及方法 - Google Patents

在恢复进程期间减少存储器系统中单元干扰的设备及方法 Download PDF

Info

Publication number
CN111755039A
CN111755039A CN201911282865.0A CN201911282865A CN111755039A CN 111755039 A CN111755039 A CN 111755039A CN 201911282865 A CN201911282865 A CN 201911282865A CN 111755039 A CN111755039 A CN 111755039A
Authority
CN
China
Prior art keywords
memory block
memory
open
page
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
CN201911282865.0A
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.)
SK Hynix Inc
Original Assignee
SK Hynix Inc
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 SK Hynix Inc filed Critical SK Hynix Inc
Publication of CN111755039A publication Critical patent/CN111755039A/zh
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1489Generic software techniques for error detection or fault masking through recovery blocks
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/30Means for acting in the event of power-supply failure or interruption, e.g. power-supply fluctuations
    • 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/0706Error 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 the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error 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 the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • 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/0706Error 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 the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0736Error 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 the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function
    • G06F11/0742Error 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 the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function in a data processing system embedded in a mobile device, e.g. mobile phones, handheld devices
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3013Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is an embedded system, i.e. a combination of hardware and software dedicated to perform a certain function in mobile devices, printers, automotive or aircraft systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3034Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3055Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0882Page mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/4074Power supply or voltage generation circuits, e.g. bias voltage generators, substrate voltage generators, back-up power, power 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/08Address circuits; Decoders; Word-line control circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/22Safety or protection circuits preventing unauthorised or accidental access to memory cells
    • G11C16/225Preventing erasure, programming or reading when power supply voltages are outside the required ranges
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/30Power supply circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/021Detection or location of defective auxiliary circuits, e.g. defective refresh counters in voltage or current generators
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/028Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/76Masking faults in memories by using spares or by reconfiguring using address translation or modifications
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/14Power supply arrangements, e.g. power down, chip selection or deselection, layout of wirings or power grids, or multiple supply levels
    • G11C5/143Detection of memory cassette insertion or removal; Continuity checks of supply or ground lines; Detection of supply variations, interruptions or levels ; Switching between alternative supplies
    • G11C5/144Detection of predetermined disconnection or reduction of power supply, e.g. power down or power standby

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Human Computer Interaction (AREA)
  • Mathematical Physics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Power Engineering (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本申请涉及一种操作存储器系统的方法。该方法包括:当电力在中断之后被供应时,确定是否执行恢复操作;当恢复操作开始时,生成用于检查存储器装置的操作状态的内部命令;响应于内部命令,访问存储器装置中的至少一个开放存储块;检查该至少一个开放存储块的操作状态;在该至少一个开放存储块中的从边界编程页面开始的预设数量的空白页面上编程预设量的虚设数据;并且在该至少一个开放块中恢复与恢复操作相关联的数据。

Description

在恢复进程期间减少存储器系统中单元干扰的设备及方法
相关申请的交叉引用
本专利申请要求于2019年3月27日提交的申请号为10-2019-0035008的韩国专利申请的优先权,其全部公开内容通过引用并入本文。
技术领域
本发明的各个实施例涉及一种存储器系统,且更特别地,涉及一种在断电之后的存储器系统的恢复操作期间减少或避免在特定非易失性存储块中发生单元干扰的方法和设备。
背景技术
近来,计算机环境范例已经转变成能够随时随地访问计算机系统的普适计算。因此,诸如移动电话、数码相机、笔记本电脑等的便携式电子装置的使用正在增长。这种便携式电子装置通常使用或包括使用或嵌入至少一个存储器装置的存储器系统,即数据存储装置。数据存储装置可用作便携式电子装置的主存储装置或辅助存储装置。
用作非易失性半导体存储器装置的数据存储装置的优点在于:因为其不具有机械驱动部件(例如,机械臂)而具有优异的稳定性和耐久性,具有高数据访问速度和低功耗。这种数据存储装置的示例包括USB(通用串行总线)存储器装置、具有各种接口的存储卡以及固态驱动器(SSD)。
发明内容
本公开的实施例可提供一种存储器系统、数据处理系统和操作进程或方法,其可通过降低存储器系统的操作复杂性和性能劣化来快速且可靠地将数据处理到存储器装置中,从而提高强存储器装置的使用效率。
在供应到存储器系统的电力不稳定的情况下,存储器系统可能重复执行用于检查存储器装置中的至少一个开放块的状态的操作,使得可能在未编程数据的存储器单元中发生至少一个开放块中的干扰。本公开的实施例可提供一种用于每当访问至少一个开放块时在该至少一个开放块中编程预设量的虚设数据以下的方法和设备,以减少在对该至少一个开放块中多次编程新的数据条时由于干扰导致错误的可能性。
进一步地,本公开的实施例可提供一种用于在存储器系统的启动操作、恢复操作或重启操作频繁发生的操作环境中减少或避免重复访问特定开放块的设备和方法,从而可提高存储器系统的寿命或耐用性,并且可增强存储器系统中的编程操作的操作稳定性。
在实施例中,一种操作存储器系统的方法可包括:当电力在中断之后被供应时,确定是否执行恢复操作;当恢复操作开始时,生成用于检查存储器装置的操作状态的内部命令;响应于内部命令,访问存储器装置中的至少一个开放存储块;检查该至少一个开放存储块的操作状态;在该至少一个开放存储块中的从边界编程页面开始的预设数量的空白页面上编程预设量的虚设数据;并且在该至少一个开放存储块中恢复与恢复操作相关联的数据。
访问至少一个开放存储块可包括基于日志来搜索该至少一个开放存储块;向该至少一个开放存储块中编程有数据的至少一个页面施加读取电压;并且输出该至少一个页面中存储的数据。
访问至少一个开放存储块可进一步包括基于所输出的数据来调整读取电压的电平。
可将读取电压顺序地或随机地施加到至少一个页面,或者单独地施加到该至少一个开放存储块中的预设数量的页面。
作为示例而非限制,边界编程页面可以是该至少一个开放存储块中最后的编程页面。空白页面是该至少一个开放存储块中被擦除且在被擦除之后未被编程的页面。
当预设量的虚设数据的一部分被编程在该至少一个开放存储块的最后页面上并且预设量的虚设数据未被全部编程时,预设量的虚设数据的剩余部分不被编程在另一存储块上。
预设量的虚设数据可被编程在该至少一个开放存储块中的范围为总页面的10%和50%之间的预设数量的空白页面上。
检查该至少一个开放存储块的操作状态可包括搜索边界编程页面,而不扫描该至少一个开放存储块的第一页面至边界编程页面。
该方法可进一步包括,当虚设数据被编程在该至少一个开放存储块的最后页面上时,将该至少一个开放存储块改变为闭合存储块;并且将至少一个空闲存储块指定为取代闭合存储块的新的开放块。
在另一实施例中,存储器系统可包括存储器装置,该存储器装置包括多个非易失性存储块;以及控制器,被配置成确定当供应电力时是否执行与电力中断相对应的恢复操作。在恢复操作开始之后,控制器可被配置成:访问多个非易失性存储块之中的至少一个开放存储块,在该至少一个开放存储块中的从边界编程页面开始的预设数量的空白页面上编程预设量的虚设数据,并且在该至少一个开放存储块中恢复与恢复操作相关联的数据。
控制器可被配置成在供应电力之后的预设时间内,生成用于检查存储器装置的操作状态的内部命令。
控制器可被配置成基于日志来搜索该至少一个开放存储块。存储器装置可被配置成响应于内部命令,向该至少一个开放存储块中编程有数据的至少一个页面施加读取电压,并且输出该至少一个页面中存储的数据。
控制器可被配置成基于所输出的数据来调整读取电压的电平。
可将读取电压顺序地或随机地施加到至少一个页面,或者单独地施加到该至少一个开放存储块中的预设数量的页面。
边界编程页面可以是该至少一个开放存储块中最后的编程页面。空白页面可以是该至少一个开放存储块中被擦除且在被擦除之后未被编程的页面。
当预设量的虚设数据的一部分被编程在该至少一个开放存储块的最后页面上并且预设量的虚设数据未被完全编程时,预设量的虚设数据的剩余部分不被编程在另一存储块上。
预设量的虚设数据可被编程在该至少一个开放存储块中的范围为总页面的10%和50%之间的预设数量的空白页面上。
控制器可被配置成,当虚设数据被编程在该至少一个开放存储块的最后页面上时,将该至少一个开放存储块改变为闭合存储块,并且将至少一个空闲存储块指定为取代闭合存储块的新的开放块。
在另一实施例中,一种操作存储器系统的方法可包括:当供应电力时,检查存储器装置中至少一个开放存储块的操作状态;并且基于操作状态来确定是否使用该至少一个开放存储块。检查操作状态可包括:访问存储器装置中的至少一个开放存储块;在该至少一个开放存储块中搜索边界编程页面;并且在该至少一个开放存储块中的从边界编程页面开始的预设数量的空白页面上编程预设量的虚设数据。
该方法可进一步包括,当虚设数据被编程在该至少一个开放存储块的最后页面上时,将该至少一个开放存储块改变为闭合存储块;并且将至少一个空闲存储块指定为取代闭合存储块的新的开放块。
在实施例中,存储器系统可包括:存储器装置,包括多个非易失性存储块;以及控制器,被配置成针对编程操作分配至少一个开放存储块,并且检查该至少一个开放存储块的操作状态。控制器可被配置成当检查该至少一个开放存储块的操作状态时,在该至少一个开放存储块中编程预设量的虚设数据。
附图说明
在本文中参照附图进行描述,其中相同的附图标记在多个附图中始终表示相同的部件,并且其中:
图1是示出根据本公开的实施例的控制存储器系统的设备的框图;
图2是示出根据本公开的实施例的包括存储器系统的数据处理系统的框图;
图3是示出根据本公开的实施例的存储器系统的框图;
图4是示出根据本公开的实施例的存储器系统的操作方法的示图;
图5是示出根据本公开的实施例的在存储器系统中对虚设数据进行编程的操作的示图;
图6是示出根据本公开的实施例的由存储器系统的固件运行的操作的示图;并且
图7和图8描述根据本公开的实施例的在存储器系统中执行的恢复操作。
具体实施方式
以下参照附图更详细地描述本公开的各种示例。然而,本发明的方面和特征可以不同的方式来实现以形成其它实施例,包括任意所公开的实施例的变型。因此,本发明不应被解释为限于本文阐述的实施例。而是,提供所描述的实施例使得本公开是彻底且完整的,并将本公开充分地传达给本发明所属领域的技术人员。在整个本公开中,相同的附图标记在本公开的各个附图和示例中始终表示相同的部件。注意的是,对“实施例”、“另一实施例”等的参考不一定意味着仅一个实施例,并且对任何这种短语的不同参考不一定针对相同的实施例。
将理解的是,虽然可在本文中使用术语“第一”、“第二”、“第三”等来识别各个元件,但是这些元件不受这些术语的限制。这些术语用于将一个元件与另一元件区分开,否则该元件与该另一元件具有相同或相似的名称。因此,在不脱离本发明的精神和范围的情况下,一个示例中的第一元件在另一示例中可被称为第二元件或第三元件。
附图不一定按比例绘制,并且在一些情况下,为了清楚地说明实施例的特征,可能已经夸大了比例。当元件被称为连接或联接到另一元件时,应当理解的是,前者可直接连接或联接到后者,或者经由其间的一个或多个中间元件电连接或联接到后者。另外,还将理解的是,当元件被称为在两个元件“之间”时,其可以是这两个元件之间的唯一元件,或者也可存在一个或多个中间元件。
本文使用的术语仅为了描述特定实施例的目的而不旨在限制本发明。如本文使用的,除非上下文另有明确说明,否则单数形式也旨在包括复数形式,并且反之亦然。
将进一步理解的是,当在本说明书中使用时,术语“包括”、“包括有”、“包含”和“包含有”指定所陈述元件的存在,但不排除一个或多个其它元件的存在或添加。如本文所使用的,术语“和/或”包括一个或多个相关所列项目的任意和全部组合。
除非另有定义,否则本文使用的包括技术术语和科学术语的所有术语具有与本发明所属领域的普通技术人员鉴于本公开所通常理解的含义相同的含义。将进一步理解的是,诸如在常用词典中限定的那些术语的术语应被理解为具有与其在本公开和相关领域的背景下的含义一致的含义,并且不以理想化或过于形式化的意义来解释,除非本文明确地如此定义。
在以下描述中,为了提供对本发明的透彻理解,阐述了许多具体细节。可在没有一些或全部这些具体细节的情况下实践本发明。在其它情况下,未详细地描述公知的进程结构和/或进程,以免不必要地模糊本发明。
还要注意的是,在一些情况下,如对相关领域的技术人员显而易见的是,除非另有具体说明,否则结合一个实施例描述的特征或元件可单独使用或与另一实施例的其它特征或元件组合使用。
下面参照附图详细描述本公开的实施例,其中相同的附图标记表示相同的元件。
在图1中,根据本公开的实施例,存储器系统110包括控制器130和存储器装置150。存储器系统110可与另一装置,例如计算装置接合。
存储器装置150可包括多个非易失性存储块。非易失性存储块可具有其中多个非易失性存储器单元可通过字线、位线等联接的结构。当存储器装置150中的多个存储块被实施为非易失性存储器的类型时,能够存储数据的存储块可能不支持数据重写操作。因此,如果存储块的至少一部分中未记录任何数据条,则可在存储块的该至少一部分中编程新的数据条。然而,当数据条被写入到特定存储块中的所有页面上时,在该存储块中存储的数据条被擦除之前,另外数据条无法被存储或编程在该存储块中。
另外,可将多个非易失性存储块划分成多个区域。作为示例而非限制,可将存储器装置150划分成存储系统信息的系统区域和存储用户数据的数据区域。用户可能无法直接访问系统区域。系统区域中包括的非易失性存储块可存储固件、映射信息、日志、历史信息等。另一方面,数据区域中包括的另外非易失性存储块可存储用户数据,该用户数据可由用户输入或从主机输入,或者响应于用户请求或主机请求被输出。根据实施例,一些系统信息可与相应的用户数据一起存储在相同的非易失性存储块中。
在实施例中,系统区域中存储的日志或历史信息可存储在系统区域中包括的多个非易失性存储块的预设位置或定位中,而数据区域中存储的用户数据顺序地存储在数据区域的多个非易失性存储块中。系统区域和数据区域可以不同的方式进行控制。系统区域和数据区域可不被混合或重叠,使得系统区域和数据区域分别存储在不同的存储块中。然而,根据实施例,在存储块中存储的所有数据被擦除之后,该存储块可被重新分配为系统区域或数据区域。
控制器130可编程或存储新数据,或者读取或擦除存储器装置150中存储的数据。控制器130可支持数据输入/输出(I/O)操作,诸如编程数据、读取数据和/或擦除数据。进一步地,控制器130可监测供应到存储器系统110的电力,并且执行与未正常供应电力的情况相对应的预设操作。
在实施例中,控制器130可检测通电312和断电314。参照图4,控制器130中的电力检测器316可检查或监测供应到控制器130的电力是否低于预设电平。此处,预设电平可以是存储器系统110内稳定操作所需的最小电平。当供应到存储器系统110的电力高于预设电平时,电力检测器316可识别所供应的电力稳定。当供应的电力稳定时,电力检测器316可输出正常电力状态NORMAL_POWER作为监测结果。另一方面,当电力低于预设电平或者未供应电力时,电力检测器316可确定所供应的电力不稳定,并且输出异常电力状态LOW_POWER。
在参照图1描述的实施例中,控制器130包括电力检测器316。但是,根据另一实施例,电力检测器316可设置在控制器130的外部。
当供应电力时,可从另一装置(例如,主机等)向存储器系统110传送命令、数据等。然而,当电力突然中断(例如,突然断电,SPO)使得电力供应不足时,存储器系统110可能无法正常执行数据输入/输出(I/O)操作。当在存储器系统110执行与从另一装置输入的命令、数据等相对应的操作的同时电力切断时,由存储器系统110执行的操作可停止或中止。
为了提高或改善与另一装置的操作接合的可靠性,当在存储器系统110中执行的操作由于突然断电(SPO)而停止或中止之后恢复(即,再次供应)电力时,存储器系统110可能需要恢复到电力突然中断之前的先前状态。当存储器系统110未恢复到电力中断前的先前状态时,诸如存储用户或主机所需的数据的一些操作可能会消失得无影无踪。
存储器系统110可顺序地记录或存储与从另一装置请求的操作相对应的事件等。例如,与所输入的请求或命令相对应的多个事件可存储在诸如队列的数据结构中,并且多个事件可由事件处理电路324来处理或处置。
如在本公开中使用的,术语“电路”可指代以下的所有内容:(a)仅硬件电路实施方案(诸如仅以模拟和/或数字电路的实施方案)以及(b)电路与软件(和/或固件)的组合,诸如(如适用于):(i)处理器的组合或(ii)处理器/软件(包括一起工作以使诸如移动电话或服务器的设备执行各种功能的数字信号处理器、软件和存储器)的部分;以及(c)需要软件或固件来进行操作的电路,诸如微处理器或微处理器的一部分,即使该软件或固件并非物理地存在。“电路”的这种定义适用于在本申请中、包括在任意权利要求中该术语的所有使用。作为进一步的示例,如在本申请中所使用的,术语“电路”还将覆盖仅处理器(或多个处理器)或处理器的部分及其(或它们)的附带软件和/或固件的实施方案。例如并且如果适用于特定的权利要求元素,术语“电路”还将覆盖用于存储装置的集成电路。
当可能预期或监测到未供应电力或电力供应不稳定时,存储器系统110可准备存储关于电力停止或中止之前的情况的信息,以便在再次供应或恢复电力之后执行恢复操作。根据实施例,如图1中未示出的,存储器系统110可使用保留的电力以用于该操作。用于恢复操作的这种信息可包括日志或历史信息。日志或历史信息可包括可存储在诸如队列的数据结构中的多个事件。多个事件可包括当电力中断时已运行的第一任务、待调度的第二任务以及已被执行但其响应还未对另一装置(例如,主机)应答的第三任务。为了提高或确保存储器系统110和另一装置之间的操作可靠性并避免多余的操作,存储器系统110可将第三任务存储在日志或历史信息中。
在实施例中,日志或历史信息可由备份电路318来配置。例如,当从电力检测器316接收到异常电力状态LOW_POWER时,备份电路318可使用辅助装置中存储的电能来生成日志或历史信息。虽然未示出,但辅助装置可包括电容器等,其能够保存准备恢复操作所涉及的备份电路318和事件处理电路324所使用的最小电能。
当备份电路318生成日志或历史信息时,事件处理电路324被配置成将日志或历史信息存储在存储器装置150中。在事件处理电路324将日志或历史信息存储在存储器装置150中之后,存储器系统110可能处于断电314。
当在中断之后恢复电力时,控制器130可将存储器装置150中存储的诸如固件和映射信息的系统信息加载到图2和图3所示的存储器144中,并且从存储器装置150传送在电力中断或停止之前存储的日志或历史信息。
例如,当存储器系统110从断电314转向通电312时,控制器130中的恢复电路322可通过事件处理电路324来加载存储器装置150中存储的日志或历史信息,并且将该日志或历史信息存储到存储器144中。事件处理电路324可顺序地执行日志或历史信息中存储的事件,使得存储器系统110可恢复,即返回到电力中断之前的操作状态。
此外,事件处理电路324可执行用于检查关于图4所示的至少一个开放存储块的操作状态的方法。可检查存储器装置150中包括的至少一个开放块的操作状态,并且可在相应的开放块中编程预设量的虚设数据。
根据实施例,备份电路318和恢复电路322可利用逻辑电路或程序算法来实施。作为示例而非限制,当利用程序算法实施时,备份电路318和恢复电路322可被包括在系统固件中。每当供应的电力中断并且存储器系统110的操作异常停止时,可自动执行备份电路318和恢复电路322的操作。当电源在存储器系统110已正常处理与所请求或调度的操作相对应的所有事件之后停止时,恢复电路322可不执行恢复操作。
例如,可假设在存储器系统110的操作环境中所供应的电力不稳定。作为不稳定操作环境的示例,在安装有存储器系统110的计算装置或数据处理系统中,电力供应不足,或者电力供应装置工作异常或不稳定。在这些情况下,每当再次供应或恢复电力时,存储器系统110可能重复执行恢复操作。每次重复执行恢复操作时,控制器130可执行用于检查存储器装置150中包括的至少一个开放块的操作状态的操作。在检查存储器装置150中包括的至少一个开放块的操作状态之后,可在相应的开放块中编程预设量的虚设数据,以避免对相应的开放块的过度重复访问。
恢复操作执行日志或历史信息中包括的事件。如果重复恢复操作,则可能重复执行相同的任务。相同任务的一些重复执行可能不会对存储器系统110造成问题。但是,当日志或历史信息中包括的任务需要访问存储器装置150中的特定存储块时,控制器130可能针对恢复操作已重复访问该特定存储块,从而可能使可被示出为读取计数或擦除计数的、特定存储块的特性或属性劣化。例如,如果电力不稳定并且重复执行恢复操作,则也极可能重复访问特定开放存储块的操作。然而,如果每当执行恢复操作时在特定开放存储块中编程预设量的虚设数据,则因为特定开放存储块被改变为闭合存储块,并且指定或分配另外存储块作为新的开放存储块来取代该闭合存储块,因而可以减少针对该特定开放存储块的重复访问次数。
虽然图1示出存储器系统中用于执行恢复操作的一些组件,但这些实施例可应用于存储器系统中用于执行启动操作的其他组件。稍后将参照图6描述用于在与启动操作相关的至少一个开放存储块中编程预设量的虚设数据的操作。
在图2中,根据本公开的实施例的数据处理系统100可包括存储器系统110和与存储器系统110接合或可操作地联接的主机102。
例如,主机102可包括诸如移动电话、MP3播放器和膝上型计算机的各种便携式电子装置中的任意一种,或诸如台式计算机、游戏机、电视(TV)和投影仪等的电子装置。
主机102还包括至少一个操作系统(OS),OS通常可管理和控制在主机102中执行的功能和操作。OS可提供与存储器系统110接合的主机102与存储器系统110的用户之间的互操作性。OS可支持与用户请求相对应的功能和操作。作为示例而非限制,根据主机102的移动性,OS可包括通用操作系统和移动操作系统。根据系统需求或用户环境,通用操作系统可被分为个人操作系统和企业操作系统。包括Windows和Chrome的个人操作系统可用于支持针对一般目的的服务。但企业操作系统可专门用于确保和支持高性能,包括Windowsserver、Linux、Unix等。进一步地,移动操作系统可包括Android、iOS、Windows mobile等。移动操作系统可用于支持针对移动性的服务或功能(例如,省电功能)。主机102可包括多个操作系统。对应于用户请求,主机102可运行与存储器系统110互锁的多个操作系统。主机102可将与用户请求相对应的多个命令传送到存储器系统110中,从而在存储器系统110内执行与命令相对应的操作。下面参照图4和图5描述在存储器系统110中处置多个命令。
存储器系统110可响应于来自主机102的请求来操作或执行特定功能或操作,并且特别地,可存储待由主机102访问的数据。存储器系统110可用作主机102的主存储器系统或辅助存储器系统。根据主机接口的协议,存储器系统110可利用可与主机102电联接的各种类型的存储装置中的任意一种来实施。合适的存储装置的非限制性示例包括固态驱动器(SSD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、缩小尺寸的MMC(RS-MMC)、微型MMC、安全数字(SD)卡、迷你SD、微型SD、通用串行总线(USB)存储装置、通用闪存(UFS)装置、紧凑式闪存(CF)卡、智能媒体(SM)卡、记忆棒等。
存储器系统110的存储装置可利用例如动态随机存取存储器(DRAM)和静态RAM(SRAM)的易失性存储器装置和/或诸如以下的非易失性存储器装置来实施:只读存储器(ROM)、掩模ROM(MROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、铁电RAM(FRAM)、相变RAM(PRAM)、磁阻RAM(MRAM)、电阻式RAM(RRAM或ReRAM)和闪速存储器。
存储器系统110可包括控制器130和存储器装置150。存储器装置150可存储待由主机102访问的数据。控制器130可控制数据在存储器装置150中的存储。
控制器130和存储器装置150可集成到单个半导体装置中,该单个半导体装置可被包括在如上所例示的各种类型的存储器系统中的任意一种中。
作为示例而非限制,控制器130和存储器装置150可被集成到单个半导体装置中。控制器130和存储器装置150可被如此集成以形成SSD来提高操作速度。当存储器系统110用作SSD时,连接到存储器系统110的主机102的操作速度可以比连接到硬盘的主机102的操作速度提高更多。在另一实施例中,控制器130和存储器装置150可被集成到一个半导体装置中以形成存储卡,例如,PC卡(PCMCIA)、紧凑式闪存(CF)卡、智能媒体卡(SM、SMC)、记忆棒、多媒体卡(MMC、RS-MMC、微型MMC)、SD卡(SD、迷你SD、微型SD、SDHC)或通用闪速存储器。
存储器系统110可被配置成例如以下的一部分:计算机、超移动PC(UMPC)、工作站、上网本、个人数字助理(PDA)、便携式计算机、网络平板、平板电脑、无线电话、移动电话、智能电话、电子书、便携式多媒体播放器(PMP)、便携式游戏机、导航系统、黑盒、数码相机、数字多媒体广播(DMB)播放器、三维(3D)电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器、数字视频播放器、配置数据中心的存储装置、能够在无线环境下传送和接收信息的装置、配置家庭网络的各种电子装置中的一种、配置计算机网络的各种电子装置中的一种、配置远程信息处理网络的各种电子装置中的一种、射频识别(RFID)装置或配置计算系统的各种组件中的一种。
存储器装置150可以是非易失性存储器装置,并且即使在不供应电力时也可保持其中存储的数据。存储器装置150可通过写入操作存储从主机102提供的数据,同时通过读取操作将存储在其中的数据提供到主机102。存储器装置150可包括多个存储块152、154、156,多个存储块152、154、156中的每个可包括多个页面。多个页面中的每个可包括与多个字线(WL)电联接的多个存储器单元。存储器装置150还包括多个存储器管芯,多个存储器管芯中的每个包括多个平面,多个平面中的每个包括多个存储块152、154、156之中的存储块。另外,存储器装置150可以是非易失性存储器装置,例如闪速存储器,其中闪速存储器可以是三维堆叠结构。
控制器130可控制存储器装置150的全部操作,诸如读取操作、写入操作、编程操作和擦除操作。例如,控制器130可响应于来自主机102的请求来控制存储器装置150。控制器130可将从存储器装置150读取的数据提供到主机102。控制器130可将由主机102提供的数据存储到存储器装置150中。
控制器130可包括全部经由内部总线可操作地联接的主机接口(I/F)132、处理器134、错误校正码(ECC)单元138、电源管理单元(PMU)140、存储器接口(I/F)142以及存储器144。
主机接口132可处理从主机102提供的命令和数据,并可通过诸如以下的各种接口协议中的至少一种与主机102通信:通用串行总线(USB)、多媒体卡(MMC)、高速外围组件互连(PCI-e或PCIe)、小型计算机系统接口(SCSI)、串列SCSI(SAS)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、小型计算机系统接口(SCSI)、增强型小型磁盘接口(ESDI)以及电子集成驱动器(IDE)。根据实施例,主机接口132是用于与主机102交换数据的组件,主机接口132可通过被称为主机接口层(HIL)的固件来实施。
ECC单元138可校正待在存储器装置150中处理(例如,从存储器装置150输出)的数据的错误位,该ECC单元138可包括ECC编码器和ECC解码器。此处,ECC编码器可对待编程在存储器装置150中的数据执行错误校正编码以生成添加奇偶校验位的经编码数据,并且将经编码数据存储在存储器装置150中。当控制器130读取存储在存储器装置150中的数据时,ECC解码器可检测并校正从存储器装置150读取的数据中包括的错误。换言之,在对从存储器装置150读取的数据执行错误校正解码之后,ECC单元138可确定错误校正解码是否已成功并输出指示信号(例如,校正成功信号或校正失败信号)。ECC单元138可使用在ECC编码进程期间生成的奇偶校验位来校正读取数据的错误位。当错误位的数量大于或等于可校正错误位的阈值数量时,ECC单元138可不校正错误位,而是可输出指示校正错误位失败的错误校正失败信号。
ECC单元138可基于诸如以下的编码调制来执行错误校正操作:低密度奇偶校验(LDPC)码、博斯-查德胡里-霍昆格姆(Bose-Chaudhri-Hocquenghem,BCH)码、turbo码、里德-所罗门(Reed-Solomon,RS)码、卷积码、递归系统码(RSC)、网格编码调制(TCM)、分组编码调制(BCM)等。ECC单元138可包括基于上述码中的至少一个来执行错误校正操作的电路、模块、系统或装置中的全部或一些。
PMU 140可管理在控制器130中提供的电力。例如,PMU 140可检测图1中描述的通电312和断电314。另外,根据实施例,PMU 140可包括图1所示的电力检测器316。
存储器接口142可用作用于处置控制器130和存储器装置150之间传输的命令和数据的接口,以允许控制器130响应于从主机102传递的请求来控制存储器装置150。在当存储器装置150是闪速存储器时,并且特别地当存储器装置150是NAND闪速存储器时的情况下,存储器接口142可在处理器134的控制下生成用于存储器装置150的控制信号,并可处理输入到存储器装置150中或从存储器装置150输出的数据。存储器接口142可提供接口,用于在控制器130与存储器装置150之间处理命令和数据,例如NAND闪存接口的操作,特别是控制器130与存储器装置150之间的操作。根据实施例,存储器接口142可通过被称为闪存接口层(FIL)的固件而被实施为用于与存储器装置150交换数据的组件。
存储器144可支持由存储器系统110和控制器130执行的操作。存储器144可存储用于存储器系统110和控制器130中的操作而生成或传递的临时数据或事务数据。控制器130可响应于来自主机102的请求来控制存储器装置150。控制器130可将从存储器装置150读取的数据传递到主机102中。控制器130可将通过主机102输入的数据存储到存储器装置150内。存储器144可用于存储控制器130和存储器装置150执行诸如读取操作或编程/写入操作的操作所需的数据。
存储器144可利用易失性存储器来实施。存储器144可利用静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)或两者来实施。虽然图1例示了存储器144设置在控制器130内,但本发明不限于这种设置。也就是说,存储器144可以在控制器130的内部或外部。例如,存储器144可由具有在存储器144与控制器130之间传送数据和/或信号的存储器接口的外部易失性存储器实现。
存储器144可存储执行由主机102请求的诸如数据写入和数据读取的操作所必需的数据和/或在存储器装置150和控制器130之间传输以用于如上所述的诸如垃圾收集和损耗均衡的后台操作的数据。根据实施例,为了支持存储器系统110中的操作,存储器144可包括编程存储器、数据存储器、写入缓冲器/高速缓存、读取缓冲器/高速缓存、数据缓冲器/高速缓存、映射缓冲器/高速缓存等。
处理器134可利用微处理器或中央处理单元(CPU)来实施。存储器系统110可包括一个或多个处理器134。处理器134可控制存储器系统110的全部操作。作为示例而非限制,处理器134可响应于从主机102输入的写入请求或读取请求来控制对存储器装置150的编程操作或读取操作。根据实施例,处理器134可使用或运行固件来控制存储器系统110的全部操作。在本文中,可将固件称为闪存转换层(FTL)。FTL可用作主机102与存储器装置150之间的接口。主机102可通过FTL将用于写入操作和读取操作的请求传送到存储器装置150。
FTL可管理地址映射、垃圾收集、损耗均衡等的操作。特别地,FTL可加载、生成、更新或存储映射数据。因此,控制器130可通过映射数据将从主机102输入的逻辑地址与存储器装置150的物理地址进行映射。因为地址映射操作,存储器装置150可另外用作通用存储装置来执行读取操作或写入操作。而且,通过基于映射数据的地址映射操作,当控制器130尝试更新存储在特定页面中的数据时,由于闪速存储器装置的特性,控制器130可将更新后的数据编程在另一空页面上,并且可使该特定页面的旧数据无效(例如,将与更新后的数据的逻辑地址相对应的物理地址从该特定页面更新为新编程页面)。进一步地,控制器130可将新数据的映射数据存储到FTL中。
例如,当在存储器装置150中执行从主机102请求的操作时,控制器130使用被实施为微处理器或中央处理单元(CPU)等的处理器134。与存储器装置150接合的处理器134可处置与从主机102输入的命令相对应的指令或命令。控制器130可执行作为与从主机102输入的命令相对应的命令操作的前台操作,诸如与写入命令相对应的编程操作、与读取命令相对应的读取操作、与擦除/丢弃命令相对应的擦除/丢弃操作以及与具有设置命令的设置参数命令或设置特征命令相对应的参数设置操作。
又例如,控制器130可通过处理器134对存储器装置150执行后台操作。作为示例而非限制,存储器装置150的后台操作包括将存储器装置150中的存储块152、154、156之中的存储块中的数据复制和存储到另一存储块的操作(例如,垃圾收集(GC)操作)。后台操作可包括将存储在存储器装置150中的存储块152、154、156的至少一个中的数据移动或交换到存储块152、154、156的至少另一个中的操作(例如,损耗均衡(WL)操作)。在后台操作期间,控制器130可使用处理器134将存储在控制器130中的映射数据存储到存储块152、154、156中的至少一个,例如,映射清除(flush)操作。检查多个存储块152、154、156之中的坏块的坏块管理操作是由处理器134执行的后台操作的另一示例。
在存储器系统110中,控制器130执行与从主机102接收的多个命令相对应的多个命令操作。例如,当顺序地、随机地或可选地执行与多个编程命令相对应的多个编程操作、与多个读取命令相对应的多个读取操作以及与多个擦除命令相对应的多个擦除操作时,控制器130可确定用于将控制器130连接到存储器装置150中的存储器管芯的哪个(哪些)通道或通路适于或适用于执行每个操作。控制器130可经由所确定通道或通路来发送或传送数据或指令以执行每个操作。在完成每个操作之后,多个存储器管芯可分别经由相同的通道或通路传送操作结果。然后,控制器130可将响应或确认信号传送到主机102。在实施例中,控制器130可检查每个通道或每个通路的状态。响应于从主机102接收的命令,控制器130可基于每个通道或每个通路的状态来选择至少一个通道或通路,使得可经由所选择的通道或通路来传递指令和/或操作结果以及数据。
作为示例而非限制,控制器130可识别关于与存储器装置150中的存储器管芯相关联的通道(或通路)的状态。控制器130可将每个通道或每个通路确定为处于忙碌状态、就绪状态、激活状态、空闲状态、正常状态和/或异常状态。控制器确定通过哪个通道或通路来传送指令(和/或数据)可基于物理块地址,例如将指令(和/或数据)传递到哪个(哪些)管芯。控制器130可参考从存储器装置150传递的描述符。描述符可包括描述关于存储器装置150的信息项的块或页面参数,该块或页面参数是具有设定格式或结构的数据。例如,描述符可包括装置描述符、配置描述符、单元描述符等。控制器130可参考或使用描述符来确定利用哪个(哪些)通道或通路交换指令或数据。
管理单元(未示出)可被包括在处理器134中。管理单元可执行存储器装置150的坏块管理。管理单元可找到不满足进一步使用条件的坏存储块,并对坏存储块执行坏块管理。当存储器装置150为闪速存储器,例如NAND闪速存储器时,由于NAND逻辑功能的特性,在写入操作期间,例如在编程操作期间,可能发生编程失败。在坏块管理期间,编程失败的存储块或坏存储块的数据可被编程到新的存储块中。坏块可使具有3D堆叠结构的存储器装置150的利用效率和存储器系统110的可靠性严重劣化。因此,可靠的坏块管理可提高或改进存储器系统110的性能。
参照图3,详细描述根据本公开的另一示例的存储器系统中的控制器。控制器130与主机102和存储器装置150协作。控制器130可包括主机接口132、闪存转换层(FTL)单元240、存储器接口142和存储器144。
虽然未在图3中示出,但根据实施例,图2中描述的ECC单元138可包括在闪存转换层(FTL)单元240中。在另一实施例中,ECC单元138可被实施为包括在控制器130中或与控制器130相关联的单独模块、电路、固件等。
主机接口132用于处置从主机102传送的命令、数据等。通过示例而非限制,主机接口132可包括命令队列56、缓冲器管理器52和事件队列54。命令队列56可顺序地存储从主机102传送的命令、数据等,并且以存储的顺序将命令、数据等输出到缓冲器管理器52。缓冲器管理器52可对从命令队列56传递的命令、数据等进行分类、管理或调整。事件队列54可顺序地传送从缓冲器管理器52传送的用于处理命令、数据等的事件。
可从主机102连续地传送相同特性的多个命令或数据,或者不同特性的命令和数据可在混合或混杂之后被传送到存储器系统110。例如,可将用于读取数据的多个命令(读取命令)传递到存储器系统110或可将用于读取数据的命令(读取命令)和用于编程/写入数据的命令(写入命令)交替地传送到存储器系统110。主机接口132可将从主机102传送的命令、数据等顺序地存储到命令队列56。此后,主机接口132可根据从主机102传送的命令、数据等的特性来估计或预测控制器130将执行何种种类的内部操作。主机接口132可至少基于命令、数据等的特性来确定命令、数据等的处理顺序和优先级。根据从主机102传送的命令、数据等的特性,主机接口132中的缓冲器管理器52被配置成确定缓冲器管理器是否应当将命令、数据等存储在存储器144中,或者缓冲器管理器是否应当将命令、数据等传递到闪存转换层(FTL)单元240中。事件队列54接收从缓冲器管理器52输入的事件,以便按照接收的顺序将事件传递到闪存转换层(FTL)单元240中,其中该事件待由存储器系统110或控制器130响应于从主机102传送的命令、数据等在内部运行和处理。
根据实施例,图3中描述的主机接口132可执行图1中描述的控制器130的功能。
根据实施例,闪存转换层(FTL)单元240可包括主机请求管理器(HRM)46、映射管理器(MM)44、状态管理器42和块管理器48。主机请求管理器(HRM)46可管理从事件队列54输入的事件。映射管理器(MM)44可处置或控制映射数据。状态管理器42可执行垃圾收集或损耗均衡。块管理器48可对存储器装置150中的块运行命令或指令。
作为示例而非限制,主机请求管理器(HRM)46可根据从主机接口132传递的读取和编程命令以及事件,使用映射管理器(MM)44和块管理器48来处置或处理请求。主机请求管理器(HRM)46可向映射管理器(MM)44发送查询请求,以确定与和事件一起输入的逻辑地址相对应的物理地址。主机请求管理器(HRM)46可将读取请求与物理地址一起发送至存储器接口142,以处理读取请求(处理事件)。另一方面,主机请求管理器(HRM)46可向块管理器48发送编程请求(写入请求),以将输入的数据编程到存储器装置150中的空页面(不具有数据),并且然后,可向映射管理器(MM)44传送与编程请求相对应的映射更新请求,以更新逻辑-物理地址相互映射的信息中与编程数据相关的项。
此处,块管理器48可将从主机请求管理器(HRM)46、映射管理器(MM)44和/或状态管理器42传递的编程请求转换成用于存储器装置150的闪存编程请求,以管理存储器装置150中的闪存块。为了最大化或提高存储器系统110(参见图2)的编程或写入性能,块管理器48可收集编程请求并且向存储器接口142发送用于多平面和单触发编程操作的闪存编程请求。块管理器48可向存储器接口142发送若干闪存编程请求,以提高或最大化多通道和多方向闪存控制器的并行处理。
另一方面,块管理器48可被配置成根据有效页面的数量来管理存储器装置150中的块,在需要空闲块时选择并擦除不具有有效页面的块,并且在确定需要垃圾收集时选择包括最少数量的有效页面的块。状态管理器42可执行垃圾收集以将有效数据移动到空块并且擦除被移动有效数据的块中的剩余数据,使得块管理器48可具有足够的空闲块(不具有数据的空块)。如果块管理器48向状态管理器42提供关于待擦除块的信息,则状态管理器42能够检查待擦除块的所有闪存页面以确定每个页面是否有效。例如,为了确定每个页面的有效性,状态管理器42可识别在每个页面的带外(OOB)区域中记录的逻辑地址。为了确定每个页面是否有效,状态管理器42可将页面的物理地址与映射到从请求获得的逻辑地址的物理地址进行比较。状态管理器42针对每个有效页面向块管理器48发送编程请求。当编程操作完成时,可通过映射管理器44的更新来更新映射表。
映射管理器44可管理逻辑-物理映射表。映射管理器44可处理由主机请求管理器(HRM)46或状态管理器42生成的诸如查询、更新等的请求。映射管理器44可将整个映射表存储在存储器装置150中(例如,闪存/非易失性存储器)并且根据存储器144的存储容量来高速缓存映射条目。当在处理查询或更新请求的同时发生映射高速缓存缺失(miss)时,映射管理器44可向存储器接口142发送读取请求以加载存储器装置150中存储的相关映射表。当映射管理器44中的脏高速缓存块的数量超过某个阈值时,可将编程请求发送到块管理器48,以便形成干净高速缓存块并且可将脏映射表存储在存储器装置150中。
另一方面,当执行垃圾收集时,状态管理器42将有效页面复制到空闲块中,并且主机请求管理器(HRM)46可对页面的相同逻辑地址的最新版本的数据进行编程,并且当前发出更新请求。当状态管理器42在尚未完成有效页面的复制的状态下请求映射更新时,映射管理器44可不执行映射表更新。这是因为如果状态管理器42请求映射更新并且直到稍后才完成有效页面复制,则映射请求与旧物理信息一起被发出。只有在最新映射表仍然指向旧物理地址时,映射管理器44才可执行映射更新操作以确保准确性。
根据实施例,状态管理器42、映射管理器44或块管理器48中的至少一个可包括操作信息确认电路。
存储器装置150可包括多个存储块。根据该块的一个存储器单元中可存储或表示的位的数量,多个存储块可以是不同类型的存储块,诸如单层单元(SLC)存储块或多层单元(MLC)存储块。此处,SLC存储块包括由每个存储一位数据的存储器单元实施的多个页面。SLC存储块可具有高数据I/O操作性能和高耐用性。MLC存储块包括由每个存储多位(例如,两位或更多位)数据的存储器单元实施的多个页面。与SLC存储块相比,对于相同的空间,MLC存储块可具有更大的存储容量。在存储容量方面,MLC存储块可被高度集成。在实施例中,存储器装置150可利用诸如以下的MLC存储块来实施:双层单元存储块、三层单元(TLC)存储块、四层单元(QLC)存储块及其组合。双层单元存储块可包括由每个能够存储2位数据的存储器单元实施的多个页面。三层单元(TLC)存储块可包括由每个能够存储3位数据的存储器单元实施的多个页面。四层单元(QLC)存储块可包括由每个能够存储4位数据的存储器单元实施的多个页面。在另一实施例中,存储器装置150可利用包括由每个能够存储5位或更多位数据的存储器单元实施的多个页面的块来实施。
在本公开的实施例中,存储器装置150被实现为非易失性存储器,例如诸如NAND闪速存储器、NOR闪速存储器等的闪速存储器。在另一实施例中,存储器装置150可由相变随机存取存储器(PCRAM)、铁电随机存取存储器(FRAM)、自旋注入磁性存储器(例如,自旋转移力矩磁性随机存取存储器,STT-MRAM)等中的至少一种来实施。
图4是示出根据本公开的实施例的存储器系统的操作方法的示图。
参照图4,操作存储器系统的方法可包括:当供应电力时生成用于检查存储器装置的操作状态的内部命令(步骤591);响应于内部命令而访问存储器装置中的至少一个开放存储块(步骤593);检查该至少一个开放存储块的操作状态(步骤595);在该至少一个开放存储块中编程预设的虚设数据条(步骤597);并且终止与内部命令相关联的操作(步骤599)。
当向存储器系统供应电力时,存储器系统可检查关于内部配置的操作状态。例如,存储器系统可包括存储器装置和控制器。存储器装置可包括:多个存储块,包括多个非易失性存储器单元;以及控制器,可控制用于将数据存储在存储器装置中或者读取存储器装置中存储的数据的操作。存储器系统的内部配置可参照图1至图3。在本文中,存储块可包括多个页面,每个页面包括多个非易失性存储器单元。存储块可被认为是被一起擦除数据的一组非易失性存储器单元,而页面可被认为是被一起编程数据的一组非易失性存储器单元。
在实施例中,可在当向存储器系统供应或恢复电力时自动执行的启动操作期间生成内部命令。存储器系统可包括用于控制在其内部执行的诸如启动序列的操作的算法,并且可在向存储器系统供应电力之后并且在存储器系统执行从与存储器系统可操作地接合的主机所请求的诸如数据输入/输出(I/O)操作的操作之前,检查关于存储器系统中的组件的操作状态。
进一步地,虽然未示出,但当供应电力时生成用于检查存储器装置的操作状态的内部命令的步骤(步骤591)可包括确定是否执行由于突然断电(SPO)的恢复操作,以及当恢复操作开始时生成用于检查存储器装置中的存储块的操作状态的内部命令。当存储器系统异常终止或电力中断时,存储器系统可在恢复或再次供应电力之后执行恢复操作。存储器系统可在执行恢复操作的同时检查存储器系统中组件的操作状态。
另一方面,在另一实施例中,存储器系统可响应于从另一装置(例如,主机)输入的请求或命令来检查关于组件的操作状态。例如,该部件可包括至少一个开放块。另外,当存储器系统退出用于减少功耗的睡眠模式(例如,休眠模式)时,可检查关于组件的操作状态。
虽然上面未进行描述,但可在各种环境或条件下检查关于存储器系统中包括的组件的操作状态。存储器系统中组件的操作状态的检查步骤可包括检查存储器装置中包括的多个存储块之中的至少一个开放存储块的操作状态。存储器装置可包括能够编程数据条的至少一个开放块。通常,开放存储块可包括被分配或准备用于编程新数据条的存储块。有时,数据条可能已编程在开放存储块中。该开放存储块包括至少一个空白页面,该空白页面包括先前已被擦除且尚未编程的非易失性存储器单元。另一方面,如果多条数据被编程到开放存储块的所有页面中,并且开放存储块不包括任何空白页面,则开放存储块可转为闭合存储块。此处,闭合存储块指示:在不进行擦除操作的情况下,不能再在其中编程数据条。在数据被编程到特定存储块的所有页面上使该特定存储块变成闭合之后,在随着时间且该存储块中存储的数据不再有效时,可擦除该存储块。
一旦通电,存储器系统就可准备以编程新的数据条。因此,存储器系统可检查被分配用于编程新的数据条的开放存储块的操作状态。检查开放存储块的操作状态的方法之一是访问开放存储块并读取该开放存储块中存储的数据(参见步骤593)。如果从开放存储块读取的数据中不存在错误,则该开放存储块的操作状态可以是良好或正常(参见步骤595)。另一方面,当从开放存储块读取的数据中存在错误时,或者当需要调整用于从开放存储块读取数据的读取电压时,可确定开放存储块的操作状态异常或不良(参见步骤595)。在这种情况下,为了提高存储器系统的操作稳定性,可利用另一存储块来替换当前的开放存储块。
虽然未示出,但用于访问至少一个开放存储块的步骤(步骤593)可包括:基于日志来搜索开放存储块;向该开放存储块中的至少一个编程页面提供读取电压;并且输出该至少一个编程页面中存储的数据。另外,用于访问至少一个开放存储块的步骤(步骤593)可进一步包括:基于所输出的数据来调整读取电压的电平,以重新读取该至少一个编程页面中存储的数据。
用于确定关于开放存储块的操作状态的步骤(步骤595)可包括:在不顺序地扫描开放存储块中的所有页面的情况下,找到边界字线或边界页面。在第一页面和最后页面之间,开放存储块可包括已编程数据的编程区域和已擦除数据的空白区域。当编程区域包括多个页面时,可从开放存储块的第一页面开始到边界页面顺序地编程数据条。在本文中,边界字线或边界页面是编程数据条的最后页面。进一步地,开放存储块中的空白区域可包括至少一个空白页面,每个空白页面对应于每个字线。空白页面是包括被擦除且尚未编程的非易失性存储器单元的页面。
根据实施例,虽然未示出,但操作存储器系统的方法可包括:在从开放存储块中的边界页面开始的预设数量的页面上编程预设量的虚设数据;并且在编程预设量的虚设数据之后,在开放存储块的空白页面上恢复对应于恢复操作的数据。根据实施例,可确定编程虚设数据的预设数量的页面(干净字线),以避免影响开放存储块中空白页面特性的读取干扰。在另一实施例中,可确定尽可能多的预设数量的空白页面(干净字线),以减少用于访问开放存储块的重复读取操作。例如,预设数量的页面是1或N个页面(N为大于1的正整数)。根据实施例,可基于存储器装置中包括的存储块的设计/结构、集成度、制造特性等来确定编程虚设数据的预设数量的页面。
存储器系统可在断电之前在日志中记录关于存储器装置的至少一个开放存储块的物理位置信息(访问信息)。当电力恢复或再次被供应时,存储器系统可检查哪个存储块是开放存储块。当读取电压被施加到开放存储块中的页面的非易失性存储器单元时,可输出该开放存储块的非易失性存储器单元中存储的数据。根据实施例,读取电压可被顺序地或随机地施加到至少一个页面,或者可被施加到预设数量的页面中的一个。
在电力供应不稳定的环境中,每当电力恢复时,存储器系统可重复执行启动操作或恢复操作。如果在存储器系统未执行用于将新的数据条存储在特定开放存储块中的编程操作的同时电源被重复接通或断开,则存储器系统可重复访问该特定开放存储块。当可重复读取相应的开放存储块中的一些数据时,可能在开放存储块中存储的数据之间发生读取干扰。另外,重复访问(重复的读取操作)可能在开放存储块中的一些已擦除且尚未编程的非易失性存储器单元中造成干扰,使得非易失性存储器单元变得处于不稳定状态(即,它们的阈值电压可能被改变)。未编程数据条的页面中的经擦除存储器单元可能比编程了数据条的另一页面中的存储器单元更容易受到干扰。因此,重复访问开放存储块可能会使开放存储块的未存储数据条的空白区域不稳定。
读取干扰错误是非易失性存储器架构的固有结果。在对非易失性存储器单元的读取操作期间,读取参考电压被施加到对应于该单元的晶体管。如果该读取参考电压高于单元的阈值电压,则晶体管导通。在非易失性存储块内,每个来自不同闪存页面的多个存储器单元的晶体管被连接在一起作为连接到单个输出线的单个位线。每个位线一次仅读取单个存储器单元。为了读取单个存储器单元(即,确定该是导通还是断开),未被读取的存储器单元的晶体管必须保持导通,以允许来自被读取单元的值传播到输出端。这要求晶体管利用通过电压供电,该通过电压是被保证高于任何所存储的阈值电压的读取参考电压。虽然这些其它存储器单元未被读取,但该高的通过电压导致电力隧道,该电力隧道可将这些未读取单元的阈值电压偏移到更高的值,从而干扰关于对相邻页面的读取操作的存储器单元内容。
为了避免或减少读取干扰或扰动,在访问开放存储块以确定该开放存储块的操作状态之后,存储器系统可在未编程任何数据条的至少一个空白页面上编程预设量的虚设数据(步骤597)。预设量的虚设数据可被编程在该开放存储块中的至少一个空白页面上。当在开放存储块的最后页面上编程虚设数据条时,存储器系统可能不会在新的开放存储块中编程虚设数据。在每当开放存储块被访问以确定该开放存储块的操作状态时编程预设量的虚设数据时,在没有用于在开放存储块中编程新的数据条的任何编程操作的情况下,即使该开放存储块被重复访问,也可限制关于开放存储块的访问次数。
根据实施例,可对与开放存储块中总页面的10%至50%的范围相对应的预设数量的页面编程预设量的虚设数据。例如,可根据开放存储块的允许访问次数,即最大访问次数,来确定预设量的虚设数据。另外,当虚设数据被编程在开放存储块的最后页面上时,存储器系统的操作方法可进一步包括将该开放存储块改变为闭合存储块(即,闭合状态),并且指定至少一个新的空闲存储块作为取代该闭合存储块的新的开放块。
作为示例而非限制,开放存储块中的总页面的数量为100,并且从该开放存储块中的第一页面到第20页面编程多条数据。因此,该开放存储块的空白区域是从第21页面到最后页面。另外,可一次在30个页面上编程预设量的虚设数据。如果在电力恢复之后访问该开放存储块,可能检查到多条数据被编程直到开放存储块的第20页面。进一步地,当在开放存储块中的第一至第20页面之间读取的数据不存在错误时,可确定该开放存储块处于健康状态。进一步地,可将预设量的虚设数据编程在开放存储块中随后的30个页面中,即从第21页面到第50页面中。即使存储器系统未执行在开放存储块中编程新的数据条的操作,并且电力不稳定地中断、断开和接通,虚设数据被编程直到开放存储块的第50页面,也检查开放存储块的操作状态,并且将另外的虚设数据编程到开放存储块中的另外的30个页面,即从第51页面到第80页面。此后,当虚设数据被编程在开放存储块的第51页面至第80页面中并且电力不稳定地中断、断开和接通时,可以检查到虚设数据被编程直到开放存储块的第80页面。在检查开放存储块的操作状态之后,可将另外虚设数据编程在开放存储块的剩余的20个页面中,即从第81页面到第100页面。在这种情况下,当虚设数据被编程在先前开放存储块的最后页面上时,其可能不会被编程在新的开放存储块中。即使在电力中断或停止之后再次接通电力,已被重复访问的先前开放存储块也可被闭合,使得先前开放存储块不会被进一步访问以用于恢复操作或启动操作。
图5是示出根据本公开的实施例的在存储器系统中编程虚设数据的操作的示图。
参照图5,存储器装置150可包括多个存储块BLK1、BLK2、BLK3、BLK4、……、BLK(K-1)、BLK(K)。多个存储块可分类为开放存储块、闭合存储块、空闲存储块等。在本文中,第四存储块BLK4是开放存储块类型。
该第四存储块BLK4具有m个页面PG1至PG(m)。例如,在第四存储块BLK4中从第一页面到第二十页面PG1到PG20顺序地编程用户数据,并且第二十一页面PG21至最后页面PG(m)可以是空白的,即未编程任何用户数据。
在供应电力之后,存储器系统可进行访问以检查该第四块BLK4的操作状态,然后在该第四存储块BLK4中从第21页面到第65页面编程预设量的第一虚设数据(1stDUMMYDATA)。此处,第一虚设数据可以是可记录在约45个页面上的量。
进一步地,在第四存储块BLK4中从第66页面开始未编程新的数据条,并且电力中断或断开且电力恢复或再次接通。可检查作为存储器装置150中的开放存储块的第四存储块BLK4的操作状态。在这种情况下,在作为开放存储块的第四存储块BLK4中从第一页面PG1到第六十五页面PG65编程了用户数据或虚设数据。在检查第四存储块BLK4的操作状态之后,存储器系统可在第四块BLK4中从第66页面开始编程第二虚设数据(2ndDUMMY DATA)。
根据实施例,第二虚设数据(2ndDUMMY DATA)的大小可与第一虚设数据的大小相同。可在从第66页面开始的45个页面上(例如,直到第110页面)编程第二虚设数据(2ndDUMMYDATA)。例如,第四块BLK4中页面的总数量为111(m=111)。在编程第二虚设数据(2ndDUMMYDATA)之后,用户数据和虚设数据存储在除最后页面之外的所有页面中。该最后页面PG(m)是空白的。
如果在第四存储块BLK4中未编程新的数据条,而电力断开,并且电力再次接通。当检查第四存储块BLK4的操作状态时,识别出在第四存储块BLK4中编程了第二虚设数据(2ndDUMMY DATA),第四存储块BLK4因为该第四存储块BLK4的最后页面PG(m)是空白的因而仍然是开放块。在检查第四存储块BLK4的操作状态之后,可在第四块BLK4的最后页面PG(m)中编程第三虚设数据(3rdDUMMY DATA)。当第三虚设数据(3rdDUMMY DATA)被编程在第四存储块BLK4的最后页面PG(m)中时,该第四存储块BLK4切换到闭合状态。因为第四存储块BLK4是闭合的,即不再是开放存储块,所以即使在电力断开并且电力再次接通时,也不能访问第四存储块BLK4以用于检查至少一个开放存储块的状态。
在上述实施例中,第一至第三虚设数据的大小相同。然而,即使第一至第三虚设数据的大小相同,如果剩余空白页面的数量小于第一至第三虚设数据的大小,则编程虚设数据可被限制到开放存储块的可用页面(或空白页面)。
根据实施例,可调整在访问开放存储块之后编程的虚设数据的大小。例如,可基于通过将预设数量的页面添加到开放存储块中预设百分比(%)的空白页面中而获得的页面数量来确定虚设数据的大小。例如,当开放存储块包括50个空白页面时,预设百分比为50%,并且预设数量为10,虚设数据的大小可被编程在开放存储块的50个空白页面之中的35个页面上。
另外,根据实施例,可设置开放存储块可被重复访问的最大次数,并且基于通过将开放存储块中的总页面数量除以最大次数而获得的页面数量一次编程虚设数据量。
图6是示出根据本公开的实施例的由存储器系统的固件运行的操作的示图。基于固件的操作可根据存储器系统是安装在移动装置、笔记本电脑还是诸如台式的计算装置上而变化。
参照图6,存储器系统经由固件的操作包括:设置主体平台(步骤71)、执行硬件抽象(步骤73)、加载可启动映像(bootable image)(步骤75)、检查关于存储器装置中的存储块的操作状态(步骤77)、以及放弃控制并将控制移交给与存储器装置相关联或接合的计算装置(步骤79)。
主体平台(步骤71)的设置步骤可通过准备用于启动操作系统(OS)的环境来执行,从而确认主体平台是否已初始化。在这个步骤中,因为可在不同的内核或平台上执行相同的可运行映像,所以应当找到并识别确切的内核类型和平台。作为示例而非限制,内核的类型可存储在协同处理器的第0寄存器中。可通过检查是否存在特定的外围装置或者通过读取芯片中存储的信息来确定平台的类型。
另外,根据实施例,在设置主体平台的步骤71中,诊断软件可用于确定硬件组件是否存在缺陷。
另外,根据实施例,在设置主体平台的步骤71中,可根据调试代码等来调试通过诊断软件所发现的硬件的任何问题。
硬件抽象的步骤73可通过硬件抽象层(HAL)来执行,该硬件抽象层是通过一组定义的编程接口隐藏硬件的软件层。作为示例而非限制,硬件抽象层(HAL)可包括使控制器130内的处理器能够与特定的外围硬件通信的软件或驱动器。
加载可启动映像的步骤75可包括将用户数据区域中包括的操作系统或应用程序转发或运行到与存储器系统接合或相关联的主机或计算装置。操作系统或应用程序可能是各种类型,并且根据它们的类型,可以具有运行系统或程序的不同的方式。另外,固件功能性可能会根据用于存储启动映像的介质的类型而变化。例如,存储操作系统或应用程序的类型可以是闪存ROM文件系统(FFS)、二进制映像、通用对象文件格式(COFS)或可执行和链接格式(ELF)。
控制固件数据相关块的步骤99可包括以下步骤:确定关于图1中描述的固件块40_1和固件备份块40_2的数据状态(数据保持);并且如果有必要,恢复固件块40_1和固件备份块40_2。例如,恢复固件块40_1的进程可通过参照图5描述的操作来执行,并且恢复固件备份块40_2的进程可通过图8的操作来执行。
检查存储器装置中的存储块的操作状态的步骤77用于确定存储器系统是否能够执行通过内部操作引起的或者从另一装置(例如,计算装置)请求的新的编程操作。可基于所识别的存储器装置中包括的多个存储块的特性或类型来检查关于存储块的操作状态。例如,存储器系统可基于与存储器装置中包括的多个存储块相关联的诸如读取计数、编程/擦除计数、有效页面计数等参数或信息来估计每个存储块的状态。进一步地,如图1所示,可通过访问特定存储块并读取该特定存储块中存储的数据的方法来识别相应存储块的操作状态。为了减少对特定存储块的重复访问,在存储器系统访问特定存储块以便识别或检查该特定存储块的操作状态之后,可在该特定存储块中编程预设量的虚设数据。
将控制移交(或传递)到与存储器系统接合的计算装置的步骤79可由固件中包括的启动加载器来执行。移交控制的步骤(步骤79)可包括将所识别的平台的控制从固件传递到操作系统或应用程序的步骤。
图7和图8描述根据本公开的实施例在存储器系统中执行的恢复操作。具体地,图7示出当电力突然中断(突然断电,SPO)时存储器系统的准备操作。图8示出当SPO之后电力恢复时存储器系统的恢复操作。
参照图7,当在存储器系统执行正常操作(步骤81)的同时电力突然中断(突然断电,SPO)时,可发生存储器系统的准备操作。存储器系统的准备操作可包括:检查存储器系统的操作状态(步骤83)以及检查是否存在错误(步骤85)。
当供应到存储器系统的电力不稳定并且低于预定电平时,存储器系统可检查存储器系统的操作状态(步骤83)。存储器系统可检查从彼此协作的另一装置(例如,主机)请求的任务或对应于该任务的事件是否被执行。存储器系统的操作状态可包括:任务已运行、任务待调度以及任务已执行但未报告完成。
为了改善、提高或确保操作可靠性,存储器系统可检查通过检查操作状态的步骤(步骤85)所收集或包括的任务是否发生错误。错误可包括操作未完全执行的情况。例如,当操作由于突然断电(SPO)而未完成时,存储器系统可准备恢复操作(步骤89)。虽然未示出,准备恢复操作(步骤89)可包括配置日志或历史信息,并且将日志或历史信息存储在存储器装置中。当完成恢复操作的准备时,存储器系统可终止(步骤87)。
当供应到存储器系统的电力正常断开时,或者即使电力突然中断,当存储器系统检查错误时,也可能没有异常终止或未完成的操作。在这种情况下,存储器系统可终止(步骤87),而不准备恢复操作(步骤89)。
在实施例中,参照图7描述的用于提高操作可靠性的存储器系统的准备可由参照图1至图3描述的控制器130来执行。
参照图8,可从正常接收电力开始存储器系统的恢复操作(步骤91)。
当电力恢复或被供应到存储器系统时,控制器可扫描存储器装置中的预设区域(步骤93)。在本文中,预设区域可包括存储系统信息的区域或存储空间和/或存储用户数据的另外区域或另外存储空间。系统信息的示例包括固件、映射数据、日志、历史信息等。
另外,根据实施例,可识别关于存储器装置中包括的多个存储块的特性或类型,并且可检查关于存储块的操作状态。例如,存储器系统可基于与存储器装置中包括的多个存储块相关联的参数或信息(例如,读取计数、编程/擦除计数、有效页面计数等)来估计每个存储块的状态。另外,预设区域可包括至少一个开放存储块,并且可检查该至少一个开放存储块的操作状态,以确定存储器装置是否就绪以执行编程操作。例如,如图1所示,可通过访问或读取开放存储块中存储的数据的方法来识别关于该开放存储块的操作状态。为了减少对开放存储块的重复访问,在访问开放存储块以检查该开放存储块的操作状态之后,可在该开放存储块的预设数量的页面中编程预设量的虚设数据。
在存储器系统扫描预设区域(步骤93)之后,控制器可将存储器装置中存储的诸如固件、映射数据、日志、历史信息等系统信息加载到控制器中的存储器中。存储器系统可基于系统信息来操作(步骤95)。
根据实施例,当存储器系统在断电之前已正常处理或处置了所有操作时,当再次供应或恢复电力时,可能不存在恢复操作。然而,如果存储器系统在断电之前通过准备留下日志或历史信息(例如,参见图7),则存储器系统可基于日志或历史信息来执行恢复操作(步骤97)。当基于日志或历史信息恢复状态或操作时,可执行日志或历史信息中的任务或事件,使得存储器系统可返回到断电之前的状态。
当存储器系统基于日志或历史信息通过恢复操作而恢复到断电之前的状态时,存储器系统可执行从外部装置请求的正常操作(步骤99)。例如,外部装置可包括可操作地与存储器系统接合的主机。
在实施例中,可在稳定供应电力的条件下正常执行操作之前执行或完成存储器系统的恢复操作。然而,当供应到存储器系统的电力不稳定并且电力断开时,在存储器系统扫描预设区域并恢复日志或历史信息的同时,电力可能中断。在这种情况下,可重复执行存储器系统的恢复操作,从而可重复访问特定开放块。
然而,当在存储器系统的恢复操作期间响应于日志或历史信息中包括的任务或事件而重复访问存储器装置中的存储块时,可记录最后访问的存储块。如未示出的,当未正常完成日志或历史信息中包括的任务或事件时,可能确定任意存储块作为最后访问的块。
根据上述实施例,每当由于不稳定的电力供应环境而导致重复执行存储器系统的启动操作或恢复操作时,存储器系统、数据处理系统及其操作方法可避免或减少重复访问开放存储块的操作,从而提高或改善存储器系统中编程操作的稳定性和可靠性。
另外,本公开的实施例可在特定存储块中编程预设量的虚设数据,以减少在该特定存储块中发生干扰,从而减少在存储器系统操作的同时可能发生的开销。
虽然已经针对具体实施例示出和描述了本发明,但是对于本领域技术人员根据本公开将显而易见的是,在不脱离如所附权利要求所限定的本发明的精神和范围的情况下,可进行各种改变和修改。

Claims (20)

1.一种操作存储器系统的方法,包括:
当电力在中断之后被供应时,确定是否执行恢复操作;
当所述恢复操作开始时,生成用于检查存储器装置的操作状态的内部命令;
响应于所述内部命令,访问所述存储器装置中的至少一个开放存储块;
检查所述至少一个开放存储块的操作状态;
在所述至少一个开放存储块中的从边界编程页面开始的预设数量的空白页面上编程预设量的虚设数据;并且
在所述至少一个开放存储块中恢复与所述恢复操作相关联的数据。
2.根据权利要求1所述的方法,其中访问所述至少一个开放存储块包括:
基于日志来搜索所述至少一个开放存储块;
向所述至少一个开放存储块中编程有数据的至少一个页面施加读取电压;并且
输出所述至少一个页面中存储的数据。
3.根据权利要求2所述的方法,其中访问所述至少一个开放存储块进一步包括:
基于所输出的数据来调整所述读取电压的电平。
4.根据权利要求2所述的方法,其中将所述读取电压顺序地或随机地施加到所述至少一个页面,或者单独地施加到所述至少一个开放存储块中的预设数量的页面。
5.根据权利要求1所述的方法,其中所述边界编程页面是所述至少一个开放存储块中最后的编程页面,并且所述空白页面是所述至少一个开放存储块中被擦除且在被擦除之后未被编程的页面。
6.根据权利要求1所述的方法,其中,当所述预设量的虚设数据的一部分被编程到所述至少一个开放存储块的最后页面上并且所述预设量的虚设数据未被全部编程时,所述预设量的虚设数据的剩余部分不被编程在另一存储块上。
7.根据权利要求6所述的方法,其中所述预设量的虚设数据被编程在所述至少一个开放存储块中范围为总页面的10%和50%之间的所述预设数量的空白页面上。
8.根据权利要求1所述的方法,其中检查所述至少一个开放存储块的操作状态包括:
搜索所述边界编程页面,而不扫描所述至少一个开放存储块的第一页面至所述边界编程页面。
9.根据权利要求1所述的方法,进一步包括:
当所述虚设数据被编程在所述至少一个开放存储块的所述最后页面上时,将所述至少一个开放存储块改变为闭合存储块;并且
将至少一个空闲存储块指定为取代所述闭合存储块的新开放块。
10.一种存储器系统,包括:
存储器装置,包括多个非易失性存储块;以及
控制器,确定当供应电力时是否执行与电力中断相对应的恢复操作,
其中,在所述恢复操作开始之后,所述控制器访问所述多个非易失性存储块之中的至少一个开放存储块,在所述至少一个开放存储块中的从边界编程页面开始的预设数量的空白页面上编程预设量的虚设数据,并且在所述至少一个开放存储块中恢复与所述恢复操作相关联的数据。
11.根据权利要求10所述的存储器系统,其中所述控制器在供应电力之后的预设时间内,生成用于检查所述存储器装置的操作状态的内部命令。
12.根据权利要求11所述的存储器系统,其中所述控制器基于日志来搜索所述至少一个开放存储块,并且
其中所述存储器装置响应于所述内部命令,向所述至少一个开放存储块中编程有数据的至少一个页面施加读取电压,并且输出所述至少一个页面中存储的数据。
13.根据权利要求12所述的存储器系统,其中所述控制器基于所输出的数据来调整所述读取电压的电平。
14.根据权利要求12所述的存储器系统,其中将所述读取电压顺序地或随机地施加到所述至少一个页面,或者单独地施加到所述至少一个开放存储块中的预设数量的页面。
15.根据权利要求10所述的存储器系统,其中所述边界编程页面是所述至少一个开放存储块中最后的编程页面,并且所述空白页面是所述至少一个开放存储块中被擦除且在被擦除之后未被编程的页面。
16.根据权利要求10所述的存储器系统,其中,当所述预设量的虚设数据的一部分被编程在所述至少一个开放存储块的最后页面上并且所述预设量的虚设数据未被全部编程时,所述预设量的虚设数据的剩余部分不被编程在另一存储块上。
17.根据权利要求16所述的存储器系统,其中所述预设量的虚设数据被编程在所述至少一个开放存储块中范围为总页面的10%和50%之间的所述预设数量的空白页面上。
18.根据权利要求10所述的存储器系统,其中所述控制器:当所述虚设数据被编程在所述至少一个开放存储块的所述最后页面上时,将所述至少一个开放存储块改变为闭合存储块,并且将至少一个空闲存储块指定为取代所述闭合存储块的新开放块。
19.一种操作存储器系统的方法,包括:
当供应电力时,检查存储器装置中至少一个开放存储块的操作状态;并且
基于所述操作状态来确定是否使用所述至少一个开放存储块,
其中检查所述操作状态包括:
访问所述存储器装置中的所述至少一个开放存储块;
在所述至少一个开放存储块中搜索边界编程页面;并且
在所述至少一个开放存储块中的从所述边界编程页面开始的预设数量的空白页面上编程预设量的虚设数据。
20.根据权利要求19所述的方法,进一步包括:
当所述虚设数据被编程在所述至少一个开放存储块的最后页面上时,将所述至少一个开放存储块改变为闭合存储块;并且
将至少一个空闲存储块指定为取代所述闭合存储块的新的开放块。
CN201911282865.0A 2019-03-27 2019-12-13 在恢复进程期间减少存储器系统中单元干扰的设备及方法 Withdrawn CN111755039A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2019-0035008 2019-03-27
KR1020190035008A KR20200113992A (ko) 2019-03-27 2019-03-27 메모리 시스템의 복구 동작 중 비휘발성 메모리 오픈 블록의 셀 디스터브를 줄이는 방법 및 장치

Publications (1)

Publication Number Publication Date
CN111755039A true CN111755039A (zh) 2020-10-09

Family

ID=72607992

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911282865.0A Withdrawn CN111755039A (zh) 2019-03-27 2019-12-13 在恢复进程期间减少存储器系统中单元干扰的设备及方法

Country Status (3)

Country Link
US (1) US11138080B2 (zh)
KR (1) KR20200113992A (zh)
CN (1) CN111755039A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112463656A (zh) * 2020-11-25 2021-03-09 至誉科技(武汉)有限公司 固态硬盘异常掉电恢复方法、系统及存储介质

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7310462B2 (ja) * 2019-09-04 2023-07-19 富士通株式会社 ストレージ制御装置,分散ストレージシステムおよびストレージ制御プログラム
US11494254B2 (en) * 2019-12-20 2022-11-08 Cnex Labs, Inc. Storage system with predictive adjustment mechanism and method of operation thereof
US11693745B2 (en) * 2020-11-23 2023-07-04 Micron Technology, Inc. Error-handling flows in memory devices based on bins
JPWO2023090297A1 (zh) * 2021-11-22 2023-05-25
KR20230094622A (ko) 2021-12-21 2023-06-28 에스케이하이닉스 주식회사 슈퍼 메모리 블록의 프로그램 상태를 기초로 타깃 동작을 실행하는 메모리 시스템 및 그 방법
US12026384B2 (en) * 2022-08-26 2024-07-02 Western Digital Technologies, Inc. Open block relocation
WO2024129240A1 (en) * 2022-12-12 2024-06-20 Western Digital Technologies, Inc. Systems and methods for improving find last good page processing in memory devices
CN116880781B (zh) * 2023-09-08 2023-12-26 合肥康芯威存储技术有限公司 一种存储设备及其控制方法

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012128816A (ja) * 2010-12-17 2012-07-05 Toshiba Corp メモリシステム
JP2013061799A (ja) * 2011-09-13 2013-04-04 Toshiba Corp 記憶装置、記憶装置の制御方法およびコントローラ
KR102127284B1 (ko) * 2013-07-01 2020-06-26 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 관리 방법
KR102102224B1 (ko) * 2013-10-01 2020-04-20 삼성전자주식회사 저장 장치 및 그것의 프로그램 방법
KR102190399B1 (ko) 2013-10-11 2020-12-11 삼성전자주식회사 신뢰성을 보장할 수 있는 불휘발성 메모리 장치의 동작 방법 및 상기 방법을 수행하는 메모리 시스템
KR20150053092A (ko) * 2013-11-07 2015-05-15 에스케이하이닉스 주식회사 데이터 저장 시스템 및 그것의 동작 방법
KR102272228B1 (ko) 2014-05-13 2021-07-06 삼성전자주식회사 불휘발성 메모리 장치, 그것을 포함하는 저장 장치 및 그것의 동작 방법
TWI546666B (zh) * 2014-11-03 2016-08-21 慧榮科技股份有限公司 資料儲存裝置以及快閃記憶體控制方法
CN106708754B (zh) * 2015-11-13 2020-04-07 慧荣科技股份有限公司 数据储存装置及其数据维护方法
KR102435026B1 (ko) * 2015-12-15 2022-08-22 삼성전자주식회사 저장 장치의 동작 방법
CN107038131A (zh) * 2016-02-04 2017-08-11 广明光电股份有限公司 固态硬盘断电保护装置及方法
TWI621129B (zh) * 2016-10-25 2018-04-11 慧榮科技股份有限公司 資料儲存裝置及其資料寫入方法
TWI606388B (zh) * 2016-12-14 2017-11-21 慧榮科技股份有限公司 資料儲存裝置及其資料維護方法
TWI628542B (zh) * 2017-04-21 2018-07-01 慧榮科技股份有限公司 快閃記憶體的垃圾回收斷電回復方法以及使用該方法的裝置
TWI649755B (zh) * 2017-12-22 2019-02-01 慧榮科技股份有限公司 資料儲存裝置與記憶體裝置之資料處理方法
TWI645404B (zh) * 2017-12-28 2018-12-21 慧榮科技股份有限公司 資料儲存裝置以及非揮發式記憶體操作方法
TWI643066B (zh) * 2018-01-15 2018-12-01 慧榮科技股份有限公司 用來於一記憶裝置中重新使用關於垃圾收集的一目的地區塊之方法、記憶裝置及其控制器以及電子裝置
US10459839B1 (en) * 2018-05-02 2019-10-29 International Business Machines Corporation Accelerating garbage collection of flushed logical erase blocks in non-volatile memory
KR102610395B1 (ko) * 2019-01-22 2023-12-05 삼성전자주식회사 비휘발성 메모리 장치를 포함하는 메모리 시스템

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112463656A (zh) * 2020-11-25 2021-03-09 至誉科技(武汉)有限公司 固态硬盘异常掉电恢复方法、系统及存储介质

Also Published As

Publication number Publication date
KR20200113992A (ko) 2020-10-07
US11138080B2 (en) 2021-10-05
US20200310926A1 (en) 2020-10-01

Similar Documents

Publication Publication Date Title
US11138080B2 (en) Apparatus and method for reducing cell disturb in an open block of a memory system during a recovery procedure
CN110806984B (zh) 在存储器系统中搜索有效数据的设备和方法
US11544157B2 (en) Apparatus and method for storing data in an MLC area of a memory system
CN110825319A (zh) 基于块状态确定可用性的存储器系统及操作方法
CN110825659B (zh) 用于检查存储器系统中的块中的有效数据的设备和方法
KR20200068941A (ko) 메모리 시스템 내 저장된 데이터를 제어하는 방법 및 장치
US11526438B2 (en) Memory system capable of increasing storage efficiency and operation method thereof
CN110910944A (zh) 保持存储器系统中的固件的设备和方法
CN112199038A (zh) 基于i/o吞吐量确定缓冲器使用的存储器系统及其操作方法
US11269542B2 (en) Memory system for distributing and reading data and operating method thereof
CN110781023A (zh) 用于在存储器系统中处理数据的设备和方法
CN113900586A (zh) 存储器系统及其操作方法
CN111435321B (zh) 处理存储器系统的易失性存储器中的错误的设备和方法
CN112433879A (zh) 在存储器系统的操作中处置固件错误的设备和方法
CN112445424A (zh) 提高存储器系统的输入/输出吞吐量的设备和方法
CN111435334B (zh) 在存储器系统中检查有效数据的设备和方法
CN110806983B (zh) 存储器系统及其操作方法
CN111755061A (zh) 检查存储器系统中的存储器装置的操作状态的设备及方法
US20210349825A1 (en) Memory controller
KR20200058867A (ko) 메모리 시스템의 복구 동작 중 비휘발성 메모리 블록의 반복 접근을 줄이는 방법 및 장치
CN116204112A (zh) 存储器控制器及其操作方法
US11392322B2 (en) Memory system for read operation and operating method thereof
US20220012180A1 (en) Memory system for meta data management and operating method of memory system
CN114647594A (zh) 非易失性存储器系统中的日志记录设备和方法
CN113495689A (zh) 用于控制存储器系统的输入/输出吞吐量的设备和方法

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
WW01 Invention patent application withdrawn after publication

Application publication date: 20201009

WW01 Invention patent application withdrawn after publication