CN108228093A - 使用后台介质扫描来监控存储器的方法和装置 - Google Patents

使用后台介质扫描来监控存储器的方法和装置 Download PDF

Info

Publication number
CN108228093A
CN108228093A CN201710832796.0A CN201710832796A CN108228093A CN 108228093 A CN108228093 A CN 108228093A CN 201710832796 A CN201710832796 A CN 201710832796A CN 108228093 A CN108228093 A CN 108228093A
Authority
CN
China
Prior art keywords
page
bgms
piece
block
ssd
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.)
Granted
Application number
CN201710832796.0A
Other languages
English (en)
Other versions
CN108228093B (zh
Inventor
R.D.巴恩特
张鸿闵
A.G.科梅蒂
罗文阳
叶宏镇
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.)
Western Digital Technologies Inc
Original Assignee
Western Digital Technologies 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 Western Digital Technologies Inc filed Critical Western Digital Technologies Inc
Publication of CN108228093A publication Critical patent/CN108228093A/zh
Application granted granted Critical
Publication of CN108228093B publication Critical patent/CN108228093B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/079Root cause analysis, i.e. error or fault diagnosis
    • 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
    • G06F11/106Correcting systematically all correctable errors, i.e. scrubbing
    • 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/0617Improving the reliability of storage systems in relation to availability
    • 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
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/18Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7209Validity control, e.g. using flags, time stamps or sequence numbers
    • 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
    • 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
    • G11C16/3422Circuits or methods to evaluate read or write disturbance in nonvolatile memory, without steps to mitigate the problem
    • 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)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Computer Security & Cryptography (AREA)
  • Memory System (AREA)

Abstract

本公开的方面提供了以改善的效率执行后台介质扫描(BGMS)的方法和设备。特别地,所公开的BGMS处理能够通过仅扫描存储块的一些样本页面来监控大容量固态驱动器(SSD)的数据保留性能而不显著增加扫描开销。

Description

使用后台介质扫描来监控存储器的方法和装置
技术领域
本公开的各方面总的涉及数据存储设备,并且更具体地,涉及使用后台介质扫描(background media scan,BGMS)的存储器的监控。
背景技术
在各种消费类电子产品和计算机中,结合非易失性存储器(non-volatilememories,NVM)的固态驱动器经常替换或补充用于海量存储的传统旋转硬盘驱动器。这些非易失性存储器可以包括一个或多个闪存设备,闪存设备可以在逻辑上被划分成块,并且每一个块可以进一步逻辑地划分成可寻址的页面。
然而,闪存等易受数据保留问题的影响。数据保留是存储器单元或页面在一段时间内以无偏的状态保存所存储的数据的能力。数据保留时间可能受到诸如编程/擦除(P/E)周期和操作温度的各种因素的影响。一般来说,数据保留时间随P/E周期数的增加而减少。在高温下长时间运行存储器也可以减少数据保留时间。
发明内容
以下呈现本公开的一个或多个方面的简化概括,以便提供对这些方面的基本理解。这个概括不是对本公开的所有预期特征的广泛概述,并且既不旨在标识本公开的所有方面的关键或关键要素,也不旨在划定本公开的任何或所有方面的范围。其唯一目的是以简化形式呈现本公开的一个或多个方面的一些概念,作为稍后呈现的更详细描述的序言。
本公开的各方面提供了以改善的效率执行后台介质扫描(BGMS)的方法和装置。特别地,所公开的BGMS处理能够通过仅仅扫描存储块的一些样本页面来监控大容量固态驱动器(SSD)的数据保留性能而不显著增加扫描开销。
在本公开的一个方面,本公开涉及使用后台介质扫描(BGMS)监控非易失性存储器(NVM)的方法。该方法在预定的BGMS扫描期间对于NVM的多个块执行扫描在多个块的每个块中包括的页面的样本的BGMS扫描。该方法还确定多个块的块的页面的样本之中的读取错误。如果在块中检测到错误,则该方法扫描包含读取错误的块的所有页面。
在本公开的另一方面,本公开涉及包括非易失性存储器(NVM)和耦合到NVM的处理器的固态驱动器(NVM)。该处理器被配置为在预定的BGMS扫描时段期间对于NVM的多个块执行后台介质扫描(BGMS)。BGMS扫描在多个块的每个块中包括的页面的样本。该处理器还被配置为确定多个块的块的页面的样本之中的读取错误。如果在块中检测到错误,则处理器被配置为扫描包含读取错误的块的所有页面。
在本公开的另一方面,本公开涉及包括非易失性存储器(NVM)的固态驱动器(SSD)。SSD还包括用于在预定的BGMS扫描时段期间对于NVM的多个块执行后台介质扫描(BGMS)的装置,并且BGMS扫描在多个块的每个块中包括的页面的样本。SSD还包括用于确定多个块的块的页面的样本之中的读取错误的装置、以及用于扫描包含该读取错误的块的所有页面的装置。
附图说明
图1是根据本公开的一些实施例的可以使用后台介质扫描(BGMS)执行各种数据保留监控功能的固态驱动器(SSD)的框图。
图2是示出根据本公开的一个实施例的闪存组织的框图。
图3是示出根据本公开的一个实施例的用于执行BGMS的时间线的图。
图4是示出当存储器上的BGMS延伸超过BGMS扫描时段时的示例。
图5是示出根据本公开的一个实施例的用于执行BGMS以监控数据保留的处理的流程图。
图6是示出根据本公开的一个实施例的用于确定存储器的读取错误的处理的流程图。
图7是示出根据本公开的一个实施例的用于在BGMS期间选择存储块的一些页面样本的处理的流程图。
图8是示出根据本公开的一个实施例的当对于存储块执行BGMS时随机选择字线的处理的流程图。
图9是示出根据本公开的实施例的用于控制存储块的写入时段的处理的流程图。
具体实施方式
现在参考附图,示出使用用于监控数据存储设备或存储器设备的数据保留错误的后台介质扫描(BGMS)的系统和方法。虽然使用被包括在固态驱动器(SSD)中的存储器来图示BGMS,但本公开不限于此,而是可以扩展到其它数据存储设备。本公开中描述的BGMS处理可以用于监控大容量SSD的数据保留性能,而不会显著增加扫描开销。此外,本公开的BGMS处理能够通过仅仅扫描块的一些样本页面来有效地监控存储块的数据保留错误。所描述的BGMS处理还可以在访问SSD的数据储存存储器的主机遇到错误位置之前发现和/或确定SSD上的错误位置。
图1是根据本公开的一些实施例的被配置为使用BGMS执行各种数据保留监控功能的SSD的框图。系统100包括主机102和耦合到主机102的SSD 104。主机102向SSD 104提供用于在主机102和SSD 104之间传递数据的各种命令或指令。例如,主机102可以向SSD 104提供用于向SSD 104写入数据的写入命令或者向SSD 104提供用于从SSD 104读取数据的读取命令。主机102可以是具有数据存储或检索的需求以及用于与SSD 104通信的兼容接口的任何系统或设备。例如,主机102可以是计算设备、个人计算机、便携式计算机或工作站、服务器、个人数字助理、智能电话、数字相机、数字电话等等。
SSD 104包括主机接口106、控制器108、存储器110、非易失性存储器112和定时器114。主机接口106耦合到控制器108,并且便于在主机102和控制器108之间进行通信。SSD104可以利用定时器114来进行各种功能,包括例如跟踪将特定数据写入NVM 112的时间。此外,控制器108耦合到存储器110和非易失性存储器112。主机接口106可以是任何类型的通信接口,诸如电子集成驱动(Integrated Drive Electronics,IDE)接口、通用串行总线(Universal Serial Bus,USB)接口、串行外设(Serial Peripheral,SP)接口、高级技术附件(Advanced Technology Attachment,ATA)接口、小型计算机系统接口(Small ComputerSystem Interface,SCSI)、IEEE 1394(Firewire)接口等。在一些实施例中,主机102包括SSD 104。在其它实施例中,SSD 104相对于主机102是远程的,或者被包含在与主机102通信的远程计算系统中。例如,主机102可以通过有线和/或无线通信链路与SSD 104通信。
控制器108控制SSD 104的操作。在各种实施例中,控制器108通过主机接口106从主机102接收命令,并且执行该命令以在主机102和非易失性存储器112之间传送数据。控制器108可以包括用于控制SSD 104的操作的任何类型的处理设备,诸如微处理器、微控制器、嵌入式控制器、逻辑电路、软件、固件、上述设备的组合等。
在一些实施例中,由控制器108执行的这里描述的功能中的一些或所有可以替代地由SSD 104的另一元件执行。在一个方面,控制器108可以是被专门配置/编程为执行应用中包含的任意功能的专用控制器。例如,SSD 104可以包括用于执行由控制器108执行的这里描述的一个或多个功能的微处理器、微控制器、嵌入式控制器、逻辑电路、现场可编程门阵列(field-programmable gate array,FPGA)、专用集成电路(application-specificintegrated circuit,ASIC)、软件、固件、或者任何种类的处理装置。在一些实施例中,由控制器108执行的这里描述的一个或多个功能可以替代地由主机102执行。在一些实施例中,由控制器108执行的这里描述的功能中的一些或所有可以替代地由诸如包括非易失性存储元件和磁存储元件的混合驱动器中的控制器的另一元件执行。
存储器110可以是能够存储数据的任何存储器、计算设备或系统。例如,存储器110可以是随机存取存储器(random-access memory,RAM)、动态随机存取存储器(dynamicrandom-access memory,DRAM)、静态随机存取存储器(static random-access memory,SRAM)、同步动态随机存取存储器(synchronous dynamic random-access memory,SDRAM)等。在各种实施例中,控制器108使用存储器110或者其一部分来在主机102和非易失性存储器112之间的数据传递期间存储数据。例如,存储器110或存储器110的一部分可以是高速缓存。
非易失性存储器(NVM)112从控制器108接收数据并存储数据。非易失性存储器112可以包括一种或多种类型的非易失性数据存储器,诸如闪存系统、固态驱动器、闪存卡、安全数字(secure digital,SD)卡、通用串行总线(universal serial bus,USB)存储器件、CompactFlash卡、SmartMedia设备、闪存阵列、闪存、可擦除可编程只读存储器(erasableprogrammable read-only-memory,EPROM)、电可擦除可编程只读存储器(electricallyerasable programmable read-only-memory,EEPROM)、磁阻随机存取存储器、非易失性RAM、铁电RAM、或者相变RAM等。
在一些应用中,NVM 112可以包括可以在多个块中写入和读取的闪存。闪存的一个例子是在固态存储设备和系统中常用的与非(NAND)型闪存。NAND闪存的数据存储以块为单位进行组织。每个块被划分成一定数量的页面,页面是数据能被写入NAND闪存的最小单元。当页面被写入数据时,除非页面首先被擦除,否则它不再可用于存储新数据。要擦除特定页面,包含该页面的整个块被擦除。闪存能在有限数量的编程/擦除(P/E)周期被可靠的写入和读取。然而,即使在达到P/E周期限制之前,闪存中的数据保留将随着时间的推移而恶化,并且影响所存储的数据的完整性和可靠性。
后台介质扫描(BGMS)可以用于监控闪存处的数据保留错误,从而可以主动地采取某些动作来防止潜在数据丢失并维持数据完整性。BGMS还可以保护闪存免受由不被读取或很少被读取的单元引起的潜在的高数据保留错误。当存储单元不被读取或很少被读取时,错误级别是未知的,因此不会执行主动测量以维持数据完整性。
图2是示出根据本公开的一个实施例的闪存组织的框图。闪存200可以包括多个存储块202(在本公开中,以下称为“块”)。每个块202可以包括多个页面204(例如,如图2所示的每个块中的K+1个页面)。可以经由多条字线206(例如,图2所示的WL0至WLn)来控制对页面204的访问。在一个示例中,一条字线(WL)可以控制两个页面(上页面和下页面)的访问。在该示例中,上页面和下页面分别使用不同的阈值电压来共享相同的单元。在其它示例中,一条字线可以控制对多于两个页面的访问。虽然图2示出了闪存200的示例性存储器组织,但是本公开不限于该特定示例。在其它示例中,闪存200可以具有其它存储器组织。
闪存200可以被包括在SSD 104的NVM 112中。当对于闪存(例如,NVM 112)执行BGMS时,因为一些周期时间用于执行BGMS,所以SSD性能将受到影响。然而,BGMS需要以显著的频率执行,以在数据完整性受损之前检测数据保留问题。例如,BGMS可以每二十四小时至少执行一次,以检查闪存中所有块中的所有页面。然而,随着被包括在SSD中的闪存的大小继续增加,扫描所有页面所花费的时间将成为影响SSD 104性能的重大开销。虽然可以延长连续的BGMS之间的时间间隔,但是这样做可能降低BGMS检测数据保留错误的有效性。
图3是示出根据本公开的实施例的用于执行BGMS的时间线的图。为了减少对主机输入和输出(input and output,I/O)性能的影响,可以在主机I/O空闲或低于一定水平时执行BGMS。在图3中,当主机I/O 302活动或忙碌时,不执行BGMS。当主机I/O空闲或不活动时,可以在BGMS扫描时段306期间执行BGMS 304。根据各种标准和需要,BGMS扫描时段306可以是任何预定的时间间隔。在一个示例中,BGMS扫描时段306可以是二十四小时或更短。在这个示例中,在每个BGMS扫描时段中执行至少一个BGMS。当闪存块的页面的数量增加时(例如,当存储密度增加时),如果扫描每个页面,则用于完成一个BGMS的时间将增加。因此,增加闪存大小(即,更多的页面)可能导致在某一BGMS扫描时段内BGMS可能未完成的场景,并且其将显著增加SSD的开销。
图4是示出由于块中包含的大量页面而使得闪存上的示例性BGMS 402超过BGMS扫描时段404延伸的时序图。如果有额外的主机I/O活动,因为更少的时间可被用于执行BGMS,所以情况将变得更糟。
在本公开的一个实施例中,使用BGMS仅扫描块的一些样本页面,而不是扫描每个页面,使得即使当块包含大量的页面时也可以避免或减少对SSD 104的显著性能影响。
图5是示出根据本公开的一个实施例的用于执行BGMS以监控存储器的数据保留的处理500的流程图。在该实施例中,在框502处,SSD 104可以在预定的BGMS扫描时段内至少扫描多个存储块202一次。在一个实施例中,框502可以利用控制器108实现,或者利用如图1所示的控制器108与主机102的组合实现。框502可以表示用于在预定的BGMS扫描时段期间、对于NVM的多个块执行BGMS的一个装置,该BGMS包括扫描在多个块的每个块中包括的页面的样本。例如,SSD 104可以在二十四小时内扫描NVM 112的多个块202。在该实施例中,SSD扫描在每一个块中包括的页面(即,不是所有页面)(例如,在给定块中包含的所有页面的子集)的样本,使得可以减少扫描时间。
在框504,SSD可以确定在一个或多个扫描页面中发生的读取错误。SSD可以确定在样本页面中的读取错误。读取错误可以指示具有读取错误的页面的数据保留错误。在一个实施例中,框504可以利用控制器108实现,或者利用如图1所示的控制器108与主机102的组合实现。框504可以表示用于确定多个块的块的页面的样本之中的读取错误的一个装置。如果没有检测到错误,则SSD通过仅扫描每个块中的一些样本页面来继续BGMS。
如果检测到错误,则在框506处,SSD扫描包含读取错误的块的所有页面。也就是说,如果SSD确定在扫描的样本页面中的任何一个中存在读取错误,则SSD将扫描具有包含读取错误的页面的该块的所有页面。在一个实施例中,框506可以利用控制器108实现,或者利用如图1所示的控制器108与主机102的组合实现。框506可以表示用于扫描包含读取错误的块的所有页面的一个装置。
因为单个存储块中的页面倾向于具有作为该块上的P/E周期数和数据保留时间的函数的相似的数据保留误差特性,所以可以不需要扫描整个块以实现在块中检测到严重级别的数据保留错误的高度确信。相反,如图5所示,扫描有限数量的页面(例如,样本页面)可以足以监控块。当样本页面扫描导致超过某个质量度量阈值(例如,遇到比可接受的阈值更多的错误),可以执行块中所有页面的完整扫描。在一个示例中,增强的BGMS(诸如图5所示的处理)可以通过仅扫描块中的大约10%的页面来有效地监控块。这样增强的BGMS可以用于监控非常大容量的SSD,而不会引入不必要的开销。
图6是示出根据本公开的实施例的用于确定存储器的读取错误的处理600的流程图。此处理600可以由SSD 104执行,以在根据图5的处理500执行BGMS的同时确定SSD 104的NVM 112的读取错误。在框602处,SSD从存储器块200的页面读取数据。在判断框604,SSD确定该页面是否具有纠错码(error-correcting code,ECC)错误。例如,SSD可以使用略微降低的ECC容差来确定读取错误,从而SSD可以确定该页面可能具有数据保留问题但仍然可被主机读取。在框606处,如果确定页面具有ECC错误,则SSD可以尝试利用完整ECC来恢复数据。在一些示例中,SSD可以尝试向同一个点重写数据,并且验证它可以没有错误地重新读取数据。在判断框608处,如果数据被恢复,则SSD在框610处可以确定该页面没有数据保留错误(无读取错误);否则,SSD可以在框612处确定页面具有数据保留错误(读取错误)。在一些示例中,SSD可以将数据标记为需要重新分配,并且避免将来向该页面位置写入数据。
图7是示出根据本公开的实施例的用于当执行BGMS时选择存储块的一些样本页面的处理700的流程图。可以基于预定的字线以及能够在每个BGMS迭代中改变的随机选择的字线的组合来选择被采样的页面。在框702处,SSD 104可以选择存储块的一个或多个预定的起始字线。每个起始字线控制对块的一个或多个页面的访问。起始字线可以是指与块的物理或逻辑布局有关的块的第一个字线的字线。在一个示例中,可以选择前两个起始字线(例如,图2的WL0和WL1)。在其它实施例中,字线和对应的页面的编号可以不同,并且不限于图2所示的那些。
在框704处,SSD可以选择块的一个或多个结束字线。在一个示例中,可以选择最后两个结束字线(例如,图2的WLn-1和WLn)。每个结束字线控制对存储器的一个或多个页面的访问。结束字线可以是指与块的物理或逻辑布局有关的存储器的最后一个字线的字线。因此,第一个起始字线(例如,WL0)和最后一个结束字线(例如WLn)可以是物理或逻辑意义上的块的相应最外面的字线。
在框706处,SSD可以随机选择所选择的起始字线和结束字线之间的字线。在一个示例中,每次执行BGMS时可以随机选择两个这样的字线。在一些示例中,不同的字线在每个BGMS中的起始字线和结束字线之间随机旋转。因此,起始字线和结束字线之间的所有字线将有机会以随机的方式被扫描。在本公开的一个实施例中,SSD可以仅扫描由所选择的字线控制的页面之一(例如,上页面)。在一个示例中,参考图2,SSD可以针对WL0仅扫描页面1,并且针对WL1仅扫描页面3。因为在某些闪存(例如,NAND闪存)中,上页面倾向于具有更多的错误,所以每个字线仅扫描一页可以是足够的。因此,仅扫描上页面仍然可以提前检测问题,并且进一步减少存储块的扫描时间。
图8是示出根据本公开的实施例的在执行BGMS时随机选择字线的处理800的流程图。此处理800可以由SSD 104或框706中的任何设备执行以在BGMS期间随机选择一个或多个字线。在框802处,SSD可以在块202的第一区域中随机选择一个或多个第一字线。在框804处,SSD可以在块202的第二区域中随机选择一个或多个第二字线。例如,块可以被划分为两个区域(即,第一区域和第二区域)。第一区域可以包括与第一字线WL1到第K字线WLk对应的页面,并且第二区域可以包括与第(K+1)字线WLk+1到第n字线WLn对应的页面。也就是说第一区域与第二区域具有完全不同的字线。在本公开的一个实施例中,第一区域可以具有比第二区域更多的字线。在本公开的一个实施例中,第二区域可以具有比第一区域更多的字线。在本公开的一个实施例中,第一和第二区域可以具有相等数量的字线。在一个实施例中,第一区域和第二区域中的每一个可以包括多个非连续区域。
图9是示出根据本公开的实施例的用于控制存储块的写入时段的处理900的流程图。当数据被写入块时,存储块的数据保留错误受到数据保留时间和/或温度的影响。数据保留时间是从某些数据被写入页面起的时间段。因此,如果相同的块的页面在相似的条件下被写入,则上述BGMS处理可以更有效地检测潜在的数据保留错误。例如,如果块的页面只能在相对短的时间段内被写入,则这些页面之中发生数据保留错误的可能性将是相似的。这是因为数据将具有相似的日期保留时间,并且在数据被写入块时的温度在页面之中将是相似的。
在框902处,SSD 104可以在某个时间点(例如,第一时间点)向存储块200写入数据并启动定时器114。在这种实例中,可以假设此块的所有页面可用于写入。在判断框904,SSD确定定时器是否已经期满。在一个示例中,定时器可以被设置为在五分钟或任何预定时间段期满。如果确定定时器还没有期满,则SSD可以在框906处向存储块写入更多的数据;否则,在框908不允许或禁止向存储块写入,直到定时器被复位。当SSD执行垃圾收集操作时,定时器可以被复位。垃圾收集是从不再需要的页面中删除数据的处理。SSD可以由主机定期或按需地执行垃圾收集。在闪存中,数据以页面为单位被写入。当块的一些页面中的数据不再需要或过时时,该块中具有良好数据的页面可以被读取并重新写入另一先前被擦除的空块中。然后具有过时页面的块可以被擦除,来释放那些过时页面以存储新数据。这个处理被公知为垃圾收集等。
虽然上述描述包含本发明的许多具体实施例,但是这些不应被解释为对本发明的范围的限制,而是作为其具体实施例的示例。因此,本发明的范围不应由所示实施例确定,而是由所附权利要求及其等同物来确定。
上述各种特征和过程可以彼此独立地使用,或者可以以各种方式组合。所有可能的组合和子组合旨在落入本公开的范围内。此外,在一些实现中可以省略某些方法、事件、状态或过程框。这里描述的方法和过程也不限于任何特定的顺序,并且与其相关的框或状态能够以适合的其它顺序来执行。例如,所描述的任务或事件可以以除了具体公开的顺序执行,或者多个可以以单个框或状态组合。示例性任务或事件可以串行、并行或以某种其它合适的方式执行。任务或事件可以被添加到所公开的示例性实施例中或从所公开的示例性实施例中删除。这里描述的示例性系统和组件可以被配置成不同于所描述的。例如,与所公开的示例性实施例相比,元件可以被添加到其中、从其中移出或重新排列。

Claims (28)

1.一种使用后台介质扫描(BGMS)监控非易失性存储器(NVM)的方法,包括:
在预定的BGMS扫描时段期间对于所述NVM的多个块执行所述BGMS,所述BGMS包括扫描所述多个块的每个块中包括的页面的样本;
确定所述多个块的块的页面的样本之中的读取错误;以及
扫描包含所述读取错误的块的所有页面。
2.如权利要求1所述的方法,其中所述扫描页面的样本包括:
扫描所述多个块的块的第一预定页面和第二预定页面;以及
扫描所述块的随机选择的页面。
3.如权利要求2所述的方法,其中所述扫描所述块的随机选择的页面包括:
随机选择所述块的第一页面;
扫描所述块的所述第一页面;
随机选择所述块的与所述第一页面不同的第二页面;以及
扫描所述块的所述第二页面。
4.如权利要求2所述的方法,其中所述扫描所述块的随机选择的页面包括:
在所述块的第一部分中随机选择第一页面;以及
在所述块的与所述第一部分不同的第二部分中随机选择第二页面。
5.如权利要求1所述的方法,其中所述扫描页面的样本包括:
扫描与所述多个块的块的起始字线相关联的页面;
扫描与所述块的结束字线相关联的页面;以及
扫描与被布置在所述起始字线和所述结束字线之间的所述块的字线相关联的页面。
6.如权利要求1所述的方法,其中所述扫描页面的样本包括:
在与所述多个块的每个块的相同字线相关联的多个页面之中仅扫描一个页面。
7.如权利要求1所述的方法,还包括:
确定数据被写入所述多个块的块的第一时间;以及
以预定时间间隔禁止在所述第一时间之后的第二时间向所述块写入数据。
8.如权利要求1所述的方法,还包括:
响应于确定所述读取错误,增加在所述BGMS扫描时段中对于多个块执行所述BGMS的次数。
9.如权利要求1所述的方法,其中,所述NVM包括NAND型闪存。
10.如权利要求1所述的方法,其中,所述NVM被包括在固态驱动器(SSD)中。
11.一种固态驱动器(SSD),包括:
非易失性存储器(NVM);以及
处理器,其耦合到所述NVM,
其中所述处理器被配置为:
在预定的BGMS扫描时段期间对于所述NVM的多个块执行后台介质扫描(BGMS),所述BGMS包括扫描在所述多个块的每个块中包括的页面的样本;
确定所述多个块的块中的页面的样本之中的读取错误;以及
扫描包含所述读取错误的块的所有页面。
12.如权利要求11所述的SSD,其中,与扫描页面的样本相关地,所述处理器还被配置为:
扫描所述多个块的块的第一预定页面和第二预定页面;以及
扫描所述块的随机选择的页面。
13.如权利要求12所述的SSD,其中,与扫描所述块的随机选择的页面相关地,所述处理器还被配置为:
随机选择所述块的第一页面;
扫描所述块的所述第一页面;
随机选择所述块的与所述第一页面不同的第二页面;以及
扫描所述块的所述第二页面。
14.如权利要求12所述的SSD,其中,与扫描所述块的随机选择的页面相关地,所述处理器还被配置为:
在所述块的第一部分中随机选择第一页面;以及
在所述块的与所述第一部分不同的第二部分中随机选择第二页面。
15.如权利要求11所述的SSD,其中,与扫描页面的样本相关地,所述处理器还被配置为:
扫描与所述多个块的块的起始字线相关联的页面;
扫描与所述块的结束字线相关联的页面;以及
扫描与被布置在所述起始字线和所述结束字线之间的所述块的字线相关联的页面。
16.如权利要求11所述的SSD,其中,与扫描页面的样本相关地,所述处理器还被配置为:
在与所述多个块的每个块的相同字线相关联的多个页面之中仅扫描一个页面。
17.如权利要求11所述的SSD,其中,所述处理器还被配置为:
确定数据被写入所述多个块的块的第一时间;以及
以预定时间间隔禁止在所述第一时间之后的第二时间向所述块写入数据。
18.如权利要求11所述的SSD,其中,所述处理器还被配置为:
响应于确定所述读取错误,增加在BGMS扫描时段中对于所述多个块执行所述BGMS的次数。
19.如权利要求11所述的SSD,其中,所述NVM包括NAND型闪存。
20.一种固态驱动器(SSD),包括:
非易失性存储器(NVM);
用于在预定的BGMS扫描时段期间对于所述NVM的多个块执行后台介质扫描(BGMS)的装置,所述BGMS包括扫描在所述多个块的每个块中包括的页面的样本;
用于确定所述多个块的块的页面的样本之中的读取错误的装置;以及
用于扫描包含所述读取错误的块的所有页面的装置。
21.如权利要求20所述的SSD,其中,用于执行所述BGMS的装置还被配置为通过以下步骤来扫描页面的样本:
扫描所述多个块的块的第一预定页面和第二预定页面;以及
扫描所述块的随机选择的页面。
22.如权利要求21所述的SSD,其中,用于执行所述BGMS的装置还被配置为通过以下步骤来扫描所述随机选择的页面:
随机选择所述块的第一页面;
扫描所述块的所述第一页面;
随机选择所述块的与所述第一页面不同的第二页面;以及
扫描所述块的第二页面。
23.如权利要求21所述的SSD,其中,用于执行所述BGMS的装置还被配置为通过以下步骤来扫描所述随机选择的页面:
在所述块的第一部分中随机选择第一页面;以及
在所述块的与所述第一部分不同的第二部分中随机选择第二页面。
24.如权利要求20所述的SSD,其中,用于执行所述BGMS的装置还被配置为通过以下步骤扫描页面的样本:
扫描与所述多个块的块的起始字线相关联的页面;
扫描与所述块的结束字线相关联的页面;以及
扫描与被布置在所述起始字线和所述结束字线之间的所述块的字线相关联的页面。
25.如权利要求20所述的SSD,其中,用于执行所述BGMS的装置还被配置为通过以下步骤来扫描页面的样本:
在与所述多个块的每个块的相同字线相关联的多个页面之中仅扫描一个页面。
26.如权利要求20所述的SSD,还包括:
用于确定数据被写入所述多个块的块的第一时间的装置;以及
用于以预定时间间隔禁止在所述第一时间之后的第二时间向所述块写入数据的装置。
27.如权利要求20所述的SSD,还包括:
用于响应于确定所述读取错误而增加在BGMS扫描时段中对于所述多个块执行所述BGMS的次数的装置。
28.如权利要求20所述的SSD,其中,所述NVM包括NAND型闪存。
CN201710832796.0A 2016-12-22 2017-09-15 使用后台介质扫描来监控存储器的方法和装置 Active CN108228093B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/388,603 US10545810B2 (en) 2016-12-22 2016-12-22 Method and apparatus for monitoring non-volatile memory read errors using background media scan
US15/388,603 2016-12-22

Publications (2)

Publication Number Publication Date
CN108228093A true CN108228093A (zh) 2018-06-29
CN108228093B CN108228093B (zh) 2021-03-23

Family

ID=62510328

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710832796.0A Active CN108228093B (zh) 2016-12-22 2017-09-15 使用后台介质扫描来监控存储器的方法和装置

Country Status (3)

Country Link
US (1) US10545810B2 (zh)
CN (1) CN108228093B (zh)
DE (1) DE102017120826A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112053733A (zh) * 2019-06-05 2020-12-08 美光科技公司 故障敏感存储器页面的选择性加速取样

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10755793B2 (en) * 2017-10-31 2020-08-25 Micron Technology, Inc. SLC page read
CN112002369A (zh) * 2020-07-13 2020-11-27 珠海妙存科技有限公司 提升闪存数据安全性的扫描方法
US11768937B1 (en) * 2020-11-30 2023-09-26 Amazon Technologies, Inc. Hash based flexible threat scanning engine
KR20230018873A (ko) * 2021-07-30 2023-02-07 에스케이하이닉스 주식회사 메모리 시스템 및 그 동작 방법
US12046257B1 (en) * 2023-04-05 2024-07-23 Western Digital Technologies, Inc. Reducing peak power consumption in a multi-actuator hard disk drive

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5097446A (en) * 1988-05-23 1992-03-17 Hitachi, Ltd. Nonvolatile semiconductor memory device
CN103035294A (zh) * 2011-09-28 2013-04-10 三星电子株式会社 从非易失性存储器读数据的方法及实施方法的设备和系统
US20130346805A1 (en) * 2012-06-21 2013-12-26 Steven T. Sprouse Flash memory with targeted read scrub algorithm
US20160049192A1 (en) * 2014-08-17 2016-02-18 Peter Wung Lee Vsl-based vt-compensation and analog program scheme for nand array without csl
CN106250054A (zh) * 2015-06-12 2016-12-21 爱思开海力士有限公司 包括多个存储器区域的存储器系统和操作该存储器系统的方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7573773B2 (en) * 2007-03-28 2009-08-11 Sandisk Corporation Flash memory with data refresh triggered by controlled scrub data reads
US7770079B2 (en) * 2007-08-22 2010-08-03 Micron Technology Inc. Error scanning in flash memory
US8248831B2 (en) * 2008-12-31 2012-08-21 Apple Inc. Rejuvenation of analog memory cells
US9411669B2 (en) * 2014-09-11 2016-08-09 Sandisk Technologies Llc Selective sampling of data stored in nonvolatile memory
KR102413755B1 (ko) * 2015-11-20 2022-06-28 삼성전자주식회사 리텐션 특성에 의한 성능 저하를 복구하는 저장 장치의 동작 방법 및 이를 포함하는 데이터 처리 시스템의 동작 방법
US10169144B2 (en) * 2016-01-15 2019-01-01 Micron Technology, Inc. Non-volatile memory including selective error correction
US9971515B2 (en) * 2016-09-13 2018-05-15 Western Digital Technologies, Inc. Incremental background media scan

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5097446A (en) * 1988-05-23 1992-03-17 Hitachi, Ltd. Nonvolatile semiconductor memory device
CN103035294A (zh) * 2011-09-28 2013-04-10 三星电子株式会社 从非易失性存储器读数据的方法及实施方法的设备和系统
US20130346805A1 (en) * 2012-06-21 2013-12-26 Steven T. Sprouse Flash memory with targeted read scrub algorithm
US20160049192A1 (en) * 2014-08-17 2016-02-18 Peter Wung Lee Vsl-based vt-compensation and analog program scheme for nand array without csl
CN106250054A (zh) * 2015-06-12 2016-12-21 爱思开海力士有限公司 包括多个存储器区域的存储器系统和操作该存储器系统的方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112053733A (zh) * 2019-06-05 2020-12-08 美光科技公司 故障敏感存储器页面的选择性加速取样
CN112053733B (zh) * 2019-06-05 2024-06-04 美光科技公司 故障敏感存储器页面的选择性加速取样

Also Published As

Publication number Publication date
US10545810B2 (en) 2020-01-28
CN108228093B (zh) 2021-03-23
DE102017120826A1 (de) 2018-06-28
US20180181300A1 (en) 2018-06-28

Similar Documents

Publication Publication Date Title
CN108228093A (zh) 使用后台介质扫描来监控存储器的方法和装置
CN107025185B (zh) 数据存储装置及其操作方法
CN106448737B (zh) 读取闪存数据的方法、装置以及固态驱动器
KR102028128B1 (ko) 불휘발성 랜덤 액세스 메모리 및 낸드 플래시 메모리를 포함하는 메모리 시스템의 동작 방법
US9361182B2 (en) Method for read disturbance management in non-volatile memory devices
US8203881B2 (en) Nonvolatile memory device, method of operating nonvolatile memory device and memory system including nonvolatile memory device
KR101938210B1 (ko) 낸드 플래시 메모리, 가변 저항 메모리 및 컨트롤러를 포함하는 메모리 시스템의 동작 방법
EP2115594B1 (en) Memory system
CN104919434B (zh) 用于在固态驱动器中进行较低页数据恢复的系统和方法
US9053808B2 (en) Flash memory with targeted read scrub algorithm
CN106575522B (zh) 用于使用隔离过程的修复效果的存储模块和方法
US8046530B2 (en) Process and method for erase strategy in solid state disks
CN110335635B (zh) 用来管理一记忆装置的方法以及记忆装置与控制器
CN107039082B (zh) 非易失性存储器系统的操作方法
CN108595345B (zh) 管理闪存中所储存的数据的方法及相关记忆装置与控制器
US8738842B2 (en) Solid state disk controller and data processing method thereof
CN106250054B (zh) 包括多个存储器区域的存储器系统和操作该存储器系统的方法
KR20160043121A (ko) 동적 멀티 모드 동작의 비휘발성 메모리
CN106920570B (zh) 存储器系统及其操作方法
US9030878B2 (en) Semiconductor memory device including a plurality of cell strings, memory system including the same, and control method thereof
US9837167B2 (en) Method for operating storage device changing operation condition depending on data reliability
KR102267046B1 (ko) 스토리지 장치 및 배드 블록 지정 방법
US8081517B2 (en) Solid state storage system for uniformly using memory area and method controlling the same
KR102324686B1 (ko) 라인 방전을 방지함으로써 개선된 판독 성능을 갖는 데이터 저장소
US9799407B2 (en) Method for operating storage device managing wear level depending on reuse period

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
GR01 Patent grant
GR01 Patent grant