CN110955385A - 用于基于与错误恢复相关联的读取电平电压的改进的数据重定位的数据存储***和方法 - Google Patents

用于基于与错误恢复相关联的读取电平电压的改进的数据重定位的数据存储***和方法 Download PDF

Info

Publication number
CN110955385A
CN110955385A CN201910494638.8A CN201910494638A CN110955385A CN 110955385 A CN110955385 A CN 110955385A CN 201910494638 A CN201910494638 A CN 201910494638A CN 110955385 A CN110955385 A CN 110955385A
Authority
CN
China
Prior art keywords
level voltage
read level
data
target block
buffer
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
CN201910494638.8A
Other languages
English (en)
Other versions
CN110955385B (zh
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.)
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 CN110955385A publication Critical patent/CN110955385A/zh
Application granted granted Critical
Publication of CN110955385B publication Critical patent/CN110955385B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • 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/26Sensing or reading circuits; Data output circuits
    • G11C16/28Sensing or reading circuits; Data output circuits using differential sensing or reference cells, e.g. dummy cells
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • 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/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0408Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells containing floating gate transistors
    • 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/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3404Convergence or correction of memory cell threshold voltages; Repair or recovery of overerased or overprogrammed cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/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
    • 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/52Protection of memory contents; Detection of errors in memory contents

Landscapes

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

Abstract

本发明题为“用于基于与错误恢复相关联的读取电平电压的改进的数据重定位的数据存储***和方法”。提供了关于用于基于与错误恢复相关联的读取电平电压的改进的数据重定位的数据存储***和方法的装置、介质、方法和***。数据存储***可以包括:非易失性存储器设备,该非易失性存储器设备包括源区和目标区,其中该目标区包括第一目标块和与该第一目标块不同的第二目标块;和控制器。该控制器被配置为使用第一读取电平电压读取该源区中的第一数据,使用不同于该第一读取电平电压的第二读取电平电压读取所述源区中的第二数据。该控制器被配置为基于该第一读取电平电压和该第二读取电平电压而将该第一数据和该第二数据中的每一者与该第一目标块和该第二目标块中的相应一者相关联。该控制器被配置为使该第一数据和该第二数据中的每一者存储在该第一目标块和该第二目标块中的该相关联的一者中。

Description

用于基于与错误恢复相关联的读取电平电压的改进的数据重 定位的数据存储***和方法
背景技术
数据存储***可能需要定期地将数据从一个位置重定位到另一个位置。可能无法以相同的频率访问所有正在重定位的数据。例如,某些数据可能比其他数据更频繁地被访问,而某些其他数据可能在长时间段内都不会被访问。每次访问存储的数据时,数据存储***将一定电压施加到存储数据的字线。随着更频繁地访问数据,成功地读取数据和/或对其进行解码所需的读取电平电压也会增大。类似地,当在长时间段内都不访问数据时,成功地读取数据和/或对其进行解码所需的读取电平电压就会减小。成功地读取数据和/或对其进行解码所需的读取电平电压的变化可能增加访问该数据时的错误率,这增加了由数据存储***成功地执行读取操作的计算成本和处理时间。
背景技术部分中提供的描述不应仅因为它在背景技术部分中被提及或与背景技术部分相关联而被认为是现有技术。背景技术部分可以包括描述本主题的技术的一个或多个方面的信息。
附图说明
图1描绘了示出根据例示性实施方式的读取电平电压的三种可能场景的示例性图。
图2是示出根据例示性实施方式的数据存储***的部件的框图。
图3是示出根据例示性实施方式的数据存储***的部件的框图。
图4示出了根据例示性实施方式的来自源块的数据与目标块的关联。
图5是根据例示性实施方式的确定字线是否满足真实擦除条件的示例性方法的流程图。
在一个或多个具体实施中,可能并非每个附图中的所有所描绘的部件都是所需的,并且一个或多个实施方式可以包括在附图中未示出的附加部件。在不脱离本公开的范围的情况下,可以做出对部件的布置和类型的变化。在本公开的范围内,可以利用附加部件、不同部件或更少部件。
具体实施方式
下面阐述的详细描述旨在作为本主题的公开内容的各个配置的描述,而不旨在表示可实践本主题的公开内容的唯一配置。附图结合到本文中并构成详细描述的一部分。详细描述包括具体细节,其目的是提供对本主题公开内容的透彻理解。然而,将对本领域的技术人员显而易见的是,可以在没有这些具体细节的情况下实践本主题的公开内容。在一些情况下,结构和部件以框图的形式示出,以便避免模糊本主题的公开内容的概念。为了便于理解,相同的元件标有相同的元件符号。
本说明书整体涉及数据存储***,并且更具体地,涉及例如但不限于用于基于错误恢复的数据重定位的数据存储***和方法。读取电平电压被施加到字线以从非易失性存储器中的字线读取数据。将读取电平电压施加到字线可能影响邻近或相邻字线。例如,邻近或相邻字线的电子可以被注入正在被读取的字线的浮栅中,从而,正在被读取的字线的电荷将被改变,以引起读取干扰效应。由于电子数量较大,准确地对字线执行读取操作所需的读取电平电压可以偏移到默认或初始读取电平电压的右侧或大于默认或初始读取电平电压,如图1所示。读取数据的频率越高,成功地读取数据或对其进行解码所需的电压越要比默认或初始读取电平电压大。如果此类数据存储在具有低编程-擦除循环计数的块中,那么数据存储***的性能和效率得以改善。在一些具体实施中,如果块的编程-擦除循环计数满足、或小于或等于阈值编程-擦除循环计数,那么确定块的编程-擦除循环计数为低编程-擦除循环计数。
类似地,如果在长时间段内都不访问存储的数据,那么就会出现关于该数据的保留的问题。例如,当在长时间段内都不访问或读取数据时,存储在字线的浮栅中的电子中的一些(其表示存储的数据值)可能从浮栅逸出,从而导致关于数据保留的问题。电子损失影响在读取数据时将施加的适当的读取电平电压。例如,可以施加较低读取电平电压以成功地从非易失性存储器设备读取数据,如图1所示。当以比某个默认读取电平电压或第一读取电平电压低的电压成功地读取数据时,那么该数据就可能不像其他数据那样频繁地被访问。数据存储***将有益于将此类数据存储在具有高编程-擦除循环计数的块中。在一些具体实施中,如果块的编程-擦除循环计数满足、或大于或等于阈值编程-擦除循环计数,那么确定块的编程-擦除循环计数为高编程-擦除循环计数。
图2是描绘根据本主题的技术的一个或多个方面的数据存储***100的示例性部件的框图。数据存储***100除其他外包括控制器102和非易失性存储器设备阵列108。控制器102包括处理器102、编码/解码引擎104、存储介质106。在一些具体实施中,编码/解码引擎104和存储介质106可以放在控制器102外。如图2所示,数据存储***100可以经由主机接口112连接到主机设备110。
控制器102可以包括若干内部部件(未示出),诸如一个或多个处理器103、只读存储器、非易失性部件接口(例如,用于管理沿着与非易失性存储器设备阵列108的连接的指令和数据传输的多路复用器)、I/O接口、错误校正电路等。控制器102的处理器可以监测和控制数据存储控制器102中的部件的操作。处理器和/或控制器102可以是多核处理器、通用微处理器、微控制器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、可编程逻辑器件(PLD)、控制器、状态机、门控逻辑、分立硬件部件或前述项的组合。在一些具体实施中,控制器102的一个或多个元件可以集成到单个芯片中。在一些具体实施中,元件可以实现在两个或更多个分立部件上。
控制器102可以执行代码或指令以执行本文所述的操作和功能性。例如,控制器102可以执行用于管理请求流和地址映射的操作,并且执行操作以执行计算和生成命令。一个或多个指令序列可以作为固件存储在控制器102内的存储器上。一个或多个指令序列可以是被存储并从存储介质106、非易失性存储器设备阵列108读取或从主机设备110接收(例如,经由主机接口112)的软件。存储介质106和非易失性存储器设备阵列108包括在其上可存储可由控制器102执行的指令/代码的机器或计算机可读介质的示例。机器或计算机可读介质一般可以是指用于向控制器102提供指令的一种或多种任何有形和非暂态介质,包括易失性介质(诸如用于存储介质或用于控制器102内的缓冲器的动态存储器)和非易失性介质两者(诸如电子介质、光学介质和磁性介质)。本文所述的操作和功能性也可以使用逻辑电路(例如硬件和软件/固件的组合)以硬件实现。
在一些方面,存储介质106表示用于暂时存储用于管理数据存储***100的数据和信息的易失性存储器。根据本公开的各方面,存储介质106是随机存取存储器(RAM)诸如双倍数据速率(DDR)RAM。其他类型的RAM也可以用于实现存储介质106。可以使用单个RAM模块或多个RAM模块来实现存储介质106。虽然存储介质106被描绘为与控制器102不同,但是应当理解,在不脱离本公开的范围的情况下,存储介质106可以结合到控制器102中。另选地,存储介质106可以是非易失性存储器,诸如磁盘、闪存存储器、***SSD等。在一些具体实施中,存储介质106可以包括一个或多个缓冲器,诸如缓冲器304,如图3所示。
主机接口112可以耦接到主机设备110,以从主机设备110接收数据和向主机设备发送数据。主机接口112可以包括用于将主机设备110可操作地耦接到控制器102的电气和物理连接两者。主机接口112可以在主机设备110与控制器102之间传送数据、地址和控制信号。以这种方式,控制器102可以响应于来自主机设备110的写入命令而将从主机设备110接收的数据存储在非易失性存储器设备阵列108中,以及响应于来自主机设备110的读取命令而读取存储在非易失性存储器设备阵列108中的数据并经由主机接口112将读取的数据传输到主机设备110。
主机设备110表示可耦接到数据存储***100和将数据存储在数据存储***100中的任何设备。主机设备110可以是计算***,诸如个人计算机、服务器、工作站、膝上型计算机、PDA、智能电话等。另选地,主机设备110可以是电子设备,诸如数字相机、数字音频播放器、数字视频录像机等。
如图2进一步描绘,主机设备110和数据存储***100可以经由总线114彼此通信。总线可以使用合适的接口标准,包括但不限于串行高级技术附件(SATA)、高级技术附件(ATA)、小型计算机***接口(SCSI)、PCI扩展(PCI-X)、光纤信道、串行附加SCSI(SAS)、安全数字(SD)、嵌入式多媒体卡(EMMC)、通用闪存存储装置(UFS)和***部件互连快速(PCIe)。根据一些方面,数据存储***100可以包括引脚(或插口)以与主机设备110上的对应插口(或引脚)配合来建立电气和物理连接。
控制器可以包括内部***总线115。***总线115可以包括控制总线、地址总线和数据总线的组合,并且将控制器102的部件(例如,在其中的处理器和/或存储器)与数据存储***100的其他部件(包括编码/解码引擎104、存储介质106、非易失性存储器设备阵列108和主机接口112)连接。数据通过***总线115在各个部件之间传输。***总线115可以部分地驻留在控制器102的外部和部分地驻留在控制器的内部。
主机设备110和数据存储***100可以经由有线或无线连接彼此通信,并且可以彼此是本地或远程的。根据一个或多个其他方面,数据存储***100(或主机接口112)包括无线收发器,以使主机设备110和数据存储***100彼此无线通信。
控制器102可以从主机设备110的存储接口模块116(例如,设备驱动器)接收数据和/或存储访问命令。由存储接口模块116传送的存储访问命令可以包括由主机设备110发出的读取和写入命令。读取和写入命令可以指定逻辑地址,例如用于访问存储在数据存储***100中的数据的逻辑块地址(LBA)。控制器102可以响应于从存储接口模块116接收的命令而执行非易失性存储器设备阵列108的命令。
非易失性存储器设备阵列108可以包括多个非易失性存储器设备118。非易失性存储器设备118表示用于存储数据的非易失性存储器设备。根据本主题的技术的各方面,非易失性存储器设备118包括例如NAND闪存存储器。每个非易失性存储器设备118可以包括单个非易失性存储器芯片或管芯,或可以包括多个非易失性存储器芯片或管芯。例如,在非易失性存储器设备阵列108内,非易失性存储器设备118中的一些可以包括一个非易失性管芯,而其他非易失性存储器设备可以包括多于一个非易失性管芯。非易失性存储器设备118不限于任何特定容量或配置。例如,物理块的数量、每一物理块的物理页面的数量、每一物理页面的扇区的数量、以及扇区的大小可以在本主题的技术的范围内发生变化。
非易失性存储器设备118可以布置在多个通道中,其中每个通道具有一个或多个非易失性存储器设备118。非易失性存储器设备118可以包括一个或多个非易失性存储器接口(未示出)。每个非易失性存储器接口经由对应通道将控制器102交接到非易失性存储器设备中的一者。通道(未示出)中的每一者可以使用耦接在非易失性存储器接口中的一者与对应非易失性设备之间的一个或多个物理I/O总线来实现。每个通道允许对应非易失性存储器接口将读取、写入和/或擦除命令发送到对应非易失性存储器设备。每个非易失性存储器接口可以包括寄存器(例如,先进先出(FIFO)寄存器),该寄存器针对对应非易失性存储器设备使来自控制器102的读取、写入和/或擦除命令进行排队。尽管如上面所用的术语“通道”是指耦接在非易失性存储器接口与对应非易失性存储器设备之间的总线,但是术语“通道”也可以是指可通过总线(例如,***总线115)寻址的对应非易失性存储器设备。非易失性存储器设备118可以包括存储块。在一些具体实施中,非易失性存储器设备的存储块可以基于某些存储器设备操作和/或过程(诸如无用单元收集、数据重定位等)而逻辑地分组。在一些具体实施中,存储块中的一些可以被逻辑地分组为源存储块,诸如源存储块305,如图3所示。例如,如图4所示,存储块401a、401b、401c、401d可以被统称为源块305。在一些具体实施中,存储块中的一些可以被逻辑地分组为目标存储块,诸如目标存储块306,如图3所示。例如,如图4所示,存储块405、406可以被统称为目标块306。控制器102可以被配置为基于与存储在源存储块中的数据相关联的错误校正数据而将存储在源存储块305中的数据重定位到目标存储块306。参考图5描述数据的重定位的附加细节。
非易失性存储器设备118可以具有标准接口规范。该标准确保来自多个制造商的芯片能够可互换地使用。非易失性存储器设备118的接口可以用于访问内部寄存器120和内部非易失性存储器控制器122。在一些具体实施中,寄存器120可以包括地址、命令和/或数据寄存器,其从存储器单元阵列124内部地检索必要数据并且将必要数据输出到存储器单元阵列124。在一些具体实施中,存储器单元阵列124可以是NAND存储器单元阵列。以举例的方式,存储器单元阵列124可以包括单级单元(SLC)存储器、多级单元(MLC)存储器、三级单元(TLC)存储器、四级单元(QLC)存储器等。在一些方面,非易失性存储器设备阵列108可以包括可在SLC、MLC、TLC或QLC模式中的一个或多个中起作用的一个或多个混合存储器设备。在本主题的技术中还可以想到其他类型的非易失性存储器,诸如3D NAND闪存存储器。
(例如,寄存器120的)数据寄存器可以包括要存储在存储器单元阵列124中的数据,或在从存储器单元阵列124取出之后的数据,并且还可以用于暂时数据存储和/或像缓冲器一样作用。地址寄存器可以存储数据将从中取出到主机设备110的存储器地址或数据将发送和存储到的地址。在一些方面,命令寄存器被包括来控制奇偶校验、中断控制等。在一些方面,内部非易失性存储器控制器122可经由控制寄存器访问以控制非易失性存储器设备118的一般行为。内部非易失性控制器122和/或控制寄存器可以控制停止位的数量、字长、接收器时钟源,并且还可以控制切换寻址模式、寻呼控制、协处理器控制等。
编码/解码引擎104表示可对要存储在中和/或从非易失性存储器设备阵列108读取的码字进行编码和/或解码的一个或多个部件。编码/解码引擎104可以包括编码器和解码器。在一些具体实施中,编码/解码引擎104可以包括一个或多个编码器和/或一个或多个解码器。解码器可以包括硬解码器和软决策ECC解码器。编码/解码引擎104可以对从主机设备110接收的数据进行编码,并且在将解码的数据发送到主机之前对从非易失性存储器设备118读取的码字进行解码。在一些具体实施中,编码/解码引擎104可以包括一个或多个存储器设备和/或用于执行错误校正(例如,使用LDPC、BCH或涡轮码)的一个或多个处理单元。编码/解码引擎104还可以包括软信息模块,该软信息模块确定和/或维护用于编码和解码操作的软度量输入。虽然编码/解码引擎104被描绘为与控制器102不同,但是应当理解,在不脱离本公开的范围的情况下,编码/解码引擎104可以结合到控制器102中。在一些具体实施中,编码/解码引擎104可以被配置为将数据传输或提供到控制器102的一个或多个处理器103。下面参考图5描述编码/解码引擎104的附加细节。
如上所述,数据可以更有效地进行存储,以改善在数据操作的执行期间的数据存储***的效率和性能,从而提高数据存储***的总体效率和性能。控制器102可以被配置为响应于将读取操作或命令以第一读取电平电压传输到非易失性存储器设备118而接收数据。在一些具体实施中,第一读取电平电压可以是默认读取电平电压。在一些具体实施中,默认读取电平电压可以是针对非易失性存储器设备诸如非易失性存储器设备118预先确定的。如上所述,数据可以存储在非易失性存储器设备118中的存储块中,该存储块被称为源存储块,诸如源存储块401a、401b、401c、401d。控制器102可以被配置为确定接收到的数据是否由编码/解码引擎104以第一读取电平电压成功地读取或解码。
如果控制器102确定接收到的数据未由编码/解码引擎104使用第一读取电平电压成功地读取或解码,那么控制器102确定偏移读取电平电压,并且将读取操作传输到非易失性存储器设备以使用偏移读取电平电压从源块读取或检索数据。控制器102可以被配置为确定在使用偏移读取电平电压时接收到的数据是否使用偏移读取电平电压成功地读取或解码,并且如果数据未被成功地读取或解码,那么在一些具体实施中,控制器102可以被配置为继续确定新的偏移读取电平电压,直到数据被成功地读取或解码、或接收到了不可校正错误消息为止。如果数据被成功地读取或解码,那么控制器102可以被配置为使用重定位缓冲器403或404将数据与目标块相关联,如图4所示。重定位缓冲器403可以与目标块405相关联,并且重定位缓冲器404可以与目标块406相关联。控制器102可以被配置为针对要存储在目标块405中的与重定位缓冲器403相关联的数据以及要存储在目标块406中的与重定位缓冲器404相关联的数据向非易失性存储器设备118发出或传输数据写入操作。
如果控制器102确定接收到的数据由编码/解码引擎104使用第一读取电平电压成功地读取或解码,那么控制器可以被配置为确定具有最小量的可用存储空间或最大量的占用程度的目标块并将数据与该目标块相关联。控制器102可以被配置为将数据与该目标块的对应重定位缓冲器相关联,如图4所示。下面参考图5描述数据的重定位的附加细节。
现在转向图5,示出了示出基于错误恢复结果的数据重定位的过程的流程图。出于示出清楚示例目的,参考图2和图3示出和描述的数据存储***100的部件将用于描述基于错误恢复结果的数据重定位的过程。基于错误恢复结果的数据重定位的过程可以响应于数据重定位操作(诸如但不限于数据存储***100的无用单元收集操作)而发起。方法500包括(由数据存储***的控制器,诸如数据存储***100的控制器102)使用第一读取电平电压从非易失性存储器设备118的源块(诸如源块305)接收数据(框701)。可以响应于对源块执行的读取操作而从非易失性存储器设备118的源块305接收数据。可以经由读取操作从源块读取数据。
在一些具体实施中,通过将第一读取电平电压施加到源数据块的字线来执行读取操作。此类第一读取电平电压可以是预先确定的读取电平电压或由于数据存储***的一个或多个操作条件而计算的电压。例如,可以基于非易失性存储器设备的损耗水平(诸如与非易失性存储器设备相关联的编程-擦除循环的数量)而计算此类读取电平电压。在一些具体实施中,可以预先确定多个读取电平电压,并且非易失性存储器设备118的控制器102或控制器122可以被配置为基于非易失性存储器设备118的各种因素而施加预先确定的读取电平电压中的一者。例如,非易失性存储器设备118的控制器102或控制器122可以被配置为基于非易失性存储器设备118的编程-擦除循环计数而施加某个预先确定的读取电平电压。
在一些具体实施中,可以将从非易失性存储器设备的源块读取的数据存储在耦接到编码/解码引擎104的数据存储单元中。可以对从源块读取的数据进行编码。在一些具体实施中,控制器102经由处理器103例如可以被配置为针对由控制器请求的每个读取操作提供标识符。标识符可以是耦接到控制器102或包括在控制器102中的数据存储单元中的缓冲器存储空间的标识符。例如,数据存储单元可以耦接到控制器102的处理器103。
控制器102经由编码/解码引擎104例如尝试使用第一读取电平电压来读取接收到的数据(框502)。编码/解码引擎104可以通过对编码的数据或码字进行解码来尝试读取接收到的数据。编码/解码引擎104可以被配置为使用在从源块读取该数据时施加的第一读取电平电压来对接收到的数据进行解码。控制器102经由编码/解码引擎104可以确定接收到的数据是否使用第一读取电平电压成功地读取或解码(框503)。在一些具体实施中,成功地读取接收到的数据可以包括成功地对接收到的编码的数据进行解码。如果编码/解码引擎104通过施加第一电压来成功地读取数据和/或对其进行解码,那么控制器102经由处理器103确定可存储成功地读取的数据的目标块(诸如目标块405、406)的占用程度(框504)。处理器103可以被配置为基于目标块的可用空间或占用程度而选择用于存储数据的目标块。在一些具体实施中,处理器103可以被配置为基于与指示目标块的可用存储空间或空闲空间相关的数据而确定目标块中的每一者的可用存储空间或占用程度。在一些具体实施中,处理器103可以在数据重定位过程开始时被提供与所有目标块的可用存储空间或占用程度相关的数据,并且可以被配置为在数据存储在目标块中之后维护和/或更新与目标块的可用存储空间或占用程度相关的数据。例如,在数据重定位过程期间发出的每个数据写入操作命令之后,处理器103可以更新存储数据的目标块的可用数据存储空间。
控制器102经由处理器103基于目标块的占用程度而将数据与目标块相关联(框505)。处理器103可以被配置为将数据与具有目标块的最小量的可用存储空间或最大占用程度的目标块相关联。处理器103可以通过将数据的标识符(诸如数据的缓冲器标识符)与重定位缓冲器(诸如重定位缓冲器403、404)相关联来将数据与目标块相关联。在一些具体实施中,处理器103可以被配置为将数据的缓冲器标识符存储在与目标块相关联的重定位缓冲器中。例如,处理器103可以确定目标块306具有最大占用程度或最小可用存储空间并通过将缓冲器标识符存储在重定位缓冲器404、即与目标块306相关联的重定位缓冲器中来将数据与目标块406相关联。控制器102经由处理器103使数据存储在相关联的目标块中(框512)。例如,处理器103可以被配置为向非易失性存储器设备118发出或传输写入数据操作或命令,并且将数据传输到非易失性存储器设备118以存储在目标块中。处理器103可以被配置为在向非易失性存储器设备118发出或传输写入数据操作或命令时指定目标块。下面描述框512的附加细节。通过以最小量的可用存储空间或占用程度关联或选择目标块,控制器102经由处理器103使数据存储在该目标块中,并且致使该目标块被填充和关闭,从而减少数据存储***100中的开放的存储块的数量。减少开放的存储块的数量降低存储的数据中发生错误的概率,并且改善与存储的数据相关联的误码率和/或非易失性存储器的误码率。改善误码率改善了数据存储***在执行各种数据操作时的性能和效率。例如,改善误码率可以减少影响检索到的数据的错误的数量,从而减少成功地读取数据和/或对其进行解码所需的处理器循环的数量并改善数据存储***的性能和效率。
返回到框503,如果控制器102经由编码/解码引擎104未能通过施加第一电压来成功地读取数据或对其进行解码,那么控制器102经由编码/解码引擎104确定偏移读取电平电压(框506)。偏移读取电平电压是可大于或小于第一读取电平电压的读取电平电压。在一些具体实施中,编码/解码引擎104可以被配置为基于电压偏移模式而确定偏移读取电平电压。在一些实施方式中,电压偏移模式可以是偏移读取电平电压列表和/或偏置量列表。编码/解码引擎104可以被配置为维护和/或跟踪一系列或多个偏移读取电平电压。例如,编码/解码引擎104可以维护和/或更新指示读取电平电压被偏移的次数的计数器。编码/解码引擎104可以被配置为基于这样的计数器而确定新的偏移读取电平电压和/或用于使读取电平电压(例如,第一读取电平电压)偏移的电压量。编码/解码引擎104可以被配置为利用读取电平电压与计数器值之间的映射、或偏置或偏移量与计数器值之间的映射来确定新的偏移读取电平电压和/或使读取电平电压偏移的电压量。
控制器102可以被配置为使用偏移读取电平电压发出读取操作命令。例如,编码/解码引擎104可以首先使读取电平电压增加了阈值量,并且数据可以使用增加的读取电平电压从源块重新读取。类似地,编码/解码引擎104可以首先使读取电平电压降低了阈值量,并且数据可以使用降低的读取电平电压从源块重新读取。响应于使用偏移读取电平电压执行的读取操作,控制器从使用偏移读取电平电压检索或读取的源块接收数据(框507)。控制器102经由编码/解码引擎104例如可以被配置为使用偏移读取电平电压来读取接收到的数据或成功地对其进行解码(框508)。
控制器102经由编码/解码引擎104例如使用偏移读取电平电压来确定数据是否被成功地读取或解码(框509)。如果控制器102经由编码/解码引擎104确定接收到的数据未能使用偏移读取电平电压来成功地读取或解码(在框509处的“否”),那么过程进行到框510以确定是否所有可能读取电平电压已经都施加以读取接收到的数据或对其进行解码。在一些具体实施中,控制器102可以被配置为将预先确定的数量的读取电平电压施加于接收到的数据。在一些具体实施中,控制器102可以被配置为生成和/或更新指示施加到接收到的数据的读取电平电压的数量的计数器值,并且通过确定施加到接收到的数据的读取电平电压的数量(其由计数器指示)是否满足预先确定的数量的读取电平电压来确定是否所有可能读取电平电压已经都施加到接收到的数据。在一些具体实施中,控制器102可以被配置为施加一组或一定范围的读取电平电压,例如在1.2伏与1.5伏之间的读取电平电压,并且基于在一组或一定范围的读取电平电压内的每个读取电平电压是否被施加以读取接收到的数据或对其进行解码而确定是否所有可能读取电平电压已经都施加以读取接收到的数据或对其进行解码。在一些具体实施中,控制器102可以被配置为存储被施加来读取存储单元中的接收到的数据或对其进行解码的每个读取电平电压,并且基于存储在存储单元中的读取电平电压和在一组或一定范围的读取电平电压内的读取电平电压而确定在一组或一定范围的读取电平电压内的每个读取电平电压是否都被施加。例如,控制器102可以被配置为将施加和/或存储在存储单元中的读取电平电压与在一组或一定范围的读取电平电压中的读取电平电压进行比较,并且如果在一组或一定范围的读取电平电压中的每个读取电平电压施加和/或存储在存储单元中,那么确定所有可能读取电平电压都被施加。
如果控制器102经由编码/解码引擎104确定不是所有可能读取电平电压被施加(框510处的“否”),那么该过程进行到框506,以确定新的偏移读取电平电压。在编码/解码引擎104被配置为基于电压偏移模式而确定偏移读取电平电压的具体实施中,可以基于电压偏移模式而确定新的偏移读取电平电压。在编码/解码引擎104被配置为基于计数器而确定偏移读取电平电压的具体实施中,计数器指示读取电平电压被偏移的次数。如果控制器102经由编码/解码引擎104确定所有可能读取电平电压都已经被施加(框510处的“是”),那么该过程终止。
如果控制器102经由编码/解码引擎104使用偏移读取电平电压成功地读取接收到的数据或对其进行解码(框509处的“是”),那么控制器102经由处理器103确定用于成功地读取数据和/或对其进行解码的偏移读取电平电压是大于还是小于第一读取电平电压(框511)。控制器102经由处理器103将接收到的数据或解码的数据与目标块(诸如目标块405、406)相关联(框512)。如果控制器102经由处理器103确定偏移读取电平电压大于第一读取电平电压,那么控制器102经由处理器103可以被配置为将数据与具有低于或等于某个阈值P/E计数的P/E循环计数的目标块相关联。如果控制器102经由处理器103确定偏移读取电平电压小于第一读取电平电压,那么控制器102经由处理器103可以被配置为将数据与具有高于或等于某个阈值P/E计数的P/E循环计数的目标块相关联。控制器102经由处理器103可以被配置为通过将数据与重定位缓冲器诸如重定位缓冲器403、404关联来将数据与目标块相关联。
在一些实施方式中,控制器102经由处理器103可以被配置为通过将接收到的数据的标识符与同目标块相关联的重定位缓冲器关联来将接收到的数据与目标块相关联。例如,如图4所示,重定位缓冲器403与目标块405相关联,并且重定位缓冲器404与目标块406相关联。控制器102可以被配置为通过将接收到的数据的标识符存储在重定位缓冲器中的一者中来将接收到的数据或接收到的数据的标识符与重定位缓冲器相关联。例如,如果使用大于第一读取电平电压的偏移读取电平电压成功地读取接收到的数据和/或对其进行解码,那么控制器102经由处理器103可以将接收到的数据和/或接收到的数据的标识符与同具有低P/E循环计数的目标块相关联的重定位缓冲器(诸如与目标块406相关联的重定位缓冲器404)相关联。类似地,如果使用小于第一读取电平电压的偏移读取电平电压成功地读取接收到的数据和/或对其进行解码,那么控制器经由处理器可以将接收到的数据和/或接收到的数据的标识符与同具有高P/E循环计数的目标块相关联的重定位缓冲器(诸如与目标块405相关联的重定位缓冲器403)相关联。
控制器102经由处理器103使数据存储在相关联的目标块中(框513)。控制器102经由处理器103可以被配置为通过向包括目标块的非易失性存储器发出写入数据操作或命令来使与目标块相关联的接收到的数据存储在目标块中。控制器102经由处理器103可以被配置为使与重定位缓冲器相关联的接收到的数据存储在相关联的目标块中。控制器102经由处理器103可以被配置为通过向包括目标块的非易失性存储器发出写入数据操作或命令来使与重定位缓冲器相关联的接收到的数据存储在相关联的目标块中。在一些实施方式中,控制器102经由处理器103可以被配置为在接收到的数据的量或与重定位缓冲器相关联的数据量满足阈值数据量的情况下使接收到的数据存储在目标块中。例如,如果与重定位缓冲器相关联的数据量满足96KB的数据或数据的物理页面,那么控制器经由处理器可以通过将写入数据操作发出或传输到非易失性存储器设备来使与缓冲器相关联的数据存储在目标块中。
图5中所示的流程图的框已经被描述为顺序发生。本主题的技术不限于所示的过程的所述的顺序执行。可以在所示的过程中与其他块并行地执行块中的一者或多者。所示的过程的其他变化在本主题的技术的范围内。
在一个或多个实施方式中,源区可以是指源块。在一个或多个示例中,源块可以是指一个或多个源块。源块可以被称为源存储块。在一个或多个实施方式中,目标区可以是指目标块。在一个或多个示例中,目标块可以是指一个或多个目标块。目标块可以被称为目标存储块。在一个或多个具体实施中,数据保持恢复可以是指通过将读取电平电压偏移或调整为小于中心读取电平电压或默认读取电平电压或预先确定的读取电平电压来恢复数据的过程。在一个或多个实施方式中,干扰错误恢复可以是指通过将读取电平电压偏移或调整为大于中心读取电平电压或默认读取电平电压或预先确定的读取电平电压来恢复数据的过程。
下面描述本公开的各方面的各种示例。这些被提供作为示例,而不限制本主题的技术。
在一个或多个实施方式中,数据存储***可以包括:非易失性存储器设备,该非易失性存储器设备包括源区和目标区,其中目标区包括第一目标块和第二目标块,其中第二目标块与第一目标块不同;和控制器。控制器被配置为使用第一读取电平电压读取源区中的第一数据。控制器被配置为使用与第一读取电平电压不同的第二读取电平电压读取源区中的第二数据。控制器被配置为基于第一读取电平电压和第二读取电平电压而将第一数据和第二数据中的每一者与第一目标块和第二目标块中的相应一者相关联。控制器被配置为使第一数据和第二数据中的每一者存储在第一目标块和第二目标块中的相关联的一者中。
在一个或多个具体实施中,计算机实现的方法包括使用第一读取电平电压读取非易失性存储器设备的源区中的第一数据。该方法包括使用与第一读取电平电压不同的第二读取电平电压读取源区中的第二数据。该方法包括将来自源区的第一数据存储到非易失性存储器设备的与第一读取电平电压相关联的第一目标块,其中第一目标块在非易失性存储器设备的目标区中。该方法包括将来自源区的第二数据存储到非易失性存储器设备的与第二读取电平电压相关联的第二目标块,其中第二目标块在非易失性存储器设备的目标区中。
在一个或多个具体实施中,数据存储***可以包括:非易失性存储器设备,该非易失性存储器设备包括源区和目标区,其中目标区包括第一目标块和第二目标块,其中第二目标块与第一目标块不同。该数据存储***包括用于使用第一读取电平电压读取源区中的第一数据的装置。该数据存储***包括用于使用与第一读取电平电压不同的第二读取电平电压读取源区中的第二数据的装置。该数据存储***包括用于基于所述第一读取电平电压和所述第二读取电平电压而将所述第一数据和所述第二数据从所述源区重定位到所述第一目标块或所述第二目标块的装置。
在一个或多个具体实施中,非暂态机器可读介质包括在其上的机器可执行指令,该机器可执行指令在由处理器执行时,执行方法。该方法包括使用第一读取电平电压读取非易失性存储器设备的源区中的第一数据。该方法包括使用与第一读取电平电压不同的第二读取电平电压读取源区中的第二数据。该方法包括将来自源区的第一数据存储到非易失性存储器设备的与第一读取电平电压相关联的第一目标块,其中第一目标块在非易失性存储器设备的目标区中。该方法包括将来自源区的第二数据存储到非易失性存储器设备的与第二读取电平电压相关联的第二目标块,其中第二目标块在非易失性存储器设备的目标区中。
应当理解,本主题的技术的其他配置从本文的详细描述中将对本领域的技术人员是显而易见的,其中以图示的方式示出和描述本主题的技术的各种配置。本主题的技术能够具有其他和不同配置,并且其若干细节能够在各种其他方面进行修改,所有这些都不脱离本主题的技术的范围。因此,附图和详细描述本质上被认为是例示性的而不是限制性的。
示例性过程的上述特征中的许多特征以及相关特征和应用可以被实施为被指定作为记录在处理器可读存储介质(也被称为计算机可读介质)上的指令集的软件或固件过程。当这些指令由一个或多个处理单元(例如,一个或多个处理器、处理器的核心或其他处理单元)执行时,使处理单元执行指令中指示的动作。处理器可读介质的示例包括但不限于易失性存储器、非易失性存储器、以及其他形式的介质诸如磁性介质、光学介质和电子介质。处理器可读介质不包括无线或通过有线连接传送的载波和电子信号。
术语“软件”在适当时旨在包括驻留在存储器中的固件或存储在存储器中的应用程序,其可以被读入工作存储器中以供处理器处理。而且,在一些实施方式中,本主题的公开内容的多个软件方面可以被实现为较大程序的子部分,同时保留本主题的公开内容的不同的软件方面。在一些具体实施中,多个软件方面也可以被实现为单独程序。最后,一起实现这里描述的软件方面的单独程序的任何组合都在本主题的公开内容的范围内。在一些实施方式中,当被安装以在一个或多个电子***上操作时,软件程序限定执行和进行软件程序的操作的一个或多个特定机器实施方式。
计算机程序(也被称为程序、软件、软件应用程序、脚本或代码)可以以任何形式的编程语言(包括编译或解释语言、声明或过程语言)编写,并且其可以以任何形式(包括作为独立程序、或作为模块、部件、子例程、对象或适用于计算环境中的其他单元)来部署。计算机程序可以但不必对应于文件***中的文件。程序可以存储在保存其他程序或数据(例如,存储在标记语言文档中的一个或多个脚本)的文件的一部分中,存储在专用于所考虑的程序的单个文件中,或存储在多个协调文件(例如,存储一个或多个模块、子程序、或代码的部分的文件)中。
应当理解,本文所述的例示性框、模块、元件、部件、方法和算法可以被实现为电子硬件、计算机软件或两者的组合。为了例证硬件和软件的这种可互换性,上面已经大体上就它们的功能性方面而描述了各个例示性框、模块、元件、部件、方法和算法。这样的功能性是实现为硬件还是软件要取决于特定应用和施加到整个***的设计约束。技术人员可以针对每个特定应用以不同的方式实现所述的功能性。在不脱离本主题的公开内容的范围的情况下,各个部件和框可以全都不同地布置(例如,以不同的次序布置,或以不同的方式划分)。
应当理解,所公开的过程中的步骤的具体的次序或分级被呈现为一些示例性方法的例证。基于设计偏好和/或其他考虑,应当理解,过程中的步骤的具体的次序或分级可以进行重新布置。例如,在一些具体实施中,可以同时地执行步骤中的一些。因此,所附方法权利要求以样本次序来呈现各个步骤的各要素,并且不旨在受到所呈现的具体的次序或分级限制。
先前描述被提供来使本领域的技术人员能够实践本文所述的各个方面。先前描述提供本主题的公开内容的各个示例,并且本主题的公开内容不限于这些示例。这些方面的各种修改对本领域的技术人员是显而易见的,并且本文限定的一般原理可以应用于其他方面。因此,权利要求并非旨在被限制于本文所示的各方面,而是将被赋予与语言权利要求一致的全部范围,其中除非如此特别说明,否则以单数指称某个元件并非旨在意指“一个且仅一个”,而是意指“一个或多个”。除非另外特别说明,否则术语“一些”是指一个或多个。男性化的代词(例如,他的)包括女性化的代词和中性代词(例如,她的和它的),反之亦然。标题和副标题(若有的话)仅为了方便才使用,而不限制本主题的公开内容。
谓词“被配置为”、“可操作地”和“被编程为”并非暗示对象的任何特定有形或无形修改,而是旨在进行可互换地使用。例如,被配置为监测和控制操作或部件的处理器还可以意指处理器被编程为监测和控制操作或处理器可操作以监测和控制操作。同样,被配置为执行代码的处理器可以被理解为被编程为执行代码或可操作地执行代码的处理器。
短语“与…通信”和“耦接”意指与…直接通信或经由本文提及或未提及的一个或多个部件(例如,存储器读卡器)间接通信。
诸如“方面”的短语并非暗示此类方面对本主题的公开内容是必要的,或此类方面适用于本主题的公开内容的所有配置。与方面有关的公开内容可以适用于所有配置、或一个或多个配置。方面可以提供一个或多个示例。诸如方面的短语可以是指一个或多个方面,反之亦然。诸如“实施方式”的短语并非暗示此类实施方式对本主题的公开内容是必要的,或此类实施方式适用于本主题的公开内容的所有配置。与实施方式有关的公开内容可以适用于所有方面、或一个或多个方面。实施方式可以提供一个或多个示例。诸如“实施方式”的短语可以是指一个或多个实施方式,反之亦然。诸如“配置”的短语并非暗示此类配置对本主题的公开内容是必要的,或此类配置适用于本主题的公开内容的所有配置。与配置有关的公开内容可以适用于所有配置、或一个或多个配置。配置可以提供一个或多个示例。诸如“配置”的短语可以是指一个或多个配置,反之亦然。
字词“示例性”用于意指“用作示例或例证”。本文描述为“示例性”的任何方面或设计不必被理解为比其他方面或设计更优选或更有利。

Claims (20)

1.一种数据存储***,包括:
非易失性存储器设备,所述非易失性存储器设备包括源区和目标区,其中所述目标区包括第一目标块和第二目标块,其中所述第二目标块与所述第一目标块不同;和
控制器,其中所述控制器被配置为:
使用第一读取电平电压读取所述源区中的第一数据;
使用与所述第一读取电平电压不同的第二读取电平电压读取所述源区中的第二数据;
基于所述第一读取电平电压和所述第二读取电平电压而将所述第一数据和所述第二数据中的每一者与所述第一目标块和所述第二目标块中的相应一者相关联;并且
使所述第一数据和所述第二数据中的每一者存储在所述第一目标块和所述第二目标块中的所述相关联的一者中。
2.根据权利要求1所述的数据存储***,其中所述第一目标块具有大于所述第二目标块的编程-擦除循环计数的编程-擦除循环计数。
3.根据权利要求2所述的数据存储***,其中所述第一读取电平电压小于所述第二读取电平电压,并且其中所述第一读取电平电压和所述第二读取电平电压中的每一者与错误恢复相关联。
4.根据权利要求1所述的数据存储***,
其中所述控制器被配置为:
使用与所述第一读取电平电压和所述第二读取电平电压中的每一者不同的第三读取电平电压读取所述源区中的第三数据;
确定与所述第一目标块相关联的第一缓冲器的占用程度;
确定与所述第二目标块相关联的第二缓冲器的占用程度;以及
基于所述确定的占用程度而将所述第三数据从所述源区重定位到所述第一缓冲器和所述第二缓冲器中的一者。
5.根据权利要求4所述的数据存储***,其中所述第三读取电平电压小于所述第二读取电平电压且大于所述第一读取电平电压。
6.根据权利要求4所述的数据存储***,
其中所述非易失性存储器包括与所述第一目标块相关联的第一缓冲器和与所述第二目标块相关联的第二缓冲器,并且
其中所述控制器被配置为将所述第三数据从所述源区重定位到所述第一缓冲器和所述第二缓冲器中的一者,其中所述第一缓冲器和所述第二缓冲器中的一者具有比所述第一缓冲器和所述第二缓冲器中的另一者更少量的未占用的数据空间。
7.根据权利要求1所述的数据存储***,
其中所述源区包括逻辑页面,并且其中所述逻辑页面中的一者包括多个码字,
其中所述控制器被配置为:
使用第三读取电平电压读取所述多个码字中的第一码字;
使用与所述第三读取电平电压不同的第四读取电平电压读取所述多个码字中的第二码字;以及
基于第一缓冲器和第二缓冲器的占用程度而将所述多个码字中的所述第一码字和所述第二码字重定位到所述第一目标块和所述第二目标块中的同一者。
8.根据权利要求1所述的数据存储***,
其中所述第一数据包括第一码字,
其中所述控制器被配置为读取第一数据包括所述控制器被配置为:
施加第三读取电平电压以对所述第一码字执行第一解码操作,其中所述第三读取电平电压小于所述第二读取电平电压且大于所述第一读取电平电压;
确定未成功地使用所述第三读取电平电压对所述第一码字进行解码;并且
响应于确定未成功地对所述第一码字进行解码:
确定所述第一读取电平电压;
施加所述第一读取电平电压以对所述第一码字执行第二解码操作;并且
使用所述第一读取电平电压成功地对所述第一码字进行解码。
9.一种用于数据存储***的计算机实现的方法,包括:
使用第一读取电平电压读取非易失性存储器设备的源区中的第一数据;
使用与所述第一读取电平电压不同的第二读取电平电压读取所述源区中的第二数据;
将来自所述源区的所述第一数据存储到所述非易失性存储器设备的与所述第一读取电平电压相关联的第一目标块,其中所述第一目标块在所述非易失性存储器设备的目标区中;以及
将来自所述源区的所述第二数据存储到所述非易失性存储器设备的与所述第二读取电平电压相关联的第二目标块,其中所述第二目标块在所述非易失性存储器设备的所述目标区中。
10.根据权利要求9所述的计算机实现的方法,其中所述第一目标块的编程-擦除循环计数大于所述第二目标块的编程-擦除循环计数。
11.根据权利要求10所述的计算机实现的方法,其中所述第一读取电平电压小于所述第二读取电平电压,其中所述第一读取电平电压与数据保持错误恢复相关联,并且其中所述第二读取电平电压与读取干扰错误恢复相关联。
12.根据权利要求9所述的计算机实现的方法,还包括:
使用与所述第一读取电平电压和所述第二读取电平电压中的每一者不同的第三读取电平电压读取所述源区中的第三数据;以及
基于第一缓冲器和第二缓冲器的占用程度而将所述第三数据从所述源区重定位到所述第一缓冲器或所述第二缓冲器,其中所述第一缓冲器与所述第一目标块相关联,并且所述第二缓冲器与所述第二目标块相关联。
13.根据权利要求12所述的计算机实现的方法,其中所述第三读取电平电压小于所述第二读取电平电压并大于所述第一读取电平电压。
14.根据权利要求12所述的计算机实现的方法,还包括:
将所述第三数据从所述源区重定位到第一缓冲器和第二缓冲器中的一者,其中所述第一缓冲器和所述第二缓冲器中的一者具有比所述第一缓冲器和所述第二缓冲器中的另一者更少量的未占用的数据空间,
其中所述第一缓冲器与所述第一目标块相关联,并且所述第二缓冲器与所述第二目标块相关联,并且
其中所述非易失性存储器设备包括所述第一缓冲器和所述第二缓冲器。
15.根据权利要求9所述的计算机实现的方法,还包括:
使用第三读取电平电压读取多个码字中的第一码字,其中所述多个码字包括在所述源区中包括的逻辑页面中的一者中;
使用与所述第三读取电平电压不同的第四读取电平电压读取所述多个码字中的第二码字;以及
基于与所述第一目标块和所述第二目标块相关联的第一缓冲器和第二缓冲器的占用程度而将所述多个码字中的所述第一码字和所述第二码字存储到所述第一目标块和所述第二目标块中的同一者。
16.根据权利要求15所述的计算机实现的方法,其中所述第一数据包括第一码字,并且其中读取所述第一数据包括:
确定未成功地使用第三读取电平电压对所述第一码字进行解码;以及
使用所述第一读取电平电压成功地对所述第一码字进行解码,其中所述第一读取电平电压小于所述第三读取电平电压。
17.一种数据存储***,包括:
非易失性存储器设备,所述非易失性存储器设备包括源区和目标区,其中所述目标区包括第一目标块和第二目标块,其中所述第二目标块与所述第一目标块不同;
用于使用第一读取电平电压读取所述源区中的第一数据的装置;
用于使用与所述第一读取电平电压不同的第二读取电平电压读取所述源区中的第二数据的装置;以及
用于基于所述第一读取电平电压和所述第二读取电平电压而将所述第一数据和所述第二数据从所述源区重定位到所述第一目标块或所述第二目标块的装置。
18.根据权利要求17所述的数据存储***,其中所述第一目标块具有大于所述第二目标块的编程-擦除循环计数的编程-擦除循环计数。
19.根据权利要求18所述的数据存储***,其中所述第一读取电平电压和所述第二读取电平电压基于错误恢复。
20.根据权利要求17所述的数据存储***,还包括:
用于使用与所述第一读取电平电压和所述第二读取电平电压中的每一者不同的第三读取电平电压读取所述源区中的第三数据的装置;以及
用于基于第一缓冲器和第二缓冲器的占用程度而将所述第三数据从所述源区重定位到所述第一缓冲器或所述第二缓冲器的装置,其中所述第一缓冲器与所述第一目标块相关联,并且所述第二缓冲器与所述第二目标块相关联。
CN201910494638.8A 2018-09-26 2019-06-10 用于改进的数据重定位的数据存储***和方法 Active CN110955385B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/143,242 2018-09-26
US16/143,242 US11086529B2 (en) 2018-09-26 2018-09-26 Data storage systems and methods for improved data relocation based on read-level voltages associated with error recovery

Publications (2)

Publication Number Publication Date
CN110955385A true CN110955385A (zh) 2020-04-03
CN110955385B CN110955385B (zh) 2023-09-19

Family

ID=69725114

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910494638.8A Active CN110955385B (zh) 2018-09-26 2019-06-10 用于改进的数据重定位的数据存储***和方法

Country Status (3)

Country Link
US (2) US11086529B2 (zh)
CN (1) CN110955385B (zh)
DE (1) DE102019116520A1 (zh)

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10877898B2 (en) 2017-11-16 2020-12-29 Alibaba Group Holding Limited Method and system for enhancing flash translation layer mapping flexibility for performance and lifespan improvements
US10496548B2 (en) 2018-02-07 2019-12-03 Alibaba Group Holding Limited Method and system for user-space storage I/O stack with user-space flash translation layer
WO2019222958A1 (en) 2018-05-24 2019-11-28 Alibaba Group Holding Limited System and method for flash storage management using multiple open page stripes
US11816043B2 (en) 2018-06-25 2023-11-14 Alibaba Group Holding Limited System and method for managing resources of a storage device and quantifying the cost of I/O requests
US10921992B2 (en) 2018-06-25 2021-02-16 Alibaba Group Holding Limited Method and system for data placement in a hard disk drive based on access frequency for improved IOPS and utilization efficiency
US10996886B2 (en) 2018-08-02 2021-05-04 Alibaba Group Holding Limited Method and system for facilitating atomicity and latency assurance on variable sized I/O
US11327929B2 (en) 2018-09-17 2022-05-10 Alibaba Group Holding Limited Method and system for reduced data movement compression using in-storage computing and a customized file system
US10977122B2 (en) 2018-12-31 2021-04-13 Alibaba Group Holding Limited System and method for facilitating differentiated error correction in high-density flash devices
US11061735B2 (en) 2019-01-02 2021-07-13 Alibaba Group Holding Limited System and method for offloading computation to storage nodes in distributed system
US11132291B2 (en) 2019-01-04 2021-09-28 Alibaba Group Holding Limited System and method of FPGA-executed flash translation layer in multiple solid state drives
US11200337B2 (en) 2019-02-11 2021-12-14 Alibaba Group Holding Limited System and method for user data isolation
US10970212B2 (en) 2019-02-15 2021-04-06 Alibaba Group Holding Limited Method and system for facilitating a distributed storage system with a total cost of ownership reduction for multiple available zones
US11061834B2 (en) 2019-02-26 2021-07-13 Alibaba Group Holding Limited Method and system for facilitating an improved storage system by decoupling the controller from the storage medium
US10891065B2 (en) * 2019-04-01 2021-01-12 Alibaba Group Holding Limited Method and system for online conversion of bad blocks for improvement of performance and longevity in a solid state drive
US10922234B2 (en) 2019-04-11 2021-02-16 Alibaba Group Holding Limited Method and system for online recovery of logical-to-physical mapping table affected by noise sources in a solid state drive
US10908960B2 (en) 2019-04-16 2021-02-02 Alibaba Group Holding Limited Resource allocation based on comprehensive I/O monitoring in a distributed storage system
US11169873B2 (en) 2019-05-21 2021-11-09 Alibaba Group Holding Limited Method and system for extending lifespan and enhancing throughput in a high-density solid state drive
US10860223B1 (en) 2019-07-18 2020-12-08 Alibaba Group Holding Limited Method and system for enhancing a distributed storage system by decoupling computation and network tasks
US11074124B2 (en) 2019-07-23 2021-07-27 Alibaba Group Holding Limited Method and system for enhancing throughput of big data analysis in a NAND-based read source storage
US11126561B2 (en) 2019-10-01 2021-09-21 Alibaba Group Holding Limited Method and system for organizing NAND blocks and placing data to facilitate high-throughput for random writes in a solid state drive
US11617282B2 (en) 2019-10-01 2023-03-28 Alibaba Group Holding Limited System and method for reshaping power budget of cabinet to facilitate improved deployment density of servers
US11449455B2 (en) 2020-01-15 2022-09-20 Alibaba Group Holding Limited Method and system for facilitating a high-capacity object storage system with configuration agility and mixed deployment flexibility
US11150986B2 (en) 2020-02-26 2021-10-19 Alibaba Group Holding Limited Efficient compaction on log-structured distributed file system using erasure coding for resource consumption reduction
US11200114B2 (en) 2020-03-17 2021-12-14 Alibaba Group Holding Limited System and method for facilitating elastic error correction code in memory
US11385833B2 (en) 2020-04-20 2022-07-12 Alibaba Group Holding Limited Method and system for facilitating a light-weight garbage collection with a reduced utilization of resources
US11281575B2 (en) 2020-05-11 2022-03-22 Alibaba Group Holding Limited Method and system for facilitating data placement and control of physical addresses with multi-queue I/O blocks
US11461262B2 (en) 2020-05-13 2022-10-04 Alibaba Group Holding Limited Method and system for facilitating a converged computation and storage node in a distributed storage system
US11494115B2 (en) 2020-05-13 2022-11-08 Alibaba Group Holding Limited System method for facilitating memory media as file storage device based on real-time hashing by performing integrity check with a cyclical redundancy check (CRC)
US11218165B2 (en) 2020-05-15 2022-01-04 Alibaba Group Holding Limited Memory-mapped two-dimensional error correction code for multi-bit error tolerance in DRAM
US11507499B2 (en) 2020-05-19 2022-11-22 Alibaba Group Holding Limited System and method for facilitating mitigation of read/write amplification in data compression
US11556277B2 (en) 2020-05-19 2023-01-17 Alibaba Group Holding Limited System and method for facilitating improved performance in ordering key-value storage with input/output stack simplification
US11263132B2 (en) 2020-06-11 2022-03-01 Alibaba Group Holding Limited Method and system for facilitating log-structure data organization
US11354200B2 (en) 2020-06-17 2022-06-07 Alibaba Group Holding Limited Method and system for facilitating data recovery and version rollback in a storage device
US11422931B2 (en) 2020-06-17 2022-08-23 Alibaba Group Holding Limited Method and system for facilitating a physically isolated storage unit for multi-tenancy virtualization
US11354233B2 (en) 2020-07-27 2022-06-07 Alibaba Group Holding Limited Method and system for facilitating fast crash recovery in a storage device
US11372774B2 (en) 2020-08-24 2022-06-28 Alibaba Group Holding Limited Method and system for a solid state drive with on-chip memory integration
US11675509B2 (en) * 2020-10-29 2023-06-13 Micron Technology, Inc. Multiple open block families supporting multiple cursors of a memory device
US11487465B2 (en) 2020-12-11 2022-11-01 Alibaba Group Holding Limited Method and system for a local storage engine collaborating with a solid state drive controller
US11734115B2 (en) 2020-12-28 2023-08-22 Alibaba Group Holding Limited Method and system for facilitating write latency reduction in a queue depth of one scenario
US11416365B2 (en) 2020-12-30 2022-08-16 Alibaba Group Holding Limited Method and system for open NAND block detection and correction in an open-channel SSD
US11726699B2 (en) 2021-03-30 2023-08-15 Alibaba Singapore Holding Private Limited Method and system for facilitating multi-stream sequential read performance improvement with reduced read amplification
US11461173B1 (en) 2021-04-21 2022-10-04 Alibaba Singapore Holding Private Limited Method and system for facilitating efficient data compression based on error correction code and reorganization of data placement
US11476874B1 (en) 2021-05-14 2022-10-18 Alibaba Singapore Holding Private Limited Method and system for facilitating a storage server with hybrid memory for journaling and data storage
WO2023167698A1 (en) * 2022-03-03 2023-09-07 Western Digital Technologies, Inc. Data relocation with protection for open relocation destination blocks

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110066899A1 (en) * 2009-09-17 2011-03-17 Samsung Electronics Co., Ltd. Nonvolatile memory system and related method of performing erase refresh operation
US20140215133A1 (en) * 2013-01-29 2014-07-31 Samsung Electronics Co., Ltd. Memory system and related block management method
US9450610B1 (en) * 2013-03-15 2016-09-20 Microsemi Storage Solutions (Us), Inc. High quality log likelihood ratios determined using two-index look-up table
CN107943712A (zh) * 2016-10-12 2018-04-20 三星电子株式会社 控制存储器设备的回收的方法、存储设备及其操作方法

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7859932B2 (en) * 2008-12-18 2010-12-28 Sandisk Corporation Data refresh for non-volatile storage
KR101578518B1 (ko) * 2009-07-07 2015-12-17 삼성전자주식회사 불휘발성 메모리 장치의 읽기 방법 및 그것을 포함하는 메모리 시스템
US8363478B1 (en) * 2010-02-17 2013-01-29 Marvell International Ltd. Group based read reference voltage management in flash memory
US9183134B2 (en) * 2010-04-22 2015-11-10 Seagate Technology Llc Data segregation in a storage device
KR20120001405A (ko) * 2010-06-29 2012-01-04 삼성전자주식회사 메모리 시스템 및 그것의 웨어 레벨링 방법
DE102011107193A1 (de) * 2011-07-13 2013-01-17 Epcos Ag Elektrische Vorrichtung
KR20130061967A (ko) * 2011-12-02 2013-06-12 삼성전자주식회사 메모리 시스템 및 그것의 웨어 레벨링 방법
US8942100B2 (en) * 2012-09-18 2015-01-27 Cisco Technology, Inc. Real time and high resolution buffer occupancy monitoring and recording
US9218881B2 (en) * 2012-10-23 2015-12-22 Sandisk Technologies Inc. Flash memory blocks with extended data retention
US9870830B1 (en) * 2013-03-14 2018-01-16 Sandisk Technologies Llc Optimal multilevel sensing for reading data from a storage medium
US9633740B1 (en) * 2016-02-11 2017-04-25 Seagate Technology Llc Read retry operations where likelihood value assignments change sign at different read voltages for each read retry
KR102252378B1 (ko) * 2014-10-29 2021-05-14 삼성전자주식회사 메모리 장치, 메모리 시스템, 상기 메모리 장치의 동작 방법 및 상기 메모리 시스템의 동작 방법
US9536601B2 (en) * 2014-11-05 2017-01-03 Macronix International Co., Ltd. Threshold voltage grouping of memory cells in same threshold voltage range
US9720754B2 (en) * 2014-11-20 2017-08-01 Western Digital Technologies, Inc. Read level grouping for increased flash performance
US9620226B1 (en) * 2015-10-30 2017-04-11 Western Digital Technologies, Inc. Data retention charge loss and read disturb compensation in solid-state data storage systems
US9846544B1 (en) * 2015-12-30 2017-12-19 EMC IP Holding Company LLC Managing storage space in storage systems
US9842022B2 (en) * 2016-01-20 2017-12-12 Intel Corporation Technologies for reducing latency in read operations
US10168917B2 (en) * 2016-04-05 2019-01-01 International Business Machines Corporation Hotness based data storage for facilitating garbage collection
US10290353B2 (en) 2016-09-06 2019-05-14 Western Digital Technologies, Inc. Error mitigation for 3D NAND flash memory
US10656847B2 (en) * 2018-05-10 2020-05-19 International Business Machines Corporation Mitigating asymmetric transient errors in non-volatile memory by proactive data relocation

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110066899A1 (en) * 2009-09-17 2011-03-17 Samsung Electronics Co., Ltd. Nonvolatile memory system and related method of performing erase refresh operation
US20140215133A1 (en) * 2013-01-29 2014-07-31 Samsung Electronics Co., Ltd. Memory system and related block management method
US9450610B1 (en) * 2013-03-15 2016-09-20 Microsemi Storage Solutions (Us), Inc. High quality log likelihood ratios determined using two-index look-up table
CN107943712A (zh) * 2016-10-12 2018-04-20 三星电子株式会社 控制存储器设备的回收的方法、存储设备及其操作方法

Also Published As

Publication number Publication date
US11775178B2 (en) 2023-10-03
US20200097189A1 (en) 2020-03-26
DE102019116520A1 (de) 2020-03-26
US20210318810A1 (en) 2021-10-14
US11086529B2 (en) 2021-08-10
CN110955385B (zh) 2023-09-19

Similar Documents

Publication Publication Date Title
CN110955385B (zh) 用于改进的数据重定位的数据存储***和方法
CN109933455B (zh) 动态多级解码
US11017867B2 (en) Adjustable read retry order based on decoding success trend
US10347349B2 (en) Method and device for fail-safe erase of flash memory
US11093326B2 (en) Dynamic multi-stage decoding
US10083754B1 (en) Dynamic selection of soft decoding information
US10963332B2 (en) Data storage systems and methods for autonomously adapting data storage system performance, capacity and/or operational requirements
US9530509B2 (en) Data programming method, memory storage device and memory control circuit unit
US10222996B2 (en) Read operation and soft decoding timing
US9507658B2 (en) Data reading method, memory storage device and memory controlling circuit unit
WO2023134297A1 (en) Memory device, memory system, and method of operating the same
US20200257463A1 (en) Data Storage Systems and Methods for Self Adaptive Chip-Enable Setup Time
CN112732199A (zh) 数据存取方法、存储器控制电路单元及存储器存储装置
CN110874282A (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
GR01 Patent grant
GR01 Patent grant