CN110047546B - 存储器系统中的擦除管理 - Google Patents

存储器系统中的擦除管理 Download PDF

Info

Publication number
CN110047546B
CN110047546B CN201910030866.XA CN201910030866A CN110047546B CN 110047546 B CN110047546 B CN 110047546B CN 201910030866 A CN201910030866 A CN 201910030866A CN 110047546 B CN110047546 B CN 110047546B
Authority
CN
China
Prior art keywords
data
region
area
memory
erased
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.)
Active
Application number
CN201910030866.XA
Other languages
English (en)
Other versions
CN110047546A (zh
Inventor
Y·B·瓦克肖尔
D·J·佩尔斯特
X·郭
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Priority to CN201910030866.XA priority Critical patent/CN110047546B/zh
Publication of CN110047546A publication Critical patent/CN110047546A/zh
Application granted granted Critical
Publication of CN110047546B publication Critical patent/CN110047546B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • G11C11/5635Erasing circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/102External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • G11C16/16Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
    • 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/32Timing 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/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • G06F2212/1036Life time enhancement
    • 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/7204Capacity control, e.g. partitioning, end-of-life degradation
    • 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/7207Details relating to flash memory management management of metadata or control data
    • 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/7208Multiple device management, e.g. distributing data over multiple flash devices
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits

Abstract

计算机处理器硬件接收存储在非易失性存储器系统中的存储单元的区域中的数据存储有无效数据的通知。响应于该通知,计算机处理器硬件将该区域标记为存储有无效数据。该计算机处理器硬件对与利用替换数据覆写存储单元中的无效数据相关联的擦除停留时间(即,一个或多个单元被设置成擦除状态的时间量)的数量进行控制。例如,要对相应的存储单元进行重新编程,数据管理器必须擦除存储单元,并且然后利用替换数据对存储单元进行编程。数据管理逻辑能够将擦除停留时间控制为小于时间门限值以提高非易失性存储器系统的寿命。

Description

存储器系统中的擦除管理
本申请是申请日为2014年7月16日、申请号为201480034413.X的同名专利申请的分案申请。
技术领域
本公开的实施例一般涉及存储器系统中的数据管理。
背景技术
很久以来,计算机系统使用设备来存储数据。例如,常规的硬盘驱动器(HDD)是一种用于使用快速旋转磁盘来存储和取回数字信息的数据存储设备。这种磁盘涂有永久地存储相应的数据的磁性材料。随着相应的磁盘旋转,磁头从磁盘表面上的磁性材料读取数据或者将数据写入磁盘表面上的磁性材料。
另一种类型的用来存储数据的常规技术是固态驱动器。顾名思义,固态驱动器包括被配置为永久地存储数据的一个或多个固态设备或集成电路。在固态驱动器中没有实际的移动部件。使用电子电路接口来执行对存储在固态驱动器中的非易失性存储器中的数据的访问。
固态驱动器替代旋转磁盘驱动器广泛使用的一个原因在于速度。例如,访问非易失性存储器中的数据通常比访问存储在磁盘(例如,物理旋转的存储介质)中的数据快得多。相比于磁盘驱动存储而言使用非易失性存储器的不利之处是成本。例如,在存储器中存储数据的每位成本比在HDD的磁性介质盘中存储数据的每位成本高很多。
存储器系统通常包括存储多位信息的许多存储单元。对存储器系统和相应的存储单元的正确的管理对于使用寿命和可用性都是重要的。对许多存储元件的某些管理可能导致过早故障。
非易失性存储器系统中的存储单元通常可能被反复使用。例如,非易失性存储器设备中的存储单元的区域最初可以被编程以存储一组数据。要覆写该组数据,首先必须擦除存储单元的区域。然后,将新数据写入该存储单元的区域。
附图说明
图1是示出了根据常规技术的在存储器单元中存储数据的性能降级的示例图。
图2是示出了根据常规技术的RWB裕度损耗的示例图。
图3是示出了根据本文实施例的非易失性存储器系统的示例图。
图4是示出了根据本文实施例的对非易失性存储器系统的存储单元的管理的示例图。
图5是示出了根据本文实施例的在存储单元中存储数据的减轻的性能降级的示例图。
图6是示出了根据本文实施例的存储单元中数据的部分擦除的示例图。
图7是示出了根据本文实施例的可以用来执行一种或多种方法的计算机体系结构的示例图。
图8是示出了根据本文实施例的方法的示例流程图。
图9是示出了根据本文实施例的相应的计算机系统中的存储器的使用的示例图。
具体实施方式
根据一个常规的应用,数据管理器能够接收非易失性存储器(诸如NAND存储器技术)的区域中的存储单元当前存储有无效数据的通知。响应于该通知,数据管理器立即擦除该存储单元的区域以使该存储单元可用于后续编程。然后,将存储单元的擦除区域置于队列中。当系统需要额外的资源来存储数据时,数据管理器分配先前擦除的区域来存储新数据。
如本文所论述的一些实施例至少部分地基于如下发现:非易失性存储器中的存储单元处于擦除状态的时间长度可能不利地影响相应的存储单元存储后续数据的能力。非易失性存储器设备中的存储单元在随后被利用非擦除类型的数据进行重新编程之前被设置成擦除状态。
在存储设备正常使用期间,随时间经过,非易失性存储器设备中的每个单元易于发生一定量的固有电荷损耗以及降低的读取窗预算(RWB)。通常,固有电荷损耗是在编程脉冲之后来自浮动栅极的电子的泄漏。由于编程而俘获的电荷起初使得非易失性存储器设备单元的阈值电压(Vt)表现为比浮动栅极电压高。然而,在编程之后这些电子的泄漏通常导致阈值电压的偏移。RWB表示调节阈值状态之间的边缘裕度之和(如结合图1更详细论述的)。
当非易失性存储器设备中的单元在长时间段内处于擦除状态时,对于在那些单元中的后续存储的数据,固有电荷损耗率增加。对于那些单元的RWB裕度的降级率也会由于将存储单元暴露于较长的擦除停留时间而降低。
在一些实例中,非易失性存储器系统可能在长时间段内暴露于高温(例如在不加电的情况下大于35摄氏度)。如上所述,随时间推移的固有电荷损耗率和RWB裕度降级量将取决于单元处于擦除状态的时间长度。如果先前暴露于高温的存储单元在长时间段内处于擦除状态,则非易失性存储器系统易于出现较高的固有电荷损耗率和较大的RWB裕度降级。
本文的一个实施例包括对非易失性存储器系统中的存储单元处于擦除状态的时间进行控制。例如,在一个实施例中,数据管理器接收存储在非易失性存储器系统中的存储单元的区域中的数据存储有无效数据的通知。响应于该通知,数据管理器将该区域标记为存储有无效数据。数据管理器对单元被设置成与用替换数据来覆写存储单元中的无效数据相关联的擦除状态的时间量进行控制。例如,要对相应的存储单元进行重新编程,数据管理器擦除存储单元,然后利用替换数据来对该存储单元进行编程。在一个非限制性的示例实施例中,数据管理器将单元处于擦除状态的时间控制为小于阈值时间值以提高存储单元的寿命及其存储数据的能力。
相应地,不是立即擦除无效数据并且等待相当长的时间来将相应的新数据写入存储单元中,本文的实施例包括将擦除存储单元中的无效数据的操作在时间上延迟为更接近利用替换数据对存储单元进行重新编程的时间。如本文所述地减少单元处于擦除状态的时间降低了针对后续存储的替换数据的固有电荷损耗率以及RWB裕度的降级率。因此,本文的实施例包括保持与相应的非易失性存储器系统中的存储单元相关联的性能。
现在,更具体地,图1是示出了根据常规技术的在存储器单元中存储数据的性能降级的示例图。
如图110-1所示,最初,以不同级别L0、L1、L2和L3来对非易失性存储器设备的多个存储单元进行编程。作为非限制性的示例,多个存储单元中的每个存储单元可以是能够存储两位信息的多级NAND单元或单级NAND单元存储元件。
当值被写入相应的单元中时,电荷被施加到浮动栅极上。不同量的电荷被施加到相应的单元上以将不同的位设置到写入单元中。例如,假设多级单元设备的每个单元2位,第一电荷量被施加以将相应的单元设置成位值11;第二电荷量被施加以将相应的单元设置成位值10;第三电荷量被施加以将相应的单元设置成位值01;第四电荷量被施加以将相应的单元设置成位值00。电压Vt(当读取单元的状态时)根据相应的单元的设置和所施加的电荷而变化。
在范围R0内的单元的Vt读数表明,该单元被设置成位值11;在范围R1内的单元的Vt读数表明,该单元被设置成位值10;在范围R2内的单元的Vt读数表明,该单元被设置成位值01;以及在范围R3内的单元的Vt读数表明,该单元被设置成位值00。
针对单元所检测到的Vt(阈值电压)级别(表示在编程期间俘获的电荷量)表明了相应的单元在后续读取该单元时读取被编程的对应状态。例如,图110-1中的级别L0表示针对被编程有数据=11的存储器设备中的多个单元的Vt的分布;级别L1表示针对被编程有数据=10的存储器设备中的多个单元的Vt的分布;级别L2表示针对被编程有数据=01的存储器设备中的多个单元的Vt的分布;级别L3表示针对被编程有数据=00的存储器设备中的多个单元的Vt的分布。
当读取时,被编程为级别L0(例如,数据值11)的所有存储单元产生范围R0内的相应Vt;被编程为级别L1(例如,数据值10)的所有存储单元具有范围R1内的相应Vt;被编程为级别L2(例如,数据值01)的所有存储单元具有范围R2内的相应Vt;被编程为级别L3(例如,数据值00)的所有存储单元具有范围R3内的相应Vt。每一个的电压Vt表示由读取单元状态的相应电路所检测到的电压电平。
在该示例中假设图110-1示出刚进行编程之后被设置成不同逻辑电平的存储器单元的初始状态的分布。
在该示例中进一步假设存储器单元先前长时间(例如远多于几天)暴露于擦除状态。换言之,在被编程为如图110-1所示的初始状态之前,存储器单元被擦除并且在相当长的时间量内保持处于擦除状态(即,假设所有的存储单元在几天内被设置成级别L0的擦除状态)。
图110-2示出了由于将存储单元维持擦除状态时间过长而发生的存储性能的降级。起初,在曲线图110-1中示出了设置的分布图。然而,因为如之前所述存储单元在长时间段内处于擦除状态,所以设置随时间推移而降级。更具体地,固有电荷损耗率由于长时间处于擦除状态而更大;同样,RBW裕度降级率也更大。
在该示例中,由于固有电荷损耗,随时间推移,针对在级别L0、L1、L2和L3下编程的单元的Vt分布的集合从图110-1到图110-2向左偏移。在该示例中,峰值P1表示图110-1中的级别L1处的峰值分布;峰值P1’表示图110-2中的级别L1处的峰值分布。如图所示,峰值P1’相对于峰值P1偏移。P1与P1’之差表示偏移量。
此外,随时间推移,Vt分布从如图110-1的初始状态向如图110-2所示的分布拓宽。例如,在对存储单元进行编程的初始状态下的RWB裕度等于图110-1中的范围E0、E1、E2、E3、E4和E5之和。级别之间充分大的裕度确保了能够区分相应的存储单元被设置成哪个级别。如上所述,随时间推移,因为在该示例中存储单元在相当长时间内处于擦除状态,所以与存储单元相关联的分布随时间推移而降级。也即,如图110-2所示,除了如上所述偏移之外,针对不同级别L0、L1、L2和L3的Vt分布中的每个都拓宽,使得RWB裕度缩小成其很难或者可能不再能够确定存储单元的正确设置的点。
例如,起初被编程为图110-1中的级别L1的存储单元可能由于如图110-2中所示的分布的偏移和/或拓宽而表现为被设置成级别L0。相反,起初被编程为图110-1中的级别L0的存储单元可能由于如图110-2中所示的分布的偏移和/或拓宽而表现为被设置成级别L1,以此类推。因此,由于长时间处于擦除状态而导致的如图110-2所示的存储性能的降级是不期望的。
图2是示出了根据常规技术的RWB裕度的理论损耗的示例图。
如图210所示,线220指示由于耗费在擦除状态的时间RWB裕度随时间推移降级的程度。图210的x轴表示针对各个存储单元的处于擦除状态的时间,以秒计;图210的y轴表示RWB裕度的损耗,以毫伏(mV)计。对于所有存储单元处于擦除状态期间的时间增加,RWB裕度降级为较小的值,使得更难读取存储的数据,如上所述。RWB裕度可能降级如此多以至于不能利用相应的误差校正码或相应的非易失性存储器系统中的其他适合的数据校正机制来校正该数量的失败位。因此,在耗费在擦除状态下的过量时间会导致存储数据的灾难性损失。
图3是示出了根据本文的实施例的非易失性存储器系统中的存储器设备的配置的示例图。
如图所示,示例存储器系统100包括数据管理逻辑140以及用于存储数据的一个或多个存储器设备,例如,存储器设备110-A、存储器设备110-B、存储器设备110-C,等等(统称为存储器设备110)。存储器系统100可以包括一系列任何适合数量的存储器设备100。
存储器系统100可以是诸如固态驱动器(SSD)等的包括多个存储器设备的装置的一部分。如本文所论述的,可以使用数据分块技术(例如,其中数据串的部分被存储在多个设备中的每个设备中)来存储数据。
值得注意的是,存储器系统100和/或数据管理逻辑140可以包括用于实施如本文所述的任何适合的功能(例如,数据访问、奇偶性信息生成、存储器修复(例如对不再能够正确存储数据的存储单元的区块进行引退)、数据校正、对耗费于擦除状态的时间的控制等)的硬件、软件、固件等。
注意的是,图1中所公开的资源的每一个可以是任何适合类型的资源。例如,存储器设备110(例如,NAND闪存、NOR闪存、磁阻随机存取存储器、铁电随机存取存储器、三维交叉点存储器等)可以包括用于存储数据的一个或多个存储平面(例如,将设备划分成两个物理平面的两平面体系结构,由奇数区块和偶数区块构成)。
数据管理逻辑140和/或相关的部件可以经由任何适合类型的资源来执行,所述资源例如是ASIC(专用集成电路)、执行指令的计算机处理器硬件、固件、硬件、软件、硬件和软件的混合等。
作为非限制的示例,存储器设备110中的每个可以包括用于存储相应数据的多个存储单元。例如,存储器设备110-A包括区块120-A1、区块120-A2、区块120-A3,等等;存储器设备110-B包括区块120-B1、区块120-B2、区块120-B3,等等;存储器设备110-C包括区块120-C1、区块120-C2、区块120-C3,等等。
每个区块均包括多个页;区块中的每个页均包括用于存储相应数据的多个存储单元。作为示例,区域210-2包括页245-X,例如,跨多个存储器设备110存储的位信息串。
如图所示,存储器系统100中的每个区域(或区带)可以包括来自多个存储器设备110的区块条。在该非限制性的示例实施例中,区域210-1包括区块120-A1、区块120-B1、区块120-C1,等等;区域210-2包括区块120-A2、区块120-B2、区块120-C2,等等;区域210-3包括区块120-A3、区块120-B3、区块120-C3,等等;以此类推。
在一个非限制的示例实施例中,每个区块中的存储器元件被配置为多级单元;每个存储元件能够存储多位数据,如上所述。如所述,根据实施例,每个单元能够存储数据的一位或多位,这取决于每单元位模式设置(例如,多级单元MLC、单级单元SLC,等等)。
因此,存储器设备110中的存储资源能够被划分为包括区域210-1、区域210-2和区域210-3等的多个区域。在一个实施例中,区域210-1表示第一区带,区域210-2表示第二区带,区域210-3表示第三区带,以此类推。
在任意给定的时间,存储在区域210的一个或多个(或其部分)中的数据可以由于任何多种原因而从进一步的使用中引退。例如,由于执行判定跨存储器中的多个位置存储的相关数据是否以诸如由于性能原因而彼此靠近的不同方式而更佳地存储的消除碎化分析,相应的区带中的数据可被引退为无效的;由于用户执行的删除操作表明数据不再被需要,相应的区段中的数据可以被引退为无效的;等等。
在接收到存储在相应区域中的数据不再有效的通知时,数据管理逻辑140将新引退的数据区域的标识存储在列表320中。在该示例实施例中,列表320表明,区域210-5、区域210-6、…、区域210-2已经被引退,并且均存储有无效数据(例如,数据不再用于任何用途)。
不是立即擦除如列表320中的包含项所指示的具有无效数据的相应区域,本文的实施例包括:在相应区域内的存储单元已经被引退或被标记为无效数据之后,延迟擦除相应区域内的存储单元的操作。
在该示例中假设数据管理逻辑140接收到存储在存储器系统100中的存储单元的相应区域210-2中的数据现在存储有无效数据的通知。响应于接收到该通知,数据管理逻辑140将该区域210-2标记为存储有无效数据。这可以包括:将区域210-2的标识存储在列表320中。除此之外或者可替代地,本文另外的实施例可以包括:修改存储在引退区域中的数据的至少一部分以表明存储在其中的数据不再是有效或有用的数据。
在区域已被标记为存储有无效数据之后的某时间,数据管理逻辑140将替换数据写入区域210中的存储单元的全部或部分中。为提供提高的存储性能,以及避免过量的RWB和固有电荷损耗降级,数据管理逻辑140控制在随后利用区域210-2的存储单元中相应的替换数据进行覆写之前存储单元被设置成擦除状态的时间量。
如本文所描述的,本文的一个实施例包括:延迟擦除区域210-2中的存储单元中的无效数据的操作以及利用替换数据来替换无效数据。例如,数据管理逻辑140延迟擦除操作(这是在将替换数据写入存储单元之前所必需的)来将存储单元处于擦除状态的时间减少至预定的时间门限值以下。在对区域中的数据进行覆写的后续实例中将擦除停留时间减至预定的时间门限值以下确保了存储器系统100将在其使用寿命的过程中提供一定水平的性能。
图4是示出了根据本文的实施例的对非易失性存储器系统中的存储单元的管理的示例图。
在任何给定时间,区域210中的任一个均不存储有效数据,区域210中的一个或多个可以存储有效数据如写状态410所表示的。换言之,写状态410表示存储器系统100的存储有效数据的部分。
如之前所述的,存储在存储器系统100中的数据的一些区域最终可能变得无效。状态420表示已经引退并且现在存储有无效数据的区域。响应于检测到区域已经被引退或被置于无效数据状态420,数据管理逻辑140将包括无效数据的区域的标识存储在列表320中。任何适合的方法可以用来对引退区域做标记或加标签。
在一个实施例中,由于需要新的区域来存储数据管理逻辑140所接收到的替换数据490,所以数据管理逻辑140开始擦除功能430的执行。例如,假设当前区域450是区域210-3并且区域210-4是预留区域440。在完成对当前区域450(区域210-3)的编程之后,数据管理逻辑140将区域210-3设置成写状态410。如下所述,区域210-3可以被引退,因为在区域210-3中不存在更多用来写入新数据的空闲的存储单元或者时间可能发生。如本文所解释的,存储器的区域可以被擦除并且随后在一定的时间窗内被写入。在时间窗到期之后,区域可以引退成写状态410,在该状态下,该区域不再可用于写数据。即使整个区域尚未被写入有有效数据,该区域也可以引退。因此,区域的擦除时间小于时间窗。下面论述进一步的细节。注意,当区域210-4从列表320中被分配为预留区域440时,通过擦除功能430来将区域210-4中的存储单元设置成擦除状态。
为了填充预留区域440中的空位(因为区域210-4被移动到当前区域450),数据管理逻辑140将擦除功能430应用于列表320中的下一可用区域(例如,区域210-5)。擦除功能430的应用包括:将相应区域中的基本上所有的存储单元擦除成擦除状态。在将区域210-4指定为当前区域450之后,数据管理逻辑140将区域210-5(处于擦除状态)指定为预留区域440。
在一个实施例中,数据管理逻辑140在将区域210-4设置为当前区域450的时间启动定时器555,在该时间内,将任何可用的替换数据490存储在区域210-4中。定时器555对区域210-4在多长时间内被指定为当前区域450并且由数据管理逻辑140用来存储新接收到的数据490进行跟踪。
可能的是,数据管理逻辑140没有接收到足量的替换数据490以在特定时间帧内对区域210-4内的所有存储单元进行编程。注意,当前区域450近期被擦除过。还要注意,期望的是减少擦除停留时间(即,相应区域中的存储单元在被写入有有效数据之前被设置成擦除状态的时间)。在一个实施例中,响应于检测到在区域210-4被设置成当前区域450之后定时器555达到诸如1.5天的时间门限值,并且无论区域210-4中的所有存储单元是否已经完全写入有新的替换数据490,数据管理逻辑140都将区域210-4引退成写状态410。将区域210-4引退成写状态410(与无期限地将其保留为当前区域450相反)意味着,区域210-4不再可用于写入额外的数据。这将区域210-4的擦除停留时间保持在门限值以下。例如,区域210-4在擦除状态下被存储为预留区域440至多1.5天(门限值时间量);区域210-4在擦除状态下被存储为当前区域450至多1.5天(门限值时间量)。由此,在该示例实施例中,区域210-4处于擦除状态最多3天。
在一个实施例中,擦除的存储单元的一部分(如果该擦除的存储单元在区域210-4是当前区域450时不被写入),恰在当前区域450引退成写状态410之前被编程有非擦除值(诸如值01、值10或值00)。由此,引退成写状态410的区域未完全填充有擦除值(诸如数据值11)。这限制了区域210-4中的存储单元保持在擦除状态下的时间量。
基于将区域210-4从列表320(诸如队列)转换到预留区域440以及到当前区域450,区域210-4中的存储单元经历了多达3天的擦除停留时间,如上所述。更具体地,区域210-4在预留区域440中至多驻留1.5天;区域210-4在当前区域450中至多驻留1.5天。由此,区域210-4中的存储单元的全部或部分经历了最多3天的擦除停留时间。通过类似的方式,区域中的每个都会经历最多3天的擦除停留时间。当然,最大擦除停留时间无需为3天,而可以是任何适合的值。
同样地,注意区域可以不在擦除状态下驻留最大时间量,因为数据管理逻辑140可以被配置为将数据490立即存储在区域210-3和区域210-4的相应存储单元中。在这样的实例中,每个区域的擦除停留时间远少于3天。擦除停留时间可以为小于1秒的数量级。
以这种方式控制擦除停留时间减少了与存储在区域210-4(以及其他区域)的存储单元中的替换数据490相关联的固有电荷损耗率以及RWB裕度损耗率。如所述,固有电荷损耗率和RWB裕度损耗率取决于在将替换数据存储在存储单元中之前区域210-4中的存储单元的设置被设置成擦除状态的时间量。
如上所述,可能的是,在发生超时之前,区域210-3(当被指定为当前区域450时)填充有替换数据490。在该实例中,数据管理逻辑将预留区域440选择并且移位为新的当前区域450。这样做,数据管理逻辑140延迟了擦除如列表320中每个区域中的无效数据的操作。数据管理逻辑140可以被配置为监测对于将替换数据490存储在存储器系统100中的新存储空间的需求。
作为立即擦除如列表320中所指定的相应引退区域中的无效数据的替代选择,数据管理逻辑140可以被配置为在需要存储替换数据490时才擦除存储区域中的无效数据。换言之,数据管理逻辑140将存储单元的设置保持在存储无效数据的先前编程状态中,直到擦除功能430接收到擦除存储单元的命令为止。如之前所述,由擦除功能430从数据管理逻辑140接收到的命令可以响应于检测到预留区带(诸如预留区域440)已经被重新分配为在其中存储新接收到的数据的当前区带(诸如当前区域450)而被接收到。数据管理逻辑140将新擦除的存储单元的区域指定为预留区域440。
注意,当前区域450和预留区域440可以包括任何数量的区域。例如,数据管理逻辑140能够检测到何时将需要区域来存储替换数据490以及需要多少区域来存储替换数据490。在该实例中,数据管理逻辑140可以被配置为控制擦除区域以及使它们可用作预留区域的率。
具有至少一个区域可用于预留区域440中确保在存储器系统中存储替换数据490时不延迟数据管理逻辑140。例如,在预留区域440转换到当前区域450时,数据管理逻辑140开始对作为预留区域440的新区域进行擦除,使得在下一区域被需要之前擦除该下一区域。在一个实施例中,区域的擦除时间为3毫秒至10毫秒。用于修改区域或区带中的存储单元的设置的编程时间可以近似为1秒。
图5是示出了根据本文的实施例的在存储单元中存储数据的减轻的性能降级的示例图。
与上述的图1相反,图5示出了根据本文实施例的延迟和/或减少单元被设置成擦除状态的时间的有用性。如图所示,存储单元可能由于擦除而经历一定量的降级。例如,假设存储单元被写有具有如图510-1所示的分布的值。图510-2示出了在一定时间量之后存储单元的状态。相对于图510-1,图510-2中,分布略向左偏移。然而,如图所示,缩短的擦除停留时间确保了存储数据的降级以远比如图1所示的存储单元经历长的擦除停留时间时慢的速率发生。
图6是示出了根据本文实施例的对存储单元中的数据的部分擦除的示例图。
可能存在在经由擦除功能430擦除之前期望防止对无效数据进行访问或破坏的情况。如本文所述的列表320中的区域的排队可以使得相应的区域在相当大的时间量内存储无效数据。
一种在无效数据已经被引退并且移动至列表320中之后破坏无效数据的方式是擦除存储单元的相应区域中的数据以在接收到该区域存储了100%的无效数据时破坏该无效数据。为使得数据不可用,本文的实施例可以包括:擦除该区域,并且利用临时数据来对存储单元的区域进行编程。如所述,已经引退的区域的标识可以在列表320中保留相当大的时间量。根据一个实施例,不是在区域的标识符在列表320中排队的同时存储无效数据,而是相应的区域在随后被利用新数据490覆写之前存储临时数据。该实施例可以影响存储器系统100的寿命,因为其要求用临时数据来对引退区域中的存储单元进行预编程的额外操作。临时数据随后被擦除并且被利用替换数据490来进行覆写。临时数据可以具有与图510-1中所示的数据相似的分布。
另一种破坏无效数据的方式是执行所谓的对新引退区域的部分擦除。在该实例下,数据管理逻辑140将区域中的存储单元的至少部分编程为非擦除状态(例如,除了级别L0之外的状态)。
作为另外的示例,图610-1示出了与区域中的存储单元相关联的示例分布。假设图610-1表示要破坏的区域中的无效数据的设置。在一个实施例中,数据管理逻辑140将与存储单元相关联的擦除门限值TEV1增大至近似等于图610-1中的值PV2(或大于TEV1的某其他适合的值)。换言之,数据管理逻辑140将擦除门限值设置成TEV2,如图610-2所示。
然后,数据管理逻辑140将新引退区域中的存储单元的位设置修改成落在由增大的擦除门限值(修改后的擦除门限值TEV2)限定的范围内。原始擦除门限值TEV1被用作限定与如图610-1所示的存储单元相关联的原始设置的基础。
数据管理逻辑140修改区域中的存储单元的设置以产生如图610-2中所示的设置的分布。该新分布包括:将新引退区域中的足量的存储单元设置成级别L0之外的非擦除状态。这种类型的擦除破坏了存储单元中的无效数据,使得无效数据不再可用。另外,因为分布有效地跨过擦除状态(例如,级别L0)和至少非擦除状态(例如,级别L1、范围E1、范围E2),所以存储单元的区域基本上不受如之前所述的长时间处于擦除状态的影响。换言之,如图610-2中所示的修改后的存储单元中的设置的分布足够多样而不会在长时间段内不变的情况下对存储单元不利。
注意的是,相应区域中的存储单元的全部或部分可以被部分擦除,使得无效数据不再是可访问的。
鉴于上述实施例,本文另外的实施例可以包括:接收修改存储单元中的无效数据以防止对这种数据的访问和使用的命令。响应于接收到该命令,数据管理逻辑140将区域中数据单元的设置的少于全部的部分修改成其中无效数据变坏或被破坏的非擦除状态。换言之,从原始数据的原始状态修改原始数据。之前设置成图610-1中的级别L2和/或级别L3的存储单元的部分或组变成围绕图610-2中的级别L1(非擦除状态)和/或级别L0的Vt设置。
作为更具体的示例,如图610-1所描绘的存储单元的区域可以包括原始数据序列,例如:存储单元#1=11(擦除状态);存储单元#2=10(非擦除状态);存储单元#3=00(非擦除状态);存储单元#4=10(非擦除状态);存储单元#5=11(擦除状态);存储单元#6=00(非擦除状态);存储单元#7=01(非擦除状态);存储单元#8=00(非擦除状态);以此类推。
假设响应于区域正在被引退,数据管理逻辑140经由如上所述的部分擦除来修改状态以使得数据不可用。如图610-2所描绘的区域,在应用了部分擦除之后,可以包括被配置为存储数据序列的存储单元,所述数据序列例如是:存储单元#1=11(擦除状态);存储单元#2=10(非擦除状态);存储单元#3=10(非擦除状态);存储单元#4=10(非擦除状态);存储单元#5=11(擦除状态);存储单元#6=10(非擦除状态);存储单元#7=10(非擦除状态);存储单元#8=11(擦除状态);以此类推。
注意的是,由于如本文所述的部分擦除,新引退区域中的一些存储单元可以设置成诸如在范围E0、E1、E2和E3之间等的门限值。
如之前所述,将无效数据区域中的第一组单元的设置从第一非擦除状态(例如级别L2和/或级别L3)变成第二非擦除状态(例如级别L1)使得无效数据不可用。对存储单元中的数据的设置的修改还避免了损坏存储单元的问题,这是因为该存储单元在延长的时间段内被维持在如图610-2中所示的状态中。换言之,当被设置成图610-2中的设置时,单元不会经历长的擦除停留时间。
最终,存储单元的引退区域或部分擦除区域(其设置由图610-2中的设置所表示)是列表320中待被指定为预留区域440的下一区域。在该实例中,擦除功能430根据擦除门限值TEV1擦除位于级别L0(擦除状态)内的区域中所有的存储单元。如所述,然后,在存储单元的相应区域随后被指定为当前区域450时,数据管理逻辑140向存储单元的该相应区域写(对其编程)。然而,注意的是,当再次在该区域的存储单元中存储替换数据490时,数据管理逻辑140根据要存储的替换数据而将单元中的每一个设置成落在适当的级别L0、L1、L2或L3内。因此,在随后读取该区域的存储单元时,存储单元将被设置成多种状态中的一种状态。
再次参照图4,注意的是,列表320可以存储在非易失性存储器设备中,使得在发生非期望的电力故障时数据能够得以恢复。然而,需要注意,在一些实施例中,列表320可能在相应电力故障时被破坏。换言之,电力故障可能导致列表320完全丢失,这是因为列表存储在易失性存储器中。
考虑到存储器系统100的可能的电力故障,本文的一个实施例可以包括:对无效数据的一个或多个区域进行标记以表明相应的区域包括无效数据。例如,在检测到一个区域已经引退成无效状态420时,数据管理逻辑140可以被配置为修改存储在不同区域中的预定位置处的数据以表明相应的区域包括无效数据。在发生电力故障之后,在后来加电时,数据管理逻辑140可以被配置为访问并且利用相应区域中的预定位置处的数据设置以确定相对应的区域存储有效数据还是无效数据。对于存储无效数据的那些区域,数据管理逻辑140将区域的标识包含在列表320中并且按如上所述的方式操作。列表320中包括无效数据的这些区域不用来创建能够将逻辑地址映射到存储有数据的存储器中的相对应物理位置的逻辑-物理表。
本文的实施例可以包括:修改预定位置处的数据以确保当试图在加电后读取预定位置时将发生后续的读取故障。在一个实施例中,在电力恢复之后数据管理逻辑的后续读取故障表明,相应的区域包含无效数据。
如上所述,本文的另一实施例可以包括:执行所谓的部分擦除或破坏(后续读取故障),其中相应区带中的全部或部分(例如,最后一页或字行)被部分擦除。在图610-2的部分擦除状态下,在包括有存储器系统100的相应计算机设备的后续加电时,数据管理逻辑140可以被配置为试图从被部分擦除的区域中的相应页进行读取。当数据管理逻辑140试图根据预定的级别L0、L1、L2和L3来读取这些数据时,ECC(错误校正码)读取错误或奇偶性错误将发生,由此表明该区域(或区带)包含无效数据。
在电力故障之后恢复的又一种方法可以包括重构与存储器系统100相关联的L2P(逻辑-物理)映射。例如,区域中所有区块起初被假设存储有效数据(即使它们存储了无效数据)。存储在相应区带的每个区带中的数据可以用来确定L2P映射中是否至少一个逻辑区块地址(LBA)指向相应区域中的位置(诸如区块)。如果在创建L2P映射时发现没有逻辑区块地址指针指向区段中的任何区块,则确定该区段(例如,区域)包含无效数据。然后,将具有所有无效数据的任何区域的标识包含在列表320中。
根据另外的实施例,数据管理逻辑140可以被配置为将列表320中的区域标识的副本存储在诸如当前区域450的第一页等的指定区域中。例如,在一个实施例中,数据管理逻辑140在区域被指定为当前区域时将标识(列表320)存储在当前区域450中的预定位置上,例如,第一页。
在将当前区域450的标识存储在第一页中之后,假设存储器系统100经历了电力故障,其中存储器设备110全部掉电,而没有预先通知。例如,在数据管理逻辑140使用当前区域450来存储接收到的数据时,可能发生非预期的电力故障。假设电力恢复,在后续系统加电时,数据管理逻辑140(或其他适合的资源)可以被配置为识别区域210中的哪个被指定为在电力故障之前数据管理逻辑140使用的最后一个当前区域450。
任何适合的方法可以用来确定在系统重新加电之后的最后一个当前区域450。例如,在一个实施例中,在电力故障之前,数据管理逻辑140将列表320中的标识存储到当前区域450的指定页(诸如第一页)中。因为发生了电力故障,所以数据管理逻辑140不能向当前区域450的最后一页写入。因此,当前区域450的最后一页仍处于擦除状态。注意,预留区域440中的所有页被设置成擦除状态。当前区域450先前为预留区域440并且处于擦除状态。
在电力故障以及存储器系统100重新加电之后,数据管理逻辑140读取存储器系统100中的每个区域的最后一页的状态。基于读取每一个区域的最后一页,数据管理逻辑140识别出可能作为最后一个当前区域450的两个候选区域(最后一个当前区域450和最后一个预留区域440)。两个候选区域包括被擦除数据的最后一页。数据管理逻辑140读取两个候选区域的第一页以确定哪一个是最后一个当前区域450。例如,两个候选区域中的第一页被写入的一个区域是作为最后一个当前区域450的区域。注意,数据管理逻辑140将列表320写入当前区域450的第一页。其他候选区域(先前的预留区域440)将具有擦除数据的页。由此,先前的当前区域450将能够被识别为在第一页中包括写入数据并且在最后一页中包括擦除数据的仅被部分写入的区带。预留区域440将包括擦除数据的第一页和擦除数据的最后一页。在该实例中,确定了在电力故障前该区域被用作先前的预留区域440。
在识别出在电力损失之前被指定为当前区域450的特定区带(或区域)之后,数据管理逻辑140(或其他适合的资源)将从当前区域450的对应的第一页中读取出,并且重新创建列表320,然后从L2P表构造中排除列表中的这些区域(例如,区域210-5、210-6、210-12等)。因此,即使列表320被存储在易失性存储器中并且可能在电力故障时丢失,本文的实施例可以包括基于存储在当前区域450中的数据来重新创建列表320。
图7是根据本文实施例的用于实现如本文所述的任何操作的计算机系统的示例框图。
计算机系统850可以被配置为执行关于数据管理逻辑140的任何操作。
如图所示,本示例的计算机系统850可以包括互连811,其将诸如能够在其中存储和取回数字信息的物理的非暂时性介质(即,任何类型的物理硬件存储介质)等的计算机可读存储介质812、处理器813(即,一个或多个处理器设备)、I/O接口814、通信接口817等耦合。
如图所示,I/O接口814为计算机系统850提供到存储在存储器设备220中的数据的连接。
计算机可读存储介质812可以是任何的一个或多个物理或有形硬件存储设备,例如,存储器、光学存储、硬盘驱动器、软盘等。在一个实施例中,计算机可读存储介质812(例如,计算机可读硬件存储)存储指令和/或数据。
在一个实施例中,通信接口817使计算机系统850和相应的处理器813能够通过诸如网络190等的资源来进行通信,以从远程源取回信息,以及与其他计算机进行通信。I/O接口814使处理器813能够从诸如存储器设备220等的仓库中取回存储的信息。
如图所示,计算机可读存储介质812被编码有由处理器813执行的数据管理应用140-1(例如,软件、固件等)。数据管理应用140-1可以被配置为包含实现如本文所述的任意操作的指令。
在一个实施例的操作期间,处理器813经由互连811的使用来访问计算机可读存储介质812,以便于发起、运行、执行、解释或以其他方式执行存储于计算机可读存储介质812上的数据管理应用140-1中的指令。
数据管理应用140-1的执行在处理器813中产生了诸如数据管理进程140-2的处理功能。换言之,与处理器813相关联的数据管理进程140-2表示在计算机系统850的处理器813内或上执行数据管理应用140-1的一个或多个方面。
本领域中的技术人员将理解,计算机系统850可以包括其他的进程和/或软件和硬件部件,诸如,控制硬件资源、软件资源等的分配和使用以执行数据管理应用140-1的操作系统。
根据不同的实施例,注意的是,计算机系统850可以是各种类型的设备中的任一者,包括但不限于,移动计算机、个人计算机系统、无线设备、基站、电话设备、台式计算机、膝上型计算机、笔记本、上网本计算机、主机计算机系统、手持式计算机、工作站、网络计算机、应用服务器、存储设备、如照相机、摄像机、机顶盒、移动设备、视频游戏控制台、手持式视频游戏设备等的消费电子设备、诸如交换机、调制解调器、路由器等的外围设备、或者一般任何类型的计算或电子设备。
现在经由图8中的流程图来论述不同资源所支持的功能。注意的是,以下流程图中的处理可以按任何适合的次序来执行。
图8是示出了根据实施例的示例方法的流程图800。注意的是,将存在与上述概念有关的一些重叠。
在处理框810中,数据管理逻辑140接收存储在非易失性存储器系统中的存储单元的区域中的数据存储有无效数据的通知。
在处理框820中,响应于该通知,数据管理逻辑140将该区域标记为存储有无效数据。
在处理框830中,数据管理逻辑140控制存储单元处于与用替换数据来覆写存储单元中的无效数据相关联的擦除状态的时间。通过非限制的示例,数据管理逻辑140将存储单元的擦除延迟为更接近存储单元将被编程有相应的替换数据的时间。
图9是示出了根据本文实施例的相应的计算机系统中的存储器系统的使用的示例图。
如图所示,计算机系统1100可以包括主机处理器资源1120和存储器系统100。主处理器资源1120可以为或者可以包括诸如一个或多个处理器设备等的计算机处理器硬件。作为非限制的示例,计算机系统1100可以为使用存储器系统100来存储数据的任何适合类型的资源,诸如个人计算机、蜂窝电话、移动设备、照相机等。
在一个实施例中,存储器系统100是用来存储数据的固态驱动器。
主机处理器资源1120经由接口1011来访问存储器系统100。接口1011可以为实现数据传输的任何适合的链路。例如,接口1011可以是SCSI(小型计算机系统接口)、SAS(串行连接SCSI)、SATA(串行高级技术附件)、USB(通用串行总线)、Pcie(外围设备组件高速互连)总线等。
经由接口1011,计算机系统1100的主机处理器资源1120能够从存储器系统100中取回数据,并且将数据存储在存储器系统100中。
作为示例,假设主机处理器资源1120从操作检测站1100的用户接收到执行如输入105所指定的相应功能的请求。主机处理器资源1120执行该功能,其可以包括通过接口1011将请求发送到数据管理逻辑140,以用于取回指定逻辑地址处的数据。除了执行其他功能之外,数据管理逻辑140可以被配置为将逻辑地址映射到存储器系统100中的适当的物理地址,并且从非易失性存储器设备220取回数据。在从存储器系统100取回适当的数据之后,数据管理逻辑140将取回的数据发送到满足数据请求的主机处理器资源1120。
在一个非限制的示例实施例中,根据从数据管理逻辑140接收到的数据,主机处理器资源开始在显示屏130上显示图像。
作为另一示例,注意主机处理器资源1120能够接收来自用户的执行如输入105指定的相应功能的请求。主机处理器资源1120执行功能,并且与数据管理逻辑140通信以将数据存储在由主机处理器资源1120指定的逻辑地址处。响应于接收到请求,数据管理逻辑140将逻辑地址映射到适当的物理地址,并且将接收到的数据存储在非易失性存储器设备220的对应位置上。
如之前所述,数据管理逻辑140可以被配置为管理与存储器系统100中的存储单元的编程相关联的擦除停留时间。如之前所述,由于纠错信息能够用来修复破坏的数据,所以一定量的降级是可接受的。然而,减少擦除停留时间大幅提高了存储器系统100的使用寿命。
公开的示例实施例的不同组合
本文讨论的第一示例实施例包括一种方法,该方法包括:响应于接收到存储在非易失性存储器系统中的存储单元的区域中的数据存储有无效数据的通知,将该区域标记为存储有无效数据;以及对存储单元区域处于与随后用替换数据来覆写存储单元中的无效数据相关联的擦除状态的时间进行控制。该第一示例实施例可以连同以下任何一个或多个特征来实现以产生以下另外的实施例:
在一个实施例中,时间表示在随后的利用替换数据覆写之前存储单元被设置成擦除状态的时间量。控制时间可以包括:延迟擦除该区域中存储单元中的无效数据的操作以及利用替换数据来替换无效数据;被延迟的操作将该时间减少至预定的时间门限值以下。
本文进一步的实施例可以包括:大致在擦除存储单元的区域的时间上启动定时器;监测该定时器;以及在定时器达到时间门限值之前,利用存储单元的擦除区域来存储替换数据。
根据进一步的实施例,延迟擦除无效数据的操作可以包括:监测对于非易失性存储器系统中的存储空间的需求;以及响应于检测到将替换数据存储在非易失性存储器系统中的需求,擦除存储区域中的无效数据。
根据另外的方法实施例,在擦除无效数据之后,本文的实施例包括:开始将替换数据存储在区域的存储单元中以确保存储单元被设置成擦除状态的时间在预定的时间门限值以下。
控制该时间可以进一步包括降低与存储在存储单元中的替换数据相关联的固有电荷损耗率。与替换数据相关联的固有电荷损耗率取决于在替换数据存储在存储单元中之前存储单元的设置被设置成擦除状态的时间量。
在另外的实施例中,控制与无效数据的覆写相关联的时间可以包括:将存储单元的设置维持在存储无效数据的先前的编程状态,直至接收到擦除存储单元的命令为止,所述命令是响应于检测到非易失性存储器系统中的预留区带已经被重新分配为在其中存储新接收的数据的当前区带而被接收到的;以及将存储单元的擦除区域指定为预留区带。
根据另一实施例,控制区域中存储单元的设置以降低固有电荷损耗可以包括:接收修改存储单元中的无效数据的命令;以及响应于接收到该命令,将区域中数据单元的设置的少于全部的部分修改成非擦除状态,在该状态下,无效数据变坏。
将数据单元的设置的少于全部的部分修改成非擦除状态可以包括:将区域中第一组单元的设置从第一非擦除状态改变成第二非擦除状态以使无效数据不可用。
控制时间可以进一步包括:将擦除停留时间减少至时间门限值以下,延迟擦除区域中的存储单元中的第二非擦除数据的操作以及用替换数据来替换第二非擦除数据。
本文进一步的方法实施例可以包括:执行对区域的部分擦除以破坏无效数据;区域中存储单元的至少部分可以被设置成非擦除状态。
根据另外的实施例,控制时间可以包括:擦除存储单元的区域以破坏无效数据;以及在利用替换数据覆写临时数据之前,利用临时数据来对存储单元的区域进行重编程。
如之前所述,方法实施例可以包括:将该区域标记为存储有无效数据。标记区域可以进一步包括:修改存储在区域中预定位置处的数据以指示该区域包含无效数据。方法实施例可以进一步包括利用预定位置处的数据的设置来确定该区域存储有无效数据。
如本文所述的第二示例实施例包括装置,该装置包括:包括多个非易失性存储器设备的非易失性存储器系统;以及处理逻辑,其被配置为:接收存储在非易失性存储器系统中的存储单元的区域中的数据存储有无效数据的通知;响应于该通知,将该区域标记为存储有无效数据;以及对该区域被设定成与随后用替换数据覆写存储单元中的无效数据相关联的擦除的时间量进行控制。
第二示例实施例可以连同以下一个或多个特征的任何一个来实现以产生下面的进一步的实施例:
在一个实施例中,时间表示在随后利用替换数据覆写之前存储单元被设置成擦除状态的时间量。处理逻辑可以进一步被配置为延迟擦除区域中存储单元中的无效数据的操作,以及用替换数据来替换无效数据。被延迟的操作将时间减少至预定的时间门限值以下。
根据另外的实施例,处理逻辑进一步被配置为:监测对于非易失性存储器系统中的存储空间的需求;以及响应于检测到在非易失性存储器系统中存储替换数据的需求而擦除存储区域中的无效数据。
在进一步的实施例中,处理逻辑进一步被配置为:在擦除无效数据之后,开始将替换数据存储在区域的存储单元中以确保存储单元被设置成擦除状态的时间在预定的时间门限值以下。
在另一示例实施例中,处理逻辑进一步被配置为:降低与存储在存储单元中的替换数据相关联的固有电荷损耗率;固有电荷损耗率取决于在将替换数据存储在存储单元中之前存储单元的设置被设置成擦除状态的时间量。
在进一步的实施例中,处理逻辑进一步被配置为:将存储单元的设置维持在存储无效数据的先前编程状态,直至接收到擦除存储单元的命令为止,该命令是响应于检测到非易失性存储器系统中的预留区带已经被重新分配为在其中存储新接收的数据的当前区带而被接收到的。
处理逻辑可以进一步被配置为:接收修改存储单元中的无效数据的命令;以及响应于接收到该命令,将区域中的数据单元的设置的少于全部的部分修改成非擦除状态。
根据另外的实施例,处理逻辑可以进一步被配置为:将区域中第一组单元的设置从第一非擦除状态变成第二非擦除状态以使无效数据不可用。
根据另外的实施例,处理逻辑可以进一步被配置为:将时间减至时间门限值以下;延迟擦除区域中的存储单元中的第二非擦除数据的操作以及用替换数据来替换第二非擦除数据。
在另外的实施例中,处理逻辑可以进一步被配置为:执行区域的部分擦除以破坏无效数据,区域中的存储单元的至少一部分被设置成非擦除状态。
在一个实施例中,处理逻辑进一步被配置为:擦除存储单元的区域以破坏无效数据;以及在利用替换数据覆写临时数据之前,利用临时数据来对存储单元的区域进行编程。
计算机系统可以被配置为包含该装置。这种计算机系统可以被配置为包括被配置为与处理逻辑通信并且将相对应的数据存储在存储器系统中的主机计算机处理器硬件。
如本文所述的非易失性存储器系统可以是计算机系统具有访问权的固态驱动器。
如本文所述的计算机系统可以进一步包括显示屏,在该显示屏上至少部分地基于存储在固态驱动器中的相对应的数据来呈现图像。
如本文所述的第三示例实施例包括具有存储于其上的指令的计算机可读存储硬件(计算机可读存储介质),当指令由计算机处理器硬件来实施时,使得计算机处理器硬件执行一个或多个操作。操作可以包括:响应于接收到存储在非易失性存储器系统中的存储单元的区域中的数据存储有无效数据的通知,将该区域标记为存储有无效数据;以及对存储单元的区域处于与随后用替换数据覆写存储单元中的无效数据相关联的擦除状态的时间进行控制。
第三示例实施例能够连同以下一个或多个特征中的任何一个来实现以产生再另外的以下实施例:
根据另一计算机可读存储介质实施例,该时间表示在随后用替换数据覆写之前将存储单元设置成擦除状态的时间量。控制时间包括:延迟擦除区域中的存储单元中的无效数据的操作以及用替换数据来替换无效数据,被延迟的操作将时间减少至预定的时间门限值以下。
根据另一实施例,计算机可读存储介质包括支持如下操作的指令:监测对于非易失性存储器系统中的存储空间的需求;以及响应于检测到对于将替换数据存储在非易失性存储器系统中的需求而擦除存储区域中的无效数据。
根据另一实施例,计算机可读存储介质包括支持如下操作的指令:在擦除无效数据之后,开始将替换数据存储在区域的存储单元中以确保存储单元被设置成擦除状态的时间在预定的时间门限值以下。
根据另一实施例,计算机可读存储介质包括支持如下操作的指令:降低与存储在存储单元中的替换数据相关联的固有电荷损耗率,该固有电荷损耗率取决于在将替换数据存储在存储单元中之前存储单元的设置被设置成擦除状态的时间量。
根据另一实施例,计算机可读存储介质包括支持如下操作的指令:将存储单元的设置维持在存储无效数据的先前编程状态,直到接收到擦除存储单元的命令为止,该命令是响应于检测到非易失性存储器系统中的预留区带已被重新分配为在其中存储新接收的数据的当前区带而被接收到的;以及将存储单元的擦除区域指定为预留区带。
根据另一实施例,计算机可读存储介质包括支持如下操作的指令:接收修改存储单元中的无效数据的命令;以及响应于接收到该命令,将区域中存储单元的设置的少于全部的部分修改为在非擦除状态内,在该状态下,无效数据变坏。
根据另一实施例,计算机可读存储介质包括支持如下操作的指令:将区域中的第一组单元的设置从第一非擦除状态变成第二非擦除状态以使无效数据不可用。
根据另一实施例,计算机可读存储介质包括支持如下操作的指令:增大与存储单元相关联的擦除门限值;以及将存储单元的设置修改成落在由增大的擦除门限值所限定的范围内。
根据另一实施例,计算机可读存储介质包括支持如下操作的指令:执行区域的部分擦除以破坏无效数据。
根据另一实施例,计算机可读存储介质包括支持如下操作的指令:擦除存储单元的区域以破坏无效数据;以及在利用替换数据对临时数据进行覆写之前,利用临时数据来对存储单元的区域进行编程。
根据另一实施例,计算机可读存储介质包括支持如下操作的指令:降低与存储在存储单元中的替换数据相关联的固有电荷损耗率。
根据另一实施例,计算机可读存储介质包括支持如下操作的指令:将时间控制在门限值以下。
根据另一实施例,计算机可读存储介质包括支持如下操作的指令:修改存储在区域中的预定位置处的数据以指示该区域包含无效数据;以及利用在预定位置处的数据的设置来确定该区域存储有无效数据。
如本文所述的第四示例实施例包括一种用于管理时间的系统,该系统包括:用于接收存储在非易失性存储器系统中的存储单元的区域中的数据存储有无效数据的通知的单元;用于响应于该通知而将该区域标记为存储有无效数据的单元;以及用于对区域被设定成与随后用替换数据覆写存储单元中的无效数据相关联的擦除的时间量进行控制的单元。
第四示例实施例可以连同以下一个或多个特征中的任何一个实现以产生以下再另外的实施例:
在一个或多个示例实施例中,时间表示在随后用替换数据覆写存储单元之前存储单元被设置成擦除状态的时间量。控制时间包括:延迟擦除区域中的存储单元中的无效数据的操作以及利用替换数据来替换无效数据,被延迟的操作将时间减少至预定的时间门限值以下。
在一个或多个示例实施例中,系统进一步包括:用于监测对于非易失性存储器系统中的存储空间的需求的单元;以及用于响应于检测到将替换数据存储在非易失性存储器系统中的需求而擦除存储区域中的无效数据的单元。
在一个或多个示例实施例中,该系统进一步包括:用于在擦除无效数据之后开始将替换数据存储在区域的存储单元中以确保存储单元被设置成擦除状态的时间在预定的时间门限值以下的单元。
在一个或多个示例实施例中,该系统进一步包括:用于降低与存储在存储单元中的替换数据相关联的固有电荷损耗率的单元,该固有电荷损耗率取决于在将替换数据存储在存储单元中之前存储单元的设置被设置成擦除状态的时间量。
在一个或多个示例实施例中,该系统进一步包括:用于将存储单元的设置维持在存储无效数据的先前编程状态,直到接收到擦除存储单元的命令为止的单元,该命令是响应于检测到非易失性存储器系统中的预留区带已经被重新分配为在其中存储新接收到的数据的当前区带而被接收到的;以及用于将存储单元的擦除区域指定为预留区带的单元。
在一个或多个示例实施例中,该系统进一步包括:用于接收修改存储单元中的无效数据的命令的单元;以及用于将区域中的存储单元的设置的少于全部的部分修改成在非擦除状态内的单元,在该非擦除状态下,无效数据响应于接收到该命令而变坏。
在一个或多个示例实施例中,该系统进一步包括:用于将区域中的第一组单元的设置从第一非擦除状态变成第二非擦除状态以使无效数据不可用的单元。
在一个或多个示例实施例中,该系统进一步包括:用于增大与存储单元相关联的擦除门限值的单元;以及用于将存储单元的设置修改成落在由增大的擦除门限值所限定的范围内的单元。
在一个或多个示例性实施例中,该系统进一步包括:用于执行区域的部分擦除以破坏无效数据的单元。
本文所描述的资源的任一个可以包括一个或多个计算机化设备、计算机系统、服务器、基站、无线通信装备、通信管理系统、工作站、手持式或膝上型计算机等,以实施和/或支持本文所公开的任何或全部方法操作。换言之,一个或多个计算机化设备或处理器能够被编程和/或被配置为如本文所说明的那样操作以实施不同的实施例。
本文其他的实施例包括软件程序、固件、逻辑等,以执行如本文所公开的操作。一个这样的实施例包括计算机程序产品,其包括非暂时性计算机可读存储介质(即,任意计算机可读硬件存储介质),其上编码有用于后续执行的软件指令。所述指令在具有一个或多个处理器、和/或程序的计算机化设备中时,使得处理器执行本文所公开的操作。这样的布置可以被提供为软件、固件、代码、指令、数据(例如,数据结构)等,其被布置或编码在非暂时性计算机可读存储介质上,诸如光学介质(例如,CD-ROM)、软盘、硬盘、存储器等,或者其他的诸如在一个或多个ROM、RAM、PROM等中的固件或短码等的介质,或者被提供为专用集成电路(ASIC)中的逻辑,等等。软件或固件或其他这样的配置可以被安装到计算机化设备上以使得该计算机化设备执行本文所说明的技术。
因此,本文的实施例涉及到支持如本文所述的操作的装置、方法、系统、计算机程序产品等。
一个实施例包括计算机可读存储介质和/或系统,其上存储有指令、逻辑等,用来管理包括一个或多个非易失性存储器设备的存储器系统中的数据。所述指令和/或逻辑当由相应的计算机的至少一个处理器设备执行时,使得该至少一个处理器设备:接收存储在非易失性存储器系统中的存储单元的区域中的数据存储有无效数据的通知;响应于该通知,将该区域标记为存储有无效数据;以及对与利用替换数据覆写存储单元中的无效数据相关联的时间进行控制。
注意,如本文所论述的任何处理可以以任何适合的次序来执行。
应当理解,如本文所述的装置、系统、方法、装置、在计算机可读存储介质上的指令等也可以严格地被实现为软件程序、固件,实现为软件、硬件和/或固件的混合,或者仅单独实现为硬件,例如在处理器设备内、在操作系统内、或者在软件应用内等等。
另外,注意的是,尽管可能在本公开的不同地方论述了本文中不同的特征、技术、配置等中的每一个,但是目的在于,在适当情况下,各个概念能够可选地彼此独立地执行或者彼此组合地执行。所公开特征的任何置换是可能的。因此,可以以多种方式来实现和看待如本文所描述的一个或多个实施例。
另外要注意的是,本文的技术非常适合用于包括一个或多个非易失性存储器设备的存储器系统中。然而,应当注意,本文的实施例不限于在这种应用中使用,而且本文所论述的技术同样非常适合于其他应用。
虽然已经参考本发明的优选实施例特别地示出和描述了细节,但是本领域技术人员将理解的是,可以在其中做出形式和细节上的改变,而不偏离如随附权利要求书限定的本申请的精神和范围。这些变型旨在由本申请的范围涵盖。因此,对本申请实施例的前面的描述不是要进行限制。而是,在下面的权利要求书中呈现对本文实施例的任何限定。

Claims (18)

1.一种存储器系统,包括:
非易失性存储单元;以及
逻辑,其用于:
响应于存储在存储单元的区域中的数据是无效数据的通知:
将所述区域标记为存储有无效数据;
延迟擦除所述区域的操作,直到接收到利用其它数据来重新编程所述区域的命令;以及
擦除所述区域并且利用所述其它数据来对所擦除的区域进行编程。
2.如权利要求1所述的存储器系统,其中,所述逻辑用于:
将所述存储单元处于擦除状态的时间限制成在预定的时间门限值以下。
3.如权利要求1所述的存储器系统,其中,所述逻辑用于:
在接收到所述命令之前,擦除所述区域并且利用临时数据来对所擦除的区域进行编程。
4.如权利要求1所述的存储器系统,其中,用于标记所述区域的逻辑用于:
将所述区域的标识存储在列表中,所述列表被存储在所述存储单元中。
5.如权利要求1所述的存储器系统,其中,用于标记所述区域的逻辑用于:
修改存储在所述区域中的预定位置处的数据,以指示所述区域包括无效数据。
6.如权利要求2所述的存储器系统,其中,用于限制所述存储单元处于所述擦除状态的时间的逻辑用于:
启动定时器来跟踪所述存储单元的所述区域处于所述擦除状态的时间量。
7.如权利要求1所述的存储器系统,其中,所述存储单元包括NAND闪存单元。
8.如权利要求1所述的存储器系统,其中,所述存储器系统包括多个NAND闪存设备,其包括所述非易失性存储单元,每个NAND闪存设备包括多个平面。
9.一种计算系统,包括:
存储器系统,包括:
非易失性存储单元;以及
逻辑,其用于:
响应于存储在存储单元的区域中的数据是无效数据的通知:
将所述区域标记为存储有无效数据;
延迟擦除所述区域的操作,直到接收到利用其它数据来重新编程所述区域的命令;以及
擦除所述区域并且利用所述其它数据来对所擦除的区域进行编程;以及
主机计算机处理器硬件,其被配置为与所述存储器系统的所述逻辑进行通信,以访问所述存储单元中的数据。
10.如权利要求9所述的计算系统,其中,所述逻辑用于:
将所述存储单元处于擦除状态的时间限制成在预定的时间门限值以下。
11.如权利要求9所述的计算系统,其中,所述逻辑用于:
在接收到所述命令之前,擦除所述区域并且利用临时数据来对所擦除的区域进行编程。
12.如权利要求9所述的计算系统,其中,用于标记所述区域的逻辑用于:
将所述区域的标识存储在列表中,所述列表被存储在所述存储单元中。
13.如权利要求9所述的计算系统,其中,用于标记所述区域的逻辑用于:
修改存储在所述区域中的预定位置处的数据,以指示所述区域包括无效数据。
14.如权利要求10所述的计算系统,其中,用于限制所述存储单元处于所述擦除状态的时间的逻辑用于:
启动定时器来跟踪所述存储单元的所述区域处于所述擦除状态的时间量。
15.如权利要求9所述的计算系统,其中,所述存储单元包括NAND闪存单元。
16.如权利要求9所述的计算系统,其中,所述存储器系统包括多个NAND闪存设备,所述NAND闪存设备包括所述非易失性存储单元,所述NAND闪存设备中的每一个包括多个平面。
17.非暂时性计算机可读介质,其上存储有指令,所述指令在由处理电路执行时,使得所述处理电路执行以下操作:
响应于存储在存储器系统中的存储单元的区域中的数据是无效数据的通知:
将所述区域标记为存储有无效数据;
延迟擦除所述区域的操作,直到接收到利用其它数据来重新编程所述区域的命令;以及
擦除所述区域并且利用所述其它数据来对所擦除的区域进行编程。
18.如权利要求17所述的非暂时性计算机可读介质,其中,所述指令在由处理电路执行时,使得所述处理电路进一步执行以下操作:
将所述存储单元处于擦除状态的时间限制成在预定的时间门限值以下。
CN201910030866.XA 2013-07-16 2014-07-16 存储器系统中的擦除管理 Active CN110047546B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910030866.XA CN110047546B (zh) 2013-07-16 2014-07-16 存储器系统中的擦除管理

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US13/943,762 US9483397B2 (en) 2013-07-16 2013-07-16 Erase management in memory systems
US13/943,762 2013-07-16
PCT/US2014/046849 WO2015009827A1 (en) 2013-07-16 2014-07-16 Erase management in memory systems
CN201480034413.XA CN105340020B (zh) 2013-07-16 2014-07-16 存储器系统中的擦除管理
CN201910030866.XA CN110047546B (zh) 2013-07-16 2014-07-16 存储器系统中的擦除管理

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201480034413.XA Division CN105340020B (zh) 2013-07-16 2014-07-16 存储器系统中的擦除管理

Publications (2)

Publication Number Publication Date
CN110047546A CN110047546A (zh) 2019-07-23
CN110047546B true CN110047546B (zh) 2023-04-04

Family

ID=52344556

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201480034413.XA Active CN105340020B (zh) 2013-07-16 2014-07-16 存储器系统中的擦除管理
CN201910030866.XA Active CN110047546B (zh) 2013-07-16 2014-07-16 存储器系统中的擦除管理

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201480034413.XA Active CN105340020B (zh) 2013-07-16 2014-07-16 存储器系统中的擦除管理

Country Status (8)

Country Link
US (1) US9483397B2 (zh)
EP (2) EP3022740B1 (zh)
JP (1) JP6112595B2 (zh)
KR (1) KR101686376B1 (zh)
CN (2) CN105340020B (zh)
BR (2) BR122018075830B1 (zh)
RU (1) RU2638006C2 (zh)
WO (1) WO2015009827A1 (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9390003B2 (en) * 2013-12-09 2016-07-12 International Business Machines Corporation Retirement of physical memory based on dwell time
US9274866B2 (en) * 2013-12-09 2016-03-01 International Business Machines Corporation Programming non-volatile memory using a relaxed dwell time
US10019179B2 (en) * 2015-10-16 2018-07-10 Toshiba Memory Corporation Memory device that writes data into a block based on time passage since erasure of data from the block
JP6765322B2 (ja) * 2017-02-28 2020-10-07 キオクシア株式会社 メモリシステムおよび制御方法
JP6765321B2 (ja) * 2017-02-28 2020-10-07 キオクシア株式会社 メモリシステムおよび制御方法
CN113641630A (zh) * 2017-03-27 2021-11-12 珠海极海半导体有限公司 一种flash存储器
KR102611345B1 (ko) * 2018-07-31 2023-12-08 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
US10628076B1 (en) * 2018-10-01 2020-04-21 Micron Technology, Inc. Data erasure in memory sub-systems
CN109920462B (zh) * 2019-03-01 2021-01-22 中国科学院微电子研究所 一种数据写入控制电路和控制方法
JP2020198128A (ja) * 2020-08-31 2020-12-10 キオクシア株式会社 メモリシステム
JP7132291B2 (ja) * 2020-08-31 2022-09-06 キオクシア株式会社 メモリシステムおよび制御方法
US11734193B2 (en) * 2020-12-14 2023-08-22 Micron Technology, Inc. Exclusion regions for host-side memory address translation
CN112908392B (zh) * 2021-02-09 2023-09-15 东芯半导体股份有限公司 控制非易失性存储器参数的控制方法
US11550955B1 (en) * 2021-07-20 2023-01-10 Red Hat, Inc. Automatically anonymizing data in a distributed storage system
CN113835970B (zh) * 2021-10-09 2022-05-10 南阳理工学院 一种计算机存储器优化装置及其优化方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5860124A (en) * 1996-09-30 1999-01-12 Intel Corporation Method for performing a continuous over-write of a file in nonvolatile memory
CN1902599A (zh) * 2003-12-30 2007-01-24 桑迪士克股份有限公司 具有大型擦除区块的非易失性存储器系统的管理
CN101354715A (zh) * 2007-02-13 2009-01-28 三星电子株式会社 用于操作数据处理系统的系统、方法和计算机程序产品
WO2013030866A1 (en) * 2011-08-29 2013-03-07 Hitachi, Ltd. Semiconductor storage device comprising electrically rewritable nonvolatile semiconductor memory

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2582487B2 (ja) * 1991-07-12 1997-02-19 インターナショナル・ビジネス・マシーンズ・コーポレイション 半導体メモリを用いた外部記憶システム及びその制御方法
US5808937A (en) * 1994-12-16 1998-09-15 National Semiconductor Corporation Self-convergent method for programming FLASH and EEPROM memory cells that moves the threshold voltage from an erased threshold voltage range to one of a plurality of programmed threshold voltage ranges
JP2004240660A (ja) * 2003-02-05 2004-08-26 Matsushita Electric Ind Co Ltd 不揮発性メモリ装置の制御方法
US7873885B1 (en) * 2004-01-20 2011-01-18 Super Talent Electronics, Inc. SSD test systems and methods
US20060002197A1 (en) 2004-06-30 2006-01-05 Rudelic John C Method and apparatus to detect invalid data in a nonvolatile memory following a loss of power
US7783845B2 (en) * 2005-11-14 2010-08-24 Sandisk Corporation Structures for the management of erase operations in non-volatile memories
KR100848315B1 (ko) * 2005-12-08 2008-07-24 한국전자통신연구원 이중 저널링을 이용한 데이터 저장 공간 확보 방법
US20080282024A1 (en) * 2007-05-09 2008-11-13 Sudeep Biswas Management of erase operations in storage devices based on flash memories
JP4461170B2 (ja) * 2007-12-28 2010-05-12 株式会社東芝 メモリシステム
JP2009252255A (ja) * 2008-04-01 2009-10-29 Renesas Technology Corp 不揮発性半導体記憶装置
US7979626B2 (en) * 2008-05-13 2011-07-12 Microsoft Corporation Flash recovery employing transaction log
US8040744B2 (en) * 2009-01-05 2011-10-18 Sandisk Technologies Inc. Spare block management of non-volatile memories
US7907449B2 (en) * 2009-04-09 2011-03-15 Sandisk Corporation Two pass erase for non-volatile storage
US8166233B2 (en) * 2009-07-24 2012-04-24 Lsi Corporation Garbage collection for solid state disks
TWI457940B (zh) 2009-05-15 2014-10-21 Macronix Int Co Ltd 區塊為基礎快閃記憶體之位元組存取
RU90233U1 (ru) * 2009-08-31 2009-12-27 Федеральное государственное унитарное предприятие "18 Центральный научно-исследовательский институт" Накопитель с контролем местоположения
EP2302638B1 (fr) * 2009-09-21 2013-04-17 STMicroelectronics (Rousset) SAS Procédé d'écriture et de lecture de données dans une mémoire non volatile, au moyen de métadonnées
US8271719B2 (en) 2009-10-29 2012-09-18 Freescale Semiconductor, Inc. Non-volatile memory controller device and method therefor
US8296506B2 (en) 2009-11-09 2012-10-23 Lite-On It Corporation Method for managing a non-violate memory and computer readable medium thereof
US8677203B1 (en) * 2010-01-11 2014-03-18 Apple Inc. Redundant data storage schemes for multi-die memory systems
TWI489466B (zh) 2011-06-15 2015-06-21 Phison Electronics Corp 記憶體抹除方法、記憶體控制器與記憶體儲存裝置
JP4988054B2 (ja) * 2011-08-12 2012-08-01 株式会社東芝 メモリシステム
US9274937B2 (en) * 2011-12-22 2016-03-01 Longitude Enterprise Flash S.A.R.L. Systems, methods, and interfaces for vector input/output operations

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5860124A (en) * 1996-09-30 1999-01-12 Intel Corporation Method for performing a continuous over-write of a file in nonvolatile memory
CN1902599A (zh) * 2003-12-30 2007-01-24 桑迪士克股份有限公司 具有大型擦除区块的非易失性存储器系统的管理
CN101354715A (zh) * 2007-02-13 2009-01-28 三星电子株式会社 用于操作数据处理系统的系统、方法和计算机程序产品
WO2013030866A1 (en) * 2011-08-29 2013-03-07 Hitachi, Ltd. Semiconductor storage device comprising electrically rewritable nonvolatile semiconductor memory

Also Published As

Publication number Publication date
EP3489956A1 (en) 2019-05-29
JP6112595B2 (ja) 2017-04-12
EP3022740A4 (en) 2017-03-08
US9483397B2 (en) 2016-11-01
EP3022740B1 (en) 2019-03-06
WO2015009827A1 (en) 2015-01-22
BR112015031202A2 (pt) 2017-07-25
RU2015154180A (ru) 2017-06-21
KR101686376B1 (ko) 2016-12-13
CN105340020A (zh) 2016-02-17
JP2016525240A (ja) 2016-08-22
RU2638006C2 (ru) 2017-12-08
CN105340020B (zh) 2019-08-20
BR112015031202B1 (pt) 2022-06-14
EP3022740A1 (en) 2016-05-25
US20150026386A1 (en) 2015-01-22
EP3489956B1 (en) 2021-09-08
KR20160003720A (ko) 2016-01-11
CN110047546A (zh) 2019-07-23
BR122018075830B1 (pt) 2023-11-07

Similar Documents

Publication Publication Date Title
CN110047546B (zh) 存储器系统中的擦除管理
US10891225B2 (en) Host- directed sanitization of memory
US9645894B2 (en) Data storage device and flash memory control method
TWI597605B (zh) 用於資料儲存裝置的損耗平均方法
TWI507871B (zh) 資料儲存元件、記憶體系統以及使用非揮發性記憶體元件之計算系統
US9298608B2 (en) Biasing for wear leveling in storage systems
CN108369818B (zh) 一种闪存设备的刷新方法和装置
US9996297B2 (en) Hot-cold data separation method in flash translation layer
CN111752487B (zh) 一种数据恢复方法、装置及固态硬盘
US9152498B2 (en) Raid storage systems having arrays of solid-state drives and methods of operation
KR100672996B1 (ko) 메타 데이터가 저장되는 에프램을 포함하는 메모리 장치
JP2012203443A (ja) メモリシステムおよびメモリシステムの制御方法
US9213634B2 (en) Efficient reuse of segments in nonoverwrite storage systems
US9639463B1 (en) Heuristic aware garbage collection scheme in storage systems
US10254979B1 (en) Relocating or aborting a block of data by a host, based on media policies managed by a storage device
US11886741B2 (en) Method and storage device for improving NAND flash memory performance for intensive read workloads

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