CN114443344A - 存储器装置及其数据保持方法、存储器控制器 - Google Patents

存储器装置及其数据保持方法、存储器控制器 Download PDF

Info

Publication number
CN114443344A
CN114443344A CN202110226820.2A CN202110226820A CN114443344A CN 114443344 A CN114443344 A CN 114443344A CN 202110226820 A CN202110226820 A CN 202110226820A CN 114443344 A CN114443344 A CN 114443344A
Authority
CN
China
Prior art keywords
memory
erase count
error threshold
error
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202110226820.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.)
Macronix International Co Ltd
Original Assignee
Macronix International 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 Macronix International Co Ltd filed Critical Macronix International Co Ltd
Publication of CN114443344A publication Critical patent/CN114443344A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/073Error 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 memory management context, e.g. virtual memory or cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
    • 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/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • 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
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • 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/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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • 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
    • 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/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • G11C16/3495Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • 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/52Protection of memory contents; Detection of errors in memory contents
    • 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
    • G11C2029/0409Online test

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)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

本发明公开了一种存储器装置及其数据保持方法、存储器控制器,其中该存储器控制器,用以存取存储器装置中的存储存储器阵列的位于存储器区块中的存储器分页。存储器控制器读取存储于所存取存储器分页中的存储器数据。存储器控制器判定相关于存储器数据的错误位数。存储器控制器获得对应于所存取存储器分页的擦除计数,擦除计数指示在所存取存储器分页上进行的擦除操作的数目。存储器控制器至少基于擦除计数自一或多个错误阈值当中判定错误阈值。存储器控制器判定错误位数与错误阈值之间的关系。存储器控制器在错误位数与错误阈值之间的关系满足第一准则的情况下触发所存取存储器区块的数据更新。

Description

存储器装置及其数据保持方法、存储器控制器
技术领域
以下所公开内容是关于存储器装置,且具体而言,是关于与改进半导体存储器装置的数据保持效能从而得到存储器装置的更长寿命相关的存储器装置及其数据保持方法、存储器控制器。
背景技术
半导体存储器装置包括存存储储器(例如,闪存),以及管理存存储储器的存储器控制器。存储器控制器自主机装置接收命令以对存储于存存储储器中的数据进行操作。
发明内容
本发明内容描述用以改进半导体存储器装置中的数据保持从而得到存储器装置的更长寿命的方法、设备以及系统。存储器装置包括具有用于存储数据的一或多个存储单元阵列的存存储储器,以及存储器控制器,用于例如耦接至存储器装置的主机装置接收到读取或编程(program)/写入(write)命令后管理对存存储储器的存取。存储器控制器重新写入存储在一个或多个存储单元中的数据,例如当数据损失(例如,以从其正确值改变的位数计算)超过某些阈值(例如,以位数为单位)时,是由于对存储单元的重复存取以进行编程或擦除操作。在一些实施方案中,当数据损失超过阈值时,存储器控制器向主机装置报告错误或损失状态(例如,数据损失超过阈值),且主机装置控制重写数据。
在一些实施方案中,存储器控制器使用错误检查引擎来比较存储单元(例如,存储器区块或存储器分页)中的发生错误的位数(称为「错误位」,例如,其值已自其正确值改变的位)与用于错误位的一或多个错误阈值。若错误位数满足与一或多个错误阈值中的选定错误阈值的指定关系,则存储器控制器重写存储于对应存储单元中的数据以防止数据损失,或向主机装置报告错误状态(例如,通过举起错误临界标识以指示错误状态),或两者。为了比较错误位与阈值,存储器控制器针对存储单元存储擦除计数,所述擦除计数指示已擦除存储单元多少次,其指示例如存储单元的编程/擦除循环的数目。存储器控制器将存储单元的擦除计数映射至来自两个或大于两个擦除计数范围的擦除计数范围,其中擦除计数范围相关于错误阈值,该错误阈值不同于相关于不同擦除计数范围的另一错误阈值。举例而言,在一些实施方案中,较高错误阈值相关于较低擦除计数范围(例如,存储单元的擦除操作的数目在较低擦除操作范围中),且较低错误阈值相关于较高擦除计数范围(例如,存储单元的擦除操作的数目在较高擦除操作范围中)。在一些实施方案中,存储器控制器将存储单元的擦除计数存储于存储单元的指定区段内(例如,将擦除计数存储于存储器分页的已知区段中)。在一些实施方案中,错误阈值包括错误校正程序代码(Error CorrectingCode;ECC)阈值。
存储器控制器中的错误计算引擎(例如,ECC引擎)取决于存储单元的擦除计数判定相关于存储单元的错误阈值;比较存储单元的错误位数(例如,其值已因存储器写入或擦除干扰而自其正确值改变的位)与所判定错误阈值;以及输出比较结果。存储器控制器配置为取决于错误位数与相关错误阈值之间的关系来报告存储于存储单元中的数据及/或进行所述数据的更新(例如,数据重写)。举例而言,在一些实施方案中,若错误位数等于或超过对应错误阈值,则存储器控制器举起错误临界标识以向主机装置报告状态,或进行数据更新以防止数据的损失,或两者(例如,向主机装置报告状态,且在响应于状态报告而自主机装置接收到命令后进行更新)。
在一些实施方案中,随着存储单元的擦除计数改变,将不同错误阈值用于存储单元。举例而言,若更频繁地擦除存储单元,则存储单元的擦除计数增加且映像至较高擦除计数范围。在此类情况下,新的错误阈值相关于存储单元,其中新近相关的错误阈值低于先前相关于存储单元的错误阈值。在此类实施方案中,相较于先前情形,新的较低阈值触发较低错误位数的存储器更新。因此,即使在更少数目个存储器位发生错误时,存储器控制器亦更新存储于存储单元中的数据,此减轻因存储单元的编程/擦除循环的增加而导致数据损失的可能性。
在本发明的实施例中,一种方法包括由存储器控制器存取存储器装置的存储存储器阵列的存储器区块中的存储器分页,其中存储存储器阵列由存储器控制器管理。存储器控制器读取存储于所存取存储器分页中的存储器数据。存储器控制器判定相关于存储器数据的错误位数。存储器控制器获得对应于所存取存储器分页的擦除计数,所述擦除计数指示在所存取存储器分页上进行的擦除操作的数目。存储器控制器至少基于擦除计数自一或多个错误阈值当中判定错误阈值。存储器控制器判定错误位数与错误阈值之间的关系。存储器控制器在错误位数与错误阈值之间的关系满足第一准则的情况下触发所存取存储器区块的数据更新。
特定实施方案可包括以下特征中的一或多者。擦除计数可包括编程/擦除周期计数或指示所存取存储器区块的存取速率的信息中的一者。判定错误位数与错误阈值之间的关系可包括比较错误位数与错误阈值。触发以满足第一准则的关系为条件的数据更新可包括判定错误位数是否等于或超过错误阈值,且若是,则触发所存取存储器区块的数据更新。
触发所存取存储器区块的数据更新可包括设定对应于所存取存储器区块的标识,所述标识指示待进行存取存储器区块的数据更新。耦接至存储器装置的主机装置可读取标识且判定所述标识指示待进行存取存储器区块的数据更新。响应于判定标识指示待进行所存取存储器区块的数据更新,主机装置可进行存取存储器区块的数据更新。
一或多个错误阈值中的错误阈值可指定待发生错误的存储器数据的位数以触发数据更新。较高擦除计数范围可相关于较低错误阈值,而相对较低擦除计数范围可相关于相对较高错误阈值。较高擦除计数范围的擦除计数范围高于较低擦除计数范围,较低错误阈值的值低于较高错误阈值,且擦除计数在多个擦除计数范围中的一个擦除计数范围内。
擦除计数可在多个擦除计数范围中的经指定第一擦除计数范围内,所述第一擦除计数范围相关于第一错误阈值。存储器控制器可在第二次存取所存取存储器分页时,更新对应于第二次所存取存储器分页的擦除计数。存储器控制器在多个擦除计数范围中处于第二擦除计数范围内可判定经更新的擦除计数,所述第二擦除计数范围不同于第一擦除计数范围。存储器控制器可至少基于经更新擦除计数自一或多个错误阈值当中判定第二错误阈值。第二错误阈值可不同于第一错误阈值,且其中第二擦除计数范围相关于所述第二错误阈值。经更新擦除计数可大于擦除计数,且第二错误阈值可小于第一错误阈值。
实施方案包括一种存储器装置,所述存储器装置包括:存存储储器,包括一或多个存储单元阵列;以及存储器控制器,用以管理对存储单元阵列的存取,其中存储器控制器配置为进行上述操作。实施方案亦包括一种用于管理存储器装置的存储器控制器,其中所述存储器控制器包括:一或多个处理器;以及一或多个机器可读媒体,存储指令,所述指令在执行时使得所述一或多个处理器进行上述操作。
实施方案还包括非暂时性计算机可读媒体及系统。一种非暂时性计算机可读媒体存储指令,所述指令在执行时使得一或多个处理器进行上述操作。一种系统包括存储器装置,所述存储器装置具有用以管理对存储器装置中的一或多个存储单元阵列的存取的存储器控制器,其中存储器控制器配置为进行上述操作。在一些实施方案中,一种系统包括可通信地耦接至存储器装置且配置为存取存储单元阵列的主机装置。在此类实施方案中,存储器控制器配置为向主机装置报告错误状态,且主机装置配置为在判定错误状态后进行更新/重写(例如,通过将更新/重写命令发送至存储器控制器)。
使用上文及本说明书的以下章节中所描述的新颖特征,可改进半导体存储器装置(诸如闪存装置)的寿命或效能,或两者。用于闪存装置的已知技术通过周期性地重写存储的数据来解决数据保持或读取干扰问题,以确保当数据损失超过错误校正临界范围时数据不会永久性损坏。周期性重写通常以固定速率进行。然而,随着更频繁地存取存储单元及存储单元的编程/擦除周期增加,数据更可能遭受损失,而对于具有较不频繁存取的存储单元,损失较不可能。在此类情况下,不顾及存取频率的改变而将相同周期性重写速率应用于存储单元会因在低存取范围下的数据重写而导致不必要的写入循环。此类浪费的写入循环可能降低存储单元的有用寿命,从而导致存储器装置的耐久性整体降低。
相比之下,使用所公开技术,当存储单元的擦除计数在较低擦除计数范围中时,存储器控制器以更低频率擦除存储单元,使得存储于存储单元中的数据较不可能在检查之间遭受损失,驱使在此擦除计数范围内的存储单元设定较高错误阈值。在一些实施方案中,当数据错误位数低于对应错误阈值时,可精确读取存储的数据,且不需要更新所述数据。然而,若数据错误位数超过错误阈值,则更新数据。随着存储单元的编程/擦除循环的数目/频率增加,存储单元的擦除计数增加且映像至较高擦除计数范围,所述较高擦除计数范围具有对应较低错误阈值,所述较低错误阈值针对因增加的编程/擦除循环而导致的较差数据损失率进行调整。因此,存储器控制器取决于存储单元的擦除速率而动态地调整存储单元的错误阈值,从而正确地解决较高数据损失速率。以此方式,所公开技术动态地调整数据更新操作,且将更新操作的频率限于需要更新操作以防止数据损失的情形,从而避免较低擦除速率的数据更新的不必要循环。借此,所公开技术延长存储单元的寿命,以及包括存储单元的一或多个阵列的寿命。因此,所公开技术改进存储器装置的数据保持能力。
所公开技术可应用于可受数据保持问题或读取干扰问题影响的各种类型的非易失性存储器装置。举例而言,所公开技术可应用于与非(NAND)闪存、或非(NOR)闪存或相变存储器(phase change memory;PCM),以及其他。附加的地或替代地,所述技术可应用于各种类型的主存储器或高速缓存装置,诸如电阻式随机存取存储器(resistive randomaccess memory;ReRAM),或MRAM,以及其他。
在随附附图及以下描述中阐述一或多个所公开实施方案的细节。其他特征、实施例以及优点将自描述、附图以及保护范围而变得显而易见。
附图说明
图1示出使用可变错误阈值进行更新操作的实例系统的方块图。
图2示出将擦除计数存储于存储器装置中的存储器分页内以用于动态地调整更新操作的错误阈值的实例存储器装置的方块图。
图3示出由存储器控制器用以更新存储于存储器装置中的存储器分页中的数据的流程的实例。
附图中的类似附图标号指示类似元件。
【符号说明】
100:系统
110、210:存储器装置
112、212:存储器控制器
114、214:存储阵列
116a、116n、216a、216n:存储器区块
116a_1、116a_m、116n_1、116n_m、216a_1、216a_2、216a_m、216n_1、216n_2、216n_m:存储器分页
117:总线
120:主机装置
217a_1、217a_2、217a_m、217n_1、217n_2、217n_m:区段
218、219:输入
220:周边电路
222:错误临界译码器
224:比较器
300:流程
302、304、306、308、310、312:步骤
具体实施方式
图1示出使用可变错误阈值进行更新操作的实例系统100的方块图。系统100包括使用总线117耦接至主机装置120的存储器装置110。存储器装置110包括存储器控制器112,以及存储数据及其他信息的存储阵列114。
在一些实施方案中,存储器装置110为存储装置。举例而言,存储器装置110可为嵌入式多媒体卡(embedded multimedia card;eMMC)、安全数字(secure digital;SD)卡、固态驱动机(solid-state drive;SSD),或某一其他合适的存储器。在一些实施方案中,存储器装置110为耦接至主机装置120的客户端装置。举例而言,存储器装置110可为耦接至作为主机装置120的数字摄影机或媒体播放器的SD卡。
存储器控制器112管理对存储阵列114的存取及对所述存储阵列114进行的操作。以下章节基于使用存储器控制器112来管理存储阵列114的实施方案来描述各种技术。然而,描述于以下章节中的技术亦可应用于使用存储器装置110中的另一类型的控制器(不同于存储器控制器)来管理存储阵列114的实施方案中。
在一些实施方案中,存储阵列114为非易失性存储器,例如与非闪存或或非闪存,或某一其他合适的非易失性存储器。在存储阵列114为与非闪存或或非闪存的实施方案中,存储器装置110为闪存装置,例如闪存卡,且存储器控制器112为快闪控制器。举例而言,在一些情况下,存储器装置110为串列周边接口(Serial Peripheral Interface;SPI)装置,其中存存储储器为或非闪存或与非闪存。出于说明目的,以下描述使用闪存作为存储阵列114的实例。
如所绘示,存储阵列114包括多个存储器区块:存储器区块116a至存储器区块116n。存储器区块又包括一或多个存储器分页。举例而言,存储器区块116a包括存储器分页116a_1……存储器分页116a_m;且存储器区块116n包括存储器分页116n_1……存储器分页116n_m。存储器分页由一或多个存储单元构成。存储器区块及组成性存储器分页配置为将数据或指令或两者存储于存储单元中以供主机装置120使用。存储单元可包括单层单元(single-level cell;SLC)、多层单元(multi-level cell;MLC)、三层单元(triple-levelcell;TLC)、四层单元(quad-level cell;QLC),或超出QLC的更高阶存储单元,或此等的任何组合。SLC每存储单元存储一个位的数据;MLC存储单元每存储单元存储两个位的数据;TLC存储单元每存储单元存储三个位的数据;QLC存储单元每存储单元存储四个位的数据;且超出QLC的更高阶存储单元每存储单元存储五个或大于五个位的数据。
存储器控制器112可为微处理器或微控制器,或特殊应用集成电路(applicationspecific integrated circuit;ASIC)芯片,以及其他合适的类型。存储器控制器112经由总线117自主机装置112接收写入或读取命令,以对存储阵列114分别进行写入或读取操作。存储器控制器112亦例如在主机装置120未收到读取或写入命令时的空闲时间期间对存储阵列进行内务处理操作。内务处理操作包括当数据的错误位满足预定条件时(例如当错误位等于或超过错误阈值时)向主机装置120报告存储器区块116a……存储器区块116n中的存储器分页的错误状态。另外或替代地,内务处理操作包括存储器区块116a……存储器区块116n中的存储器分页的更新操作,以优化存储阵列114的寿命或效能。存储器更新操作包括当数据的错误位满足预定条件时(例如当错误位等于或超过错误阈值时)将存储于存储器阵列114的部分中的数据重写至存储器阵列的其他部分。在一些实施方案中,响应于向主机装置报告错误状态,在自主机装置120接收到命令后进行存储器更新操作。在一些实施方案中,存储器控制器112以存储器分页(诸如存储器分页116a_1、存储器分页116a_m、存储器分页116n_1或存储器分页116n_m)的精细度进行更新操作。在一些其他实施方案中,存储器控制器112以存储器区块(诸如存储器区块116a或存储器区块116n)的精细度进行更新操作。亦可针对其他合适的存储单元进行更新操作。
在以下章节中,相对于存储器分页描述通过所公开技术进行的更新操作。然而,所述技术亦可用以更新存储阵列114中的不同精细度的存储单元,诸如存储器区块或存储单元,以及其他。
在一些实施方案中,存储器控制器112追踪擦除存储器分页的次数,且存储所述数目作为存储器分页的擦除计数。举例而言,存储器控制器112追踪擦除存储器分页116a_1、存储器分页116a_m、存储器分页116n_1或存储器分页116n_m中的每一者多少次,且存储每一页的擦除计数。
如在下文更详细地描述,在一些实施方案中,存储器控制器112将页的擦除计数存储于所述页内的存储单元中。举例而言,在此类实施方案中,存储器控制器112将页116a_1、页116a_m、页116n_1或页116n_m中的一或多者的擦除计数存储于各别页内的存储单元中。在其他实施方案中,存储器控制器112将页的擦除计数存储于不同位置中。举例而言,存储器控制器112可将页116a_1、页116a_m、页116n_1或页116n_m中的一或多者的擦除计数存储于与页116a_1、页116a_m、页116n_1或页116n_m不同的存储器分页或存储器区块(诸如专用于存储擦除计数的存储器分页或存储器区块)中。作为另一实例,存储器控制器112可将页116a_1、页116a_m、页116n_1或页116n_m中的一或多者的擦除计数存储于缓存器或与存储阵列114不同的其他合适的存储器中。
在一些实施方案中,存储器分页存取操作对应于存储器分页的擦除操作。在此类实施方案中,擦除计数表示针对存储器分页的擦除操作的数目。
在一些实施方案中,为了追踪是否应更新存储器分页以防止数据损失,存储器控制器112使用两个或大于两个擦除计数范围,从而将特定错误阈值相关于每个擦除计数范围。对于存储器分页,存储器控制器112判定涵盖存储器分页擦除计数的擦除计数范围,且接着比较存储器分页的错误位数与所判定范围相关的错误阈值。若错误位数与错误阈值满足已知关系(即第一准则),则存储器控制器112设定标识以触发错误状态报告,或存储器分页的更新,或两者。在一些实施方案中,在判定设定了标识后,主机装置120例如通过以下操作进行更新操作:读取存储器区块中的数据,将数据存储于外部,擦除存储器区块且接着将数据写回至初始存储器地址。在一些实施方案中,已知关系可为「大于或等于」关系。在此类实施方案中,若存储器分页的错误位数大于或等于与所判定范围相关的错误阈值,则存储器控制器112继续进行至更新存储器分页。其他合适的关系亦可用于各种实施方案中。在一些实施方案中,当错误位数与错误阈值满足已知关系时,存储器控制器112进行更新操作,而无需自主机装置120接收任何更新指令。
在一些实施方案中,不同错误阈值相关于不同擦除计数范围,其中与擦除计数范围相关的错误阈值不同于用于其他擦除计数范围的错误阈值。在一些情况下,较高错误阈值相关于较低擦除计数范围,且较低错误阈值相关于较高擦除计数范围。举例而言,在一些情况下,四个擦除计数范围(以循环为单位量测)可配置用于存储器装置110:
·0个至100个编程/擦除循环(称为范围A);
·101个至1000个编程/擦除循环(称为范围B);
·1001个至10000个编程/擦除循环(称为范围C);以及
·10001个至100000个编程/擦除循环(称为范围D)。
假定存储器控制器112中的错误校正引擎可校正至多8位错误,则相关于四个不同擦除计数范围的错误阈值可为:
·范围A(0个至100个编程/擦除循环):错误阈值=8个位;
·范围B(101个至1000个编程/擦除循环):错误阈值=7个位;
·范围C(1001个至10000个编程/擦除循环):错误阈值=6个位;以及
·范围D(10001个至100000个编程/擦除循环):错误阈值=4个位。
当存储器分页在较低擦除计数范围(例如,范围A)中时,存储器分页已被擦除少数几次,使得存储于存储器分页中的数据较不可能已在每一检查之间损坏。因此,较高错误阈值相关于此较低擦除计数范围。随着存储器分页的擦除操作的数目增加,存储器分页的数据损失的机率因更频繁的擦除操作而增加。此反映于用于较高擦除计数范围的较低错误阈值中。随着擦除操作的数目的增加,存储器分页的擦除计数进入下一较高擦除计数范围(例如,范围B),所述较高擦除计数范围(相较于较低擦除计数范围(范围A))具有针对较差数据损失率进行调整的较低错误阈值。当存储器分页的擦除计数在范围A中时,存储器控制器112基于比较存储器分页的错误位与8个位的错误阈值来判定是否重写数据。然而,当存储器分页的擦除计数在下一较高范围B中时,存储器控制器112基于比较存储器分页的错误位与7个位的较低错误阈值来判定是否重写数据。
以上擦除计数范围及对应错误阈值仅出于说明目的。不同实施方案可使用不同擦除计数范围,或错误阈值,或两者。举例而言,在一些情况下,擦除计数范围可包括:0个至100个循环;100个至500个循环;500个至5000个循环;5000个至10000个循环,或其他合适的值。错误阈值可为16个位(例如,当错误校正引擎可校正至多16位错误时)、14个位、12个位、10个位,或其他合适的值。
在一些实施方案中,擦除计数范围或对应错误阈值或两者由存储器装置110的制造商组态。在一些实施方案中,擦除计数范围或对应错误阈值或两者可由存储器装置110的用户(例如,设备管理器)组态。装置制造商可向存储器装置110传送擦除计数范围及对应错误阈值的默认值(例如,取决于硅制造工艺),但存储器装置110的用户可根据使用者的具体需要在部署之前改变所述值。
如先前所提及,在一些实施方案中,存储器控制器112将页的擦除计数存储于页的区段中,例如页内的存储单元中。图2示出将擦除计数存储于存储器装置中的存储器分页内以用于动态地调整更新操作的错误阈值的实例存储器装置210的方块图。存储器装置210包括存储器控制器212,以及存储数据及其他信息的存储阵列214。如图2所绘示,存储阵列114包括多个存储器区块,例如存储器区块216a至存储器区块216n。存储器区块包括一或多个存储器分页。举例而言,存储器区块216a包括存储器分页216a_1、存储器分页216a_2……存储器分页216a_m;且存储器区块216n包括存储器分页216n_1、存储器分页216n_2……存储器分页216n_m。
在一些实施方案中,存储器装置210类似于系统100中的存储器装置110。在此类实施方案中,存储器控制器212类似于存储器控制器112。此外,存储阵列214类似于存储阵列114,其中存储器区块216a至存储器区块216n分别类似于存储器区块116a至存储器区块116n,且组成性存储器分页216a_1……存储器分页216a_m以及存储器分页216n_1…存储器分页216n_m分别类似于存储器分页116a_1……存储器分页116a_m以及存储器分页116n_1……存储器分页116n_m。在此类实施方案中,存储器装置210连接至主机装置,例如类似于主机装置120的主机装置。
如图2中所绘示,在一些实施方案中,将存储阵列214中的存储器分页的擦除计数存储于存储器分页自身的区段中。举例而言,存储器分页216a_1、存储器分页216a_2……存储器分页216a_m包括各别区段217a_1、区段217a_2……区段217a_m以存储擦除计数。类似地,存储器分页216n_1、存储器分页216n_2……存储器分页216n_m包括各别区段217n_1、区段217n_2……区段217n_m以存储擦除计数。在一些实施方案中,存储器控制器212使用存储器分页内的指定区段来存储存储器分页自身的擦除计数。举例而言,在此类实施方案中,存储器控制器212将存储器分页216a_1的擦除计数存储于存储器分页216a_1的区段217a_1中,且将存储器分页216n_1的擦除计数存储于存储器分页216n_1的区段217n_1中。然而,在一些其他实施方案中,存储器控制器212将至少一些存储器分页的擦除计数存储于其他存储器分页的指定区段中。举例而言,存储器控制器212可将存储器分页216a_1的擦除计数存储于区段217a_2、区段217a_m或区段217n_1或其他存储器分页中的区段中的一者中。如先前所提及,存储单元与存储单元的擦除计数存储器的其他合适的组合亦为可能的。
在一些实施方案中,存储器控制器212指定每一存储器分页中的已知数目个存储单元以存储擦除计数。指定的存储单元的数目取决于表示擦除计数值所需的位数,以及可存储于存储单元中的位数,以及其他参数。举例而言,在存储器控制器212追踪至多100000个擦除循环的情况下,可使用17个位来存储至多100000个擦除循环。若例如取决于用于存储阵列214中的单元的类型而使用SLC单元,则擦除计数存储区段(例如,区段217a_1、区段217a_2......区段217a_m、区段217n_1、区段217n_2……或区段217n_m中的一或多者)可包括17个SLC单元。然而,若使用MLC单元,则擦除计数存储区段可包括9个SLC单元。
如图2中所绘示,存储器控制器212包括周边电路220以及其他元件,所述周边电路220用以检查存储阵列214中的存储器分页的擦除计数,以及比较擦除计数与错误阈值。周边电路220包括错误临界译码器222及比较器电路224。存储器控制器212获得针对存储器分页存储的擦除计数且将擦除计数发送至错误临界译码器222,如输入至错误临界译码器222的218所绘示。举例而言,在(例如,响应于自连接的主机装置接收到读取命令而)读取存储器分页216a_1后,存储器控制器212例如自区段217a_1获得存储器分页216a_1的当前擦除计数,以判定是否需要更新存储器分页216a_1。存储器控制器212将擦除计数发送至错误临界译码器222,所述错误临界译码器222(自由存储器装置210使用的范围当中)判定涵盖存储器分页的当前擦除计数的擦除计数范围,且识别相关于所判定擦除计数范围的错误阈值。
错误临界译码器222输出错误阈值,将所述错误阈值提供为比较器224的输入。存储器控制器212亦读出存储于存储器分页中的数据(例如,针对以上实例中的存储器分页216a_1)且计算数据的错误位数。将错误位数提供为比较器224的另一输入,如输入至比较器224的输入219所绘示。
比较器224比较错误位数与错误阈值以判定这些数值是否满足已知关系,且输出指示比较结果或状态的错误临界标识的值。举例而言,若错误位数与错误阈值满足关系(诸如,在一些实施方案中,错误位数等于或大于错误阈值),则比较器224输出错误临界标识的值以指示需要存储器分页的数据更新。取决于实施方案,错误临界标识的值可为「0」或「1」。另一方面,若错误位数与错误阈值并不满足关系(诸如在以上实例中,错误位数小于错误阈值),则由比较器224输出的错误临界标识的值指示不需要存储器分页的数据更新。在此情况下,错误临界标识的值将与上述值互补(例如,当满足关系时在标识值为「1」的情况下为「0」,或反之亦然)。主机120存取存储器控制器212以得到错误临界标识且判定是否(例如,通过将存储于存储器分页中的数据重写至存储阵列214中的不同存储器区块)进行存储器分页的数据更新,以防止存储器分页中的数据不可撤销地损坏。如先前所描述,在一些实施方案中,存储器控制器212进行更新操作,而无需自主机120接收任何更新指令或命令。
如先前所描述,不同错误阈值可相关于不同擦除计数范围,其中在一些实施方案中,较低擦除计数范围相较于较高擦除计数范围而具有较高错误阈值。因此,随着存储器分页的擦除循环的数目增加,使得对应擦除计数增加且移动至较高擦除计数范围,错误阈值可降低,从而触发具有较低错误位数的数据更新。以此方式,存储器控制器212可使用动态地改变的条件来更新存储器分页的数据,其中所述改变至少部分地取决于已擦除存储器分页的次数。
如先前所提及,在一些实施方案中,存储器装置210使用ECC引擎来校正位错误。错误临界译码器222判定存储器分页的ECC阈值,且比较器224比较ECC阈值与存储器分页的错误位数。
图3示出由存储器控制器用以更新存储于存储器装置中的存储器分页中的数据的流程300的实例。在一些实施方案中,流程300由存储器装置210的存储器控制器212(或等效地,由存储器装置110的存储器控制器112)进行以更新存储于存储器阵列214中的存储器分页中的数据,所述存储器分页诸如存储器区块216a中的存储器分页216a_1、存储器分页216a_2……存储器分页216a_n,或存储器区块216n中的存储器分页217n_1、存储器分页217n_2……存储器分页217n_m。因此,以下章节相对于存储器控制器212描述流程300。然而,流程300亦可由其他装置进行。
流程300在存储器控制器存取存储器分页时开始(302)。举例而言,在自主机装置接收到读取命令后,存储器控制器212通过在地址翻译表中进行地址查找来判定目标存储器位置的实体地址,且接着存取对应存储器分页,诸如存储器区块216a中的存储器分页216a_1、存储器分页216a_2……存储器分页216a_m中的一者,或存储器区块216n中的存储器分页216n_1、存储器分页216n_2……存储器分页216n_m中的一者。
针对对应于存储器分页的存储器数据计算错误位(304)。举例而言,存储器控制器212读出存储于存储器分页(例如,以上实例中的存储器分页216a_1)中的数据且将数据提供至ECC引擎,所述ECC引擎计算数据的错误位数。将错误位数提供为比较器224的输入。
存储器控制器判定对应于存储器分页的擦除计数(306)。举例而言,存储器控制器212针对所存取存储器分页读取对应擦除计数,所述对应擦除计数指示已存取存储器分页次数以用于擦除操作。在一些实施方案中,将擦除计数存储于存储器分页的指定区段中,且存储器控制器212自存储器分页的指定区段读取擦除计数。举例而言,在一些实施方案中,将存储器分页216a_1的擦除计数存储于存储器分页的区段217a_1中;存储器控制器212自区段217a_1读取存储器分页216a_1的擦除计数。
存储器控制器使用擦除计数判定错误阈值(308)。举例而言,存储器控制器212将针对存储器分页(例如,针对以上实例中的存储器分页216a_1)判定的擦除计数提供至错误临界译码器222,所述错误临界译码器222将擦除计数映像至用于存储器装置210中的多个擦除计数范围中的一者。错误临界译码器222接着判定相关于所映像擦除计数范围的错误阈值。将所判定错误阈值提供至比较器224的输入。
存储器控制器判定错误位与错误阈值之间的关系是否满足第一准则(310)。举例而言,在一些实施方案中,比较器224检查存储器分页(例如,以上实例中的存储器分页216a_1)的错误位数是否等于或大于对应于存储器分页的擦除计数的错误阈值,且提供指示比较结果的输出值。
若错误位与错误阈值之间的关系满足第一准则,则存储器控制器举起错误临界标识(312)。举例而言,在一些实施方案中,当比较器224的输出指示错误位数等于或大于错误阈值时,存储器控制器212(例如,通过将标识设定为值「1」)设定错误临界标识的值以指示需要存储器分页的数据更新。主机装置(例如,主机120)读取错误临界标识值且判定是否进行数据更新操作以防止存储器分页中的数据被不可挽回地损坏。在一些实施方案中,主机装置例如通过读出数据且将数据暂时存储于外部来继续进行数据更新操作,且接着将数据的每一页写入至存储阵列214中的不同存储器分页。
另一方面,若错误位与错误阈值之间的关系并不满足第一准则,则流程300结束。举例而言,在一些实施方案中,当比较器224的输出指示错误位数小于错误阈值时,存储器控制器212设定错误标识的值以指示不需要存储器分页的数据更新。在此类实施方案中,主机装置(例如,主机120)读取标识值且意识到存储于存储器分页中的数据的错误位数在可恢复范围内,使得不需要将数据重写至存储阵列214的另一区段。以上述方式,存储器控制器212使用流程300来使用可变错误阈值更新存储器数据,该可变错误阈值根据于存储单元的擦除计数而动态地应用于存储单元,从而使得存储阵列214的寿命提高。
应注意,尽管流程步骤、方法步骤、算法或类似者可按以上依序次序描述,但此类流程、方法以及算法通常可配置为按替代次序工作,除非具体地相反陈述。
所公开及其他实例可实施为一或多个计算机程序产品,例如在计算机可读媒体上编码的计算机程序指令的一或多个模块,所述一或多个模块由数据处理设备执行或控制数据处理设备的操作。计算机可读媒体可为机器可读存储装置、机器可读存储基底、存储器装置或其中的一或多者的组合。术语「数据处理设备」涵盖用于处理数据的所有设备、装置以及机器,借助于实例包括可编程处理器、计算机或多个处理器或计算机。除硬件以外,设备可包括为所讨论的计算机程序创建执行环境的程序代码,例如构成处理器固件、协议堆栈、数据库管理系统、操作系统或其中的一或多者的组合的程序代码。
系统可涵盖用于处理数据的所有设备、装置以及机器,借助于实例包括可编程处理器、计算机或多个处理器或计算机。除硬件以外,系统可包括为所讨论的计算机程序创建执行环境的程序代码,例如构成处理器固件、协议堆栈、数据库管理系统、操作系统或其中的一或多者的组合的程序代码。
计算机程序(亦称为程序、软件、软件应用程序、脚本或程序代码)可以任何形式的编程语言写入,包括编译或解译语言,且其可以任何形式部署,包括作为独立程序或作为模块、元件、次例程或适合用于计算环境中的其他单元。计算机程序未必对应于文件系统中的档案。可将程序存储于保存其他程序或数据(例如,存储于标示语言文件中的一或多个脚本)的档案的一部分中、存储于专用于所讨论的程序的单一档案中,或存储于多个协调档案(例如,存储一或多个模块、子程序或部分程序代码的档案)中。可部署计算机程序以在一个计算机上执行或在定位于一个位点或跨多个位点分布且由通信网络互连的多个计算机上执行。
本文件中所描述的流程及逻辑流程可由一或多个可编程处理器进行,所述可编程处理器执行一或多个计算机程序以进行本文中所描述的功能。流程及逻辑流程亦可由专用逻辑电路系统(例如,FPGA或特殊应用集成电路(ASIC))进行,且设备亦可实施为所述专用逻辑电路系统。
适合于执行计算机程序的处理器借助于实例包括通用微处理器及专用微处理器两者,以及任何种类的数字计算机的任何一或多个处理器。适合于存储计算机程序指令及数据的计算机可读媒体可包括所有形式的非易失性存储器、媒体以及存储器装置。处理器及存储器可由专用逻辑电路系统补充或并入于专用逻辑电路系统中。
尽管本文件可描述许多细节,但此等细节不应视为对本发明的所主张或可主张的范围的限制,而是视为描述特定针对特定实施例的特征。在单独实施例的上下文中描述于本文件中的某些特征亦可在单一实施例中组合地实施。相反,描述于单一实施例的上下文中的各种特征亦可单独地或以任何合适的子组合在多个实施例中实施。此外,尽管上文可将特征描述为以某些组合起作用且甚至最初按此来主张,但来自所主张的组合的一或多个特征在一些情况下可自所述组合删除,且所主张的组合可针对子组合或子组合的变化。类似地,尽管在附图中以特定次序来描绘操作,但不应将此理解为需要以所绘示的特定次序或以依序次序进行此类操作,或进行所有所示出操作以达成合乎需要的结果。
至此,已经结合附图对本公开实施例进行了详细描述。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (17)

1.一种数据保持方法,适用于存储器装置,其中,包括:
由存储器控制器存取所述存储器装置的存储存储器阵列中存储器区块的存储器分页,所述存储存储器阵列由所述存储器控制器管理;
由所述存储器控制器读取存储于所存取存储器分页中的存储器数据;
由所述存储器控制器判定相关于所述存储器数据的错误位数;
由所述存储器控制器获得对应于所述所存取存储器分页的擦除计数,所述擦除计数指示在所述所存取存储器分页上进行的擦除操作的数目;
由所述存储器控制器至少基于所述擦除计数自一或多个错误阈值当中判定错误阈值;
由所述存储器控制器判定所述错误位数与所述错误阈值之间的关系;以及
由所述存储器控制器以所述错误位数与所述错误阈值之间的所述关系满足第一准则为条件触发所存取存储器区块的数据更新。
2.根据权利要求1所述的数据保持方法,其中,判定所述错误位数与所述错误阈值之间的所述关系包括比较所述错误位数与所述错误阈值,且
其中以所述关系满足所述第一准则为条件触发所述数据更新包括:
判定所述错误位数是否等于或超过所述错误阈值,且若是,则触发所述所存取存储器区块的所述数据更新。
3.根据权利要求1所述的数据保持方法,其中,触发所述所存取存储器区块的所述数据更新包括:
设定对应于所述所存取存储器区块的标识,所述标识指示待进行所述所存取存储器区块的数据更新。
4.根据权利要求3所述的数据保持方法,其中,还包括:
由耦接至所述存储器装置的主机装置读取所述标识;
由所述主机装置判定所述标识指示待进行所述所存取存储器区块的数据更新;以及
响应于判定所述标识指示待进行所述所存取存储器区块的数据更新,由所述主机装置进行所述所存取存储器区块的数据更新。
5.根据权利要求1所述的数据保持方法,其中,所述一或多个错误阈值中的错误阈值指定待发生错误的存储器数据的位数以触发数据更新,且
其中较高擦除计数范围相关于较低错误阈值,而较低擦除计数范围相关于较高错误阈值,其中所述较高擦除计数范围的擦除计数范围高于所述较低擦除计数范围,所述较低错误阈值的值低于所述较高错误阈值,且所述擦除计数在多个擦除计数范围中的一者内。
6.根据权利要求1所述的数据保持方法,其中,所述擦除计数在多个擦除计数范围中的经指定第一擦除计数范围内,所述第一擦除计数范围相关于第一错误阈值,所述方法还包括:
在第二时间处存取所述所存取存储器分页;
判定对应于所述第二时间处的所述所存取存储器分页的经更新擦除计数;
判定所述经更新擦除计数在所述多个擦除计数范围中的经指定第二擦除计数范围内,所述第二擦除计数范围不同于所述第一擦除计数范围;以及
至少基于所述经更新擦除计数自所述一或多个错误阈值当中判定第二错误阈值,其中所述第二错误阈值不同于所述第一错误阈值,且其中所述第二擦除计数范围相关于所述第二错误阈值。
7.根据权利要求6所述的数据保持方法,其中,所述经更新擦除计数大于所述擦除计数,且其中所述第二错误阈值小于所述第一错误阈值。
8.根据权利要求1所述的数据保持方法,其中,所述擦除计数包括编程与擦除周期计数或指示所述所存取存储器区块的存取速率的信息中的一者。
9.一种存储器装置,其中,包括:
存储阵列,包括一或多个存储器区块,其中所述存储器区块中的至少一者包括一或多个存储器分页;
存储器控制器,用以管理对所述存储阵列的存取,其中所述存储器控制器配置为进行包括以下的操作:
存取所述存储器装置的存储存储器阵列中存储器区块的存储器分页,所述存储存储器阵列由所述存储器控制器管理;
读取存储于所存取存储器分页中的存储器数据;
判定相关于所述存储器数据的错误位数;
获得对应于所述所存取存储器分页的擦除计数,所述擦除计数指示在所述所存取存储器分页上进行的擦除操作的数目;
至少基于所述擦除计数自一或多个错误阈值当中判定错误阈值;
判定所述错误位数与所述错误阈值之间的关系;以及
以所述错误位数与所述错误阈值之间的所述关系满足第一准则为条件触发所存取存储器区块的数据更新。
10.根据权利要求9所述的存储器装置,其中,所述存储器控制器包括比较器,所述比较器配置为比较所述错误位数与所述错误阈值以用于判定所述错误位数与所述错误阈值之间的所述关系,且
其中以所述关系满足所述第一准则为条件触发所述数据更新包括:
判定所述错误位数是否等于或超过所述错误阈值,且若是,则触发所述所存取存储器区块的所述数据更新。
11.根据权利要求9所述的存储器装置,其中,触发所述所存取存储器区块的所述数据更新包括:
设定对应于所述所存取存储器区块的标识,所述标识指示待进行所述所存取存储器区块的数据更新。
12.根据权利要求11所述的存储器装置,其中,耦接至所述存储器装置的主机装置配置为读取所述标识,
其中所述存储器控制器配置为响应于自所述主机装置接收到命令而进行所述所存取存储器区块的数据更新,且
其中所述主机装置配置为至少基于判定所述标识指示待进行所述所存取存储器区块的数据更新来发送所述命令。
13.根据权利要求9所述的存储器装置,其中,所述一或多个错误阈值中的错误阈值指定待发生错误的存储器数据的位数以触发数据更新,且
其中较高擦除计数范围相关于较低错误阈值,而较低擦除计数范围相关于较高错误阈值,其中所述较高擦除计数范围的擦除计数范围高于所述较低擦除计数范围,所述较低错误阈值的值低于所述较高错误阈值,且所述擦除计数在多个擦除计数范围中的一者内。
14.根据权利要求9所述的存储器装置,其中,所述擦除计数在多个擦除计数范围中的经指定第一擦除计数范围内,所述第一擦除计数范围相关于第一错误阈值,且其中所述操作还包括:
在第二时间处存取所述所存取存储器分页;
判定对应于所述第二时间处的所述所存取存储器分页的经更新擦除计数;
判定所述经更新擦除计数在所述多个擦除计数范围中的经指定第二擦除计数范围内,所述第二擦除计数范围不同于所述第一擦除计数范围;以及
至少基于所述经更新擦除计数自所述一或多个错误阈值当中判定第二错误阈值,其中所述第二错误阈值不同于所述第一错误阈值,且其中所述第二擦除计数范围相关于所述第二错误阈值。
15.根据权利要求14所述的存储器装置,其中,所述经更新擦除计数大于所述擦除计数,且其中所述第二错误阈值小于所述第一错误阈值。
16.根据权利要求9所述的存储器装置,其中,所述擦除计数包括编程与擦除周期计数或指示所述所存取存储器区块的存取速率的信息中的一者。
17.一种用于管理存储器装置的存储器控制器,其中,所述存储器控制器包括:
一或多个处理器;以及
一或多个机器可读媒体,存储指令,所述指令在执行时使得所述一或多个处理器进行包括以下的操作:
存取所述存储器装置的存储存储器阵列中存储器区块的存储器分页,所述存储存储器阵列由所述存储器控制器管理;
读取存储于所存取存储器分页中的存储器数据;
判定相关于所述存储器数据的错误位数;
获得对应于所述所存取存储器分页的擦除计数,所述擦除计数指示在所述所存取存储器分页上进行的擦除操作的数目;
至少基于所述擦除计数自一或多个错误阈值当中判定错误阈值;
判定所述错误位数与所述错误阈值之间的关系;以及
以所述错误位数与所述错误阈值之间的所述关系满足第一准则为条件触发所存取存储器区块的数据更新。
CN202110226820.2A 2020-11-05 2021-02-26 存储器装置及其数据保持方法、存储器控制器 Pending CN114443344A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/089,972 2020-11-05
US17/089,972 US11461025B2 (en) 2020-11-05 2020-11-05 Data retention in memory devices

Publications (1)

Publication Number Publication Date
CN114443344A true CN114443344A (zh) 2022-05-06

Family

ID=80809055

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110226820.2A Pending CN114443344A (zh) 2020-11-05 2021-02-26 存储器装置及其数据保持方法、存储器控制器

Country Status (3)

Country Link
US (2) US11461025B2 (zh)
CN (1) CN114443344A (zh)
TW (1) TWI753777B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113704097A (zh) * 2015-12-21 2021-11-26 英特尔公司 在处理器追踪日志中使用编译器类型信息进行数据流分析的方法和设备

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11106532B1 (en) * 2020-04-29 2021-08-31 Micron Technology, Inc. Selective sampling of a data unit during a program erase cycle based on error rate change patterns
TWI763608B (zh) * 2021-11-02 2022-05-01 慧榮科技股份有限公司 資料儲存裝置及其損壞資料行的篩選方法
TWI822596B (zh) * 2023-02-23 2023-11-11 華邦電子股份有限公司 記憶體裝置及其擦除方法
CN117666972B (zh) * 2024-02-01 2024-05-14 合肥康芯威存储技术有限公司 一种存储装置及其数据处理方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110173484A1 (en) * 2010-01-08 2011-07-14 Ocz Technology Group, Inc. Solid-state mass storage device and method for failure anticipation
CN105468293A (zh) * 2014-09-30 2016-04-06 Emc公司 通过预测损坏的m-页提高闪存利用率的方法和系统
CN106688042A (zh) * 2014-12-05 2017-05-17 桑迪士克科技有限责任公司 用于数据刷新的部分块擦除
CN108122582A (zh) * 2016-11-29 2018-06-05 三星电子株式会社 非易失性存储器装置的操作方法和存储器控制器
CN110780802A (zh) * 2018-07-31 2020-02-11 爱思开海力士有限公司 存储器控制器及其操作方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8510637B2 (en) * 2010-04-14 2013-08-13 Phison Electronics Corp. Data reading method, memory storage apparatus and memory controller thereof
US9176800B2 (en) * 2011-08-31 2015-11-03 Micron Technology, Inc. Memory refresh methods and apparatuses
US9042181B2 (en) * 2013-03-15 2015-05-26 SanDisk Technologies, Inc. Periodic erase operation for a non-volatile medium
TWI490870B (zh) * 2013-08-06 2015-07-01 Silicon Motion Inc 資料儲存裝置及其資料維護方法
TWI525635B (zh) * 2013-12-17 2016-03-11 慧榮科技股份有限公司 資料儲存裝置及其資料維護方法
US9761326B2 (en) * 2015-07-29 2017-09-12 Toshiba Memory Corporation Memory system and memory control method
TWI556103B (zh) * 2016-02-05 2016-11-01 新唐科技股份有限公司 記憶體裝置及其資料存取方法
KR20170099018A (ko) * 2016-02-22 2017-08-31 에스케이하이닉스 주식회사 메모리 시스템 및 그의 동작방법
KR102530500B1 (ko) * 2018-09-28 2023-05-09 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
US11100011B2 (en) * 2018-12-13 2021-08-24 Sony Semiconductor Israel Ltd. Flash translation layer with hierarchical security
US10937512B2 (en) * 2019-01-22 2021-03-02 International Business Machines Corporation Managing programming errors in NAND flash memory
KR20210000414A (ko) * 2019-06-25 2021-01-05 에스케이하이닉스 주식회사 메모리 시스템
KR20210079555A (ko) * 2019-12-20 2021-06-30 에스케이하이닉스 주식회사 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110173484A1 (en) * 2010-01-08 2011-07-14 Ocz Technology Group, Inc. Solid-state mass storage device and method for failure anticipation
CN105468293A (zh) * 2014-09-30 2016-04-06 Emc公司 通过预测损坏的m-页提高闪存利用率的方法和系统
CN106688042A (zh) * 2014-12-05 2017-05-17 桑迪士克科技有限责任公司 用于数据刷新的部分块擦除
CN108122582A (zh) * 2016-11-29 2018-06-05 三星电子株式会社 非易失性存储器装置的操作方法和存储器控制器
CN110780802A (zh) * 2018-07-31 2020-02-11 爱思开海力士有限公司 存储器控制器及其操作方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113704097A (zh) * 2015-12-21 2021-11-26 英特尔公司 在处理器追踪日志中使用编译器类型信息进行数据流分析的方法和设备

Also Published As

Publication number Publication date
US11853567B2 (en) 2023-12-26
TWI753777B (zh) 2022-01-21
US20230015202A1 (en) 2023-01-19
US20220137842A1 (en) 2022-05-05
US11461025B2 (en) 2022-10-04
TW202219961A (zh) 2022-05-16

Similar Documents

Publication Publication Date Title
TWI753777B (zh) 具記憶體控制器的記憶體裝置及其資料保持方法
US11688485B2 (en) Self-adaptive read voltage adjustment using boundary error statistics for memories with time-varying error rates
US9916906B2 (en) Periodically updating a log likelihood ratio (LLR) table in a flash memory controller
US9189325B2 (en) Memory system and operation method thereof
US9864545B2 (en) Open erase block read automation
US9965345B2 (en) Health management of non-volatile memory
US11410743B2 (en) Self-adaptive read voltage adjustment using directional error statistics for memories with time-varying error rates
US9268657B1 (en) Varying data redundancy in storage systems
US8370680B2 (en) Solid state storage system for controlling reserved area and method of controlling the same
CN112447260B (zh) 使用阈值电压分布之间的间隔来调整读取和写入电压
CN107924700B (zh) 自适应多阶段擦除
CN114303197A (zh) 读取干扰扫描合并
CN114175163A (zh) 基于存储器子系统的特性执行刷新操作
US10629269B2 (en) Solid state storage device and read table management method thereof
US11894090B2 (en) Selective power-on scrub of memory units
CN115148237A (zh) 存储器装置通电之后存储器装置的块的电压块组选择
CN112052116A (zh) 存储器系统、存储器控制器和元信息存储装置
CN115910184A (zh) 基于数据质量改变概率数据完整性扫描的扫描频率
CN115145754A (zh) 存储器装置中的错误处置流管理
US11734195B2 (en) Adjustable memory operation settings based on memory sub-system operating requirements
CN117795472A (zh) 自适应数据完整性扫描频率
CN112447223A (zh) 基于系统特性执行刷新操作
CN113921060A (zh) 管理在存储器子系统中的清理操作的执行
CN118295585A (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