CN103985409B - 对于意外功率损失的数据保护 - Google Patents
对于意外功率损失的数据保护 Download PDFInfo
- Publication number
- CN103985409B CN103985409B CN201410045201.3A CN201410045201A CN103985409B CN 103985409 B CN103985409 B CN 103985409B CN 201410045201 A CN201410045201 A CN 201410045201A CN 103985409 B CN103985409 B CN 103985409B
- Authority
- CN
- China
- Prior art keywords
- data
- storage
- page
- buffer
- main storage
- 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
Links
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C5/00—Details of stores covered by group G11C11/00
- G11C5/14—Power supply arrangements, e.g. power down, chip selection or deselection, layout of wirings or power grids, or multiple supply levels
- G11C5/143—Detection of memory cassette insertion or removal; Continuity checks of supply or ground lines; Detection of supply variations, interruptions or levels ; Switching between alternative supplies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/16—Protection against loss of memory contents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/005—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor comprising combined but independently operative RAM-ROM, RAM-PROM, RAM-EPROM cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/24—Memory cell safety or protection circuits, e.g. arrangements for preventing inadvertent reading or writing; Status cells; Test cells
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Power Engineering (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请公开了对于意外功率损失的数据保护。数据存储设备接收写入数据命令和数据。在所述存储设备的缓冲器中存储数据。以及在将数据存储在缓冲器中之后,发出命令完成状态指示。在发出所述命令完成状态指示之后,将数据存储在所述存储设备的主存储器中。所述主存储器包括第一类型的非易失性存储器,以及所述缓冲器包括第二类型的非易失性存储器,所述第二类型的非易失性存储器不同于所述第一类型的非易失性存储器。
Description
发明概述
段落1.一种本文所描述的方法,包括:
在数据存储设备接收写入数据命令和数据;
在所述存储设备的缓冲器中存储数据;
以及在将数据存储在缓冲器中之后,发出命令完成状态指示;
在发出所述命令完成状态指示之后,将数据存储在所述存储设备的主存储器中,其中所述主存储器包括第一类型的非易失性存储器,所述缓冲器包括第二类型的非易失性存储器,所述第二类型的非易失性存储器不同于所述第一类型的非易失性存储器。
段落2.如段落1所述的方法,其中所述第二类型的非易失性存储器具有比第一类型的非易失性存储器更快的访问时间。
段落3.如段落1-2中的任何所述的方法,其中:
在所述主存储器数据包括在闪速存储器中存储数据,以及
在所述缓冲器中存储数据包括:在STRAM、PCRAM、RRAM和NVSRAM的一个或多个中存储数据。
段落4.如段落1-3中的任何所述的方法,进一步包括:
在缓冲器中存储映射元数据,所述映射元数据包括在所述主存储器中数据的逻辑块地址和数据的物理地址之间的映射信息,以及
在发出命令完成状态指示之后,在所述主存储器中存储所述映射元数据。
段落5.如段落1-4中的任何所述的方法,进一步包括:
在所述缓冲器中积累多次写入数据命令的数据,直到在所述缓冲器中已积累阈值数据量,以及
在所述缓冲器中已积累阈值数据量之后,在所述主存储器内存储数据。
段落6.如段落1-5中的任何所述的方法,进一步包括:
所述主存储器包括闪速存储器,以及
所述积累数据的阈值量是数据的一个逻辑页。
段落7.如段落1-5中的任何所述的方法,进一步包括:
在段落5中所述的方法,其中:
所述主存储器包括闪速存储器,以及
所述积累数据的阈值量是数据的一个物理页面。
段落8.如段落1-5中的任何所述的方法,其中所述主存储器包括多级闪速存储器,以及所述积累数据的阈值量足以使积累数据的至少一个页面被存储在闪速存储器中;以及
进一步包括:
从存储至少一个页面的所述主存储器的至少一个块中,从每个物理页读取一个或多个页;
在所述缓冲器中存储其他页面,以及
在至少一个页面已经被积累之后,在主存储器中的物理页面中存储页面和其它页面。
段落9.如段落8所述的方法,其中在积累页之前读取其他页面。
段落10.如段落8所述的方法,其中在积累页期间读取所述其他页面。
段落11.如段落1-10中的任何所述的方法,进一步包括:
计数所述数据存储设备内的逻辑块区域已被写入的次数;
在所述缓冲器中积累所述多次写入数据命令的数据,以及
根据所述次数确定所述逻辑块区域是否不频繁写入或频繁写入;以及
在存储逻辑块的频繁写入区域的数据之前,将逻辑块的不频繁写入区域的数据存储到主存储器中。
段落12.如段落1-11中的任何所述的方法,进一步包括:对提供所述写入操作的状态的元数据进行更新。
段落13.如段落12中所述的方法,其中更新所述元数据包括:在接收所述写入数据命令之后,更新所述元数据以指示写入操作正在进行中。
段落14.如段落12中所述的方法,其中更新所述元数据包括:更新所述元数据以指示所述数据已被接收。
段落15.如段落12中所述的方法,其中更新所述元数据包括:在所述主存储器中存储所述数据之后,更新所述元数据以指示写入操作完成。
段落16.一种设备,包括:
接口,经被配置以接收写入数据命令和数据;
主存储器,包括第一类型的非易失性存储器;
缓冲器,包括不同于第一类型的非易失性存储器的第二类型的非易失性存储器,以及
控制器,经配置以:
使得所述数据被存储在所述缓冲器中;
在所述缓冲器中存储所述数据之后,发出指示写入数据命令已完成的命令完成状态指示;以及
在发出所述命令完成状态指示之后,使得所述数据存储在所述主存储器中。
段落17.如段落16所述的设备,其中第二内存类型包含如下的一个或多个:非易失性静态随机存取存储器(NVSRAM)、相变存储器(PCM),电阻式随机存取存储器(RRAM)、自旋力矩RAM中描述的设备(STRAM)和磁性RAM(MRAM)。
段落18.如段落16-17中任何所述的设备,其中,所述设备包括固态驱动器和第一存储器类型的闪速存储器。
段落19.如段落16-18中任何所述的设备,其中,所述设备包括混合驱动。
段落20.如段落16-19中任何所述的设备,其中,当在主存储器中存储数据时,所述控制器经被配置为预补偿写入干扰效果。
附图简述
图1是根据本文中讨论的实施例,包括数据存储设备的系统的框图;
图2提供根据一些实施例,操作数据存储设备以执行写入操作的过程的流程图;
图3是示出在写操作过程中包括存储数据并更新元数据的处理的流程图;
图4示出可在假想的2级存储器单元格中用于表示两位数据的可能电压电平;以及
图5示出根据一些实施例在存储在主存储器之前积累数据的处理。
发明详述
对于发送到数据存储设备(诸如硬盘驱动器)的数据的写入操作、成功接收和存储,固态驱动或混合磁盘驱动通常是公认的经由”命令完成”状态消息指示(CCI)的发送设备(例如,主机)。例如,具有易失性写入缓存禁用的串行连接SCSI的盘驱动器通常在数据被写入介质之后对于写入命令操作发送该消息。为了保持数据的完整性,希望在数据存储设备突然失去电源供给的情况下发送存储的数据也不会丢失。然而,为了提供最佳的系统吞吐量,即使从主机发送的数据还没有被存储在数据存储设备中的最终存储单元中,从数据存储设备向主机发送CCI也可是有益的。在数据存储在其最终存储器位置之前抢先发送CCI可有利于主机和数据存储设备的性能。数据通常保存在主机系统中,直到数据存储设备内发生故障的情况下从数据存储设备接收CCI。CCI的接收使得主机系统释放其数据缓冲器用于新工作。对于数据存储设备,抢先发送CCI潜在地使得由主机系统发送其他的新命令,增加并行处理命令和用于合并互补命令的可能性,例如遍布命令界限的顺序操作。然而,如果在CCI被发送给主机之后但在所述数据以及对应元数据被存储到非易失性存储器之前发生断电,数据的完整性可能受到危害。
虽然在数据被存储在其最终的非易失性存储器位置之前返回CCI的技术可提高数据吞吐量,该技术和避免数据丢失导致额外的电能存储元件,例如备用电池和/或电容能量存储。这些额外的能量存储组件被设计成为数据存储设备保持备用电源,其足以允许即使当存储数据时发生主电源损耗,数据存储操作可被完成。结合额外的硬件增加了设备的复杂性、成本和尺寸。
由于需要维持映射元数据来跟踪数据存储在主存储器中的位置而引入额外的复杂性。一般地,在大多数数据存储设备中存储的数据不直接在主存储器中的逻辑地址(由主机所用)和物理位置之间映射。相反,映射元数据跟踪逻辑块在主存储器的物理位置中的位置。即使在意外断电的情况下准确地保持映射元数据提高了数据存储设备的数据完整性。因为映射元数据被频繁更新,在快速、持久存储器中存储映射元数据是有帮助的。易失性存储器(诸如SRAM或DRAM)具有兼容映射元数据速度和耐用性的特点,但在断电情况下易易失并丢失它们的内容。在较慢的不耐用非易失性存储器中存储元数据增加了非易失性存储元件的写入扩增和磨损,并降低了性能。
本文所描述的实施例包括和主非易失性存储器相比具有更快存取时间和/或更高耐久性的辅助的非易失性存储器。在这些实施例中,辅助非易失性存储器充当主非易失性存储器的缓冲器,其中所述主非易失性存储器通常用作用户数据的最后存储位置。在这里所讨论的实施例中,在数据被存储到辅助非易失性存储器之后但在数据被存储到主存储器中之前,CCI从数据存储设备发送到主机。需要注意:术语”主存储器”和”辅助存储器”在本文中用于表示存储器的差异(例如,使用、容量、性能、存储类或类型等),而不是一定是顺序或偏好。
在一些存储设备配置中,主存储器是固态存储器,诸如NAND或NOR闪速存储器。闪速存储器通常指基于浮栅FET技术的电可擦除可编程存储器。闪速存储器正在成为越来越重要的存储技术,并已用作固态硬盘(SSD)中的主存储器。闪速存储器还用于集合混合驱动中的盘(旋转盘)存储器。在一些配置中,其中主存储器是闪存或硬盘,辅助存储器可以是比闪速存储器更快和/或更持久的非易失性存储器,诸如相变存储器(PCM),阻抗随机存取存储器(RRAM)、自旋力矩随机存取存储器(STRAM)和/或非易失性静态随机存取存储器(NVSRAM)。PCM和RRAM可以比NAND闪存几千倍更耐用(以重复编程周期计算),而且也是位可变。STRAM和NVRAM设备具有几乎无限的耐用性,以及也是位可变的。
图1是示出数据存储设备101和主机140的系统的框图。数据存储设备101包括非易失性主存储器110(例如,闪存、硬盘或其它非易失性存储器)以及非易失性辅助存储器120(例如,STRAM、PCRAM、RRAM、NVSRAM或其它类型的非易失性存储器)。主存储器110通常包括大量的数据存储位置111,以及辅助存储器120典型地包括较少的数据存储位置121。在许多配置中,辅助存储器120比主存储器具有更快的存取时间和/或更耐用。注意:主存储器可包括多种类型的存储器,诸如在混合驱动中一起使用的闪存和硬盘存储器。类似地,辅助存储器120也可以使用多个类型的存储器。
数据存储装置101包括耦合所述主存储器110以及辅助存储器120到主机140的控制器130,所述主存储器110包括大量的数据存储位置。控制器130控制对于主存储器110和辅助存储器120的读出和写入访问。例如,主机140可以向数据存储设备101发出写入命令,其中所述写入命令包括要被存储的数据以及数据的逻辑块地址(LBA)。控制器130从主机接收数据存储命令,并控制第二存储器120和主存储器110,以便从主机140发送的数据被存储在主存储器110中的最终目的地存储器位置111。如本文所使用的,术语数据的”最终目的地”指在执行数据存储命令的上下文中数据的最终目的地,即使主存储器中存储的数据不一定永久驻留在该最终目的地,并在执行数据存储命令之后可移动到主存储器的其他存储位置或其他位置,作为垃圾收集和/或其它设备操作的结果。作为被执行的数据存储操作的一部分,控制器130生成映射元数据,所述映射元数据将数据的主机LBA映射到主存储器110和/或辅助存储器120中的数据物理位置。此外,控制器130产生各种握手信号。所述握手信息被返回给主机140并指示数据存储命令的状态,如在图1中所示的CCI信号。
图2示出根据本文描述的各种实施例操作的数据存储设备的处理流程图。如上文所讨论地,数据存储装置包括主存储器和主要用作缓冲器的辅助存储器。主存储器包括第一类型的非易失性存储器,以及缓冲器包括第二类型的非易失性存储器,其中所述第二类型的非易失性存储器和所述第一类型的非易失性存储器相比具有更高访问速度和/或更高的耐久性。数据存储设备210从主机接收写入命令,请求数据被存储在数据存储设备中。数据最初存储220在缓冲器中。在数据被存储在缓冲器中之后,控制器向主机发送CCI命令230,其中,所述CCI命令向主机指示:写入命令中的数据已被存储。在CCI命令已被发送到主机之后,数据被存储240在主存储器中。
在一些配置中,数据存储设备可以选择性地在缓冲器中存储数据。例如,在某些情况下,写入命令可包括和/或控制器可确定:写入数据命令中的数据优先级。如果该数据的优先级低于预定阈值优先级,则控制器可以绕过缓冲器以及可直接将数据存储在主存储器中。如果该数据的优先级大于或等于所述阈值优先级时,则数据在被存储在主存储器之前首先被存储在缓冲器中。在某些情况下,希望在缓冲器中不确定地保留一些数据。例如,认为对于系统性能更重要的数据(诸如,用于经常读取的LBA的数据)可被保持在缓冲器中。作为另一个示例,优先于很少被重写的LBA的数据,频繁被重写的LBA的数据可以被保存在缓冲器中以减少磨损或提高性能。作为又一示例,在别处存储(备份)的数据和未在别处存储的数据相比具有较低的缓冲器保留优先级。在某些情况下,用户数据可被确定为是更重要的并因此比其他数据(诸如对于设备数据完整性不重要的内部驱动日志和日记)具有较高的优先级。
在一些实施例中,所述控制器计数数据存储设备内的逻辑块区域已被写入的次数。在缓冲器中积累来自多个写入数据命令的数据。控制器基于计数确定逻辑块区域是否被不频繁写入或频繁写入。控制器使得在频繁写入的LBA区域的缓冲数据之前存储不频繁写入的LBA区域的缓冲数据。
在图2所示的写入操作期间,控制器可以更新元数据,其中记录写入操作的进度。写入操作元数据可以被存储在缓冲器或其它非易失性存储器中,诸如控制器的非易失性寄存器(如果有的话)。例如,写入操作元数据可被更新以指示信息,诸如:写入操作在进行中、写入操作已完成、LBA和/或要存储的数据长度、在主存储器中存储收集的数据之前收集数据。
在大多数固态驱动设计中,由主机使用的逻辑块地址(LBA中)不直接映射到主存储器中的物理位置。控制器使用映射元数据以跟踪主机LBA的物理存储器位置。即使在意外的主机系统功率损耗的情况下准确地保持映射元数据有助于确保数据存储设备的数据完整性。为了降低电源中断期间丢失映射元数据的可能性,映射元数据可以被存储在非易失性存储器(例如,非易失性缓存器或其他的非易失性寄存器控制器(如果有的话))中,直到映射元数据被传输到主存储器中。
由于写入操作由控制器提供服务,因此通常频繁地更新写入操作元数据和映射元数据。在一些配置中,非易失性缓存器用于存储写入操作元数据和/或映射元数据。使用非易失性缓冲器在电源中断的情况下保护元数据以避免损失。如果该缓冲器具有比主存储器更快的存取时间,通过使用缓冲器可以最迅速地执行元数据的频繁更新。如果缓冲器具有有比主存储器更强大的耐用性,则对元数据的频繁更新减少主存储器的磨损。原子地执行对元数据的更新是有帮助的,其中原子地更新对应于以可能写入操作的最小增量更新元数据。如果元数据不能原子地递增,可以以写入操作的最小增量进行更新,将保持低于预定概率的数据损失风险。替代地或补充地,当元数据不能原子地更新时,信号量(实质上表示”更新正在进行-使用备用复制”)可被保持以跟踪并防止当元数据更新在进行时的电源损耗破坏。
图3提供在写入操作过程中示出包括存储数据和更新元数据的处理的流程图。根据图3所示的过程,控制器从主机接收305写入命令并启动写入操作。写入操作元数据任选地被更新310以指示写入操作正在进行中。在某些情况下,写入操作的元数据可以包括关于写入操作的附加信息,诸如写入操作的当前状态。数据从主机传输315以及数据被存储320在缓冲器中。在数据被存储在缓冲器中之后,写入操作元数据被更新325以指示该数据存储设备已经接收数据(并将向主机返回CCI状态)。所述控制器产生并发送330写入操作的CCI到主机。使用在非易失性缓存中安全存储的数据,控制器可以发起数据从缓冲器到主存储器的传输335。该传输335是根据控制器逻辑的判断。该逻辑可以选择推迟存储直到后来例如与其他进入数据合并所述数据。控制器可以存储340到主存储器的映射元数据。控制器更新345写入操作元数据以指示写入操作结束。如果映射元数据被写入到主存储器,对于存储器写入操作用于临时存储映射元数据的缓冲器位置不再被需要,并且被添加到可用缓冲器的存储器位置。当写入操作正在进行的标志被清零时,表明写入操作完成,对于写入操作使用或保留的缓冲器位置将返回到可用的缓冲器位置池。
在多级存储器中,一位以上的数据可以被存储在单元格中。对于将存储单元格组合为页的设备,诸如在NAND闪存设备中通常进行的操作,多个逻辑数据页可被存储在存储器的单个物理页中。存储在存储器的单个物理页中的这些多个逻辑数据页在此统称为伴随页。使用四个级别存储器作为示例,每4级存储器单元格可以存储两位信息。在将这些单元格配置为页的设备中,闪速存储器单元格的每个物理页可以存储两个逻辑(伴随)页。在一个配置中,第一逻辑页(表示为较低页)可以被存储在存储器单元格的物理页的存储器单元格的最高有效位(MSB),以及第二逻辑页(表示为较上页)可以被存储在存储器单元格的物理页的最低有效位(LSB)。可以多种方式将多级数据写入存储器单元格的物理页中。在一种情形中,通过将MSB存储在物理存储器单元格而首先存储较低页。在写入较低页之后,通过进一步改变物理存储器单元格的状态而将较较上页稍后存储到物理存储器单元格。
考虑在图4所示的假想的两级存储器单元格中表示两位数据的可能电压电平。在该示例中,电压电平V1对应于2比特的数据11(二进制),电压V2对应于2比特的数据10,电压V3对应于01,以及电压V4对应于00。在第一步,在写入Y(MSB)的两步处理中将数据YX写入到存储器单元格,接着在第二步写入X(LSB)。在第一步写入Y之后,存储器单元格的电压电平为V1(如果Y=1)或V3(如果Y=0)。在第二步,存储器单元格的电压电平保持在V1(如果YX=11)或电压电平变到V2(如果YX=10)或电压电平保持在V3(如果YX=01)或电压电平变到V4(如果YX=00)。
在某些情况下,可以单一步骤将数据写入到多级存储器单元格。例如,考虑图4的存储器单元格,在单一步骤处理中,如果YX=11,则存储器单元格的电压被带到(或留在)电平V1,如果YX=10,则存储器单元格的电压电平变到电平V2,如果YX=01,存储器单元格的电压电平被带到平V3,如果YX是00,则存储器单元的电压电平被带到电平V4。
在前面的示例中使用”电压电平等级”以记录数据是为了示范的目的。在其他示例中,数据可被存储和感测为磁状态、充电电平、电阻水平等,以及该技术仍然适用。
当在上面概述的两个步骤处理中数据被写入到物理存储器页面的伴随较低和较上页时,当对应的较上页面被存储在主存储器中期间发生电源损耗时存储在主存储器的较低页的数据可被损坏。为了减少这种类型的数据损坏的可能性,当来自写入数据命令的数据被存储在主存储器中的较上页时,相应的较低页被从主存储器读入缓冲器,以防止较上页编程期间由于电源损耗而损坏较低页的内容。当从主存储器读取较低页时,也可以对较低页执行纠错。
在某些情况下,如果在对主缓冲器的写入操作发生之前在缓冲器中累计一定量的数据可以是更有效的。例如,某些类型的存储器都写在预定单元中,例如,闪速存储器通常被写在页中。根据图5的处理,数据存储设备从主机接收520写入命令并在缓冲器中累积530来自写入命令的数据。数据累积继续540直到阈值量的数据被累计。所述阈值量可以对应于主存储器的写入操作的存储器单元。如果主存储器是多级存储器,可从写入命令累积数据,直到将被存储在主存储器写入单元的每个物理页的所有逻辑页(较下,较上和任何中间)被累积。
在某些情况下,在缓冲器中累积来自写入命令的数据之前,期间和/或之后,控制器可选地将该累积数据的伴随页从主存储器读取到缓冲器中。该可选的处理由虚线框510表示。注意:在本文所提供的流程图中,块的的排列不意味着暗示执行块中所描述处理的任何特定顺序。例如,虽然读取操作所示为在接收写入数据520的前面,该操作也可以同时或在接收写入数据520之后发生。当获得所需量的数据,通过从写入命令累积数据并可任选地通过从主存储器读取伴随页面,积累的数据页及其伴随页面被写入550到主存储器中。
在一些实施例中,当使用多级主存储器的情况下,逻辑数据页可以在写入处理中被写入到主存储器的物理页面,所述写入处理将较下页、较上页和任意数量的中间页分别写入主存储器的每个物理页面。可替换地,通过将每个存储器单元格直接转换到对应于在存储器单元格中存储的多位数据的电压电平,较下、较上和中间页可以被在单个步骤中被写入到主存储器页的物理页面。
某些类型的非存储器(诸如闪存)体验写入操作期间的干扰影响。例如,当附近的存储器单元格被写入时,存储在存储器单元格中的数据可以被改变。当这些类型的存储器被用作主存储器时,该数据可根据降低这些写入干扰影响的处理而写入到主存储器。
如前面所讨论地,在两步处理中,较低数据页可以首先被写入到物理页。在写入较下页时,其物理上邻近的相邻页之一是未编程的。之后,伴随上部页被编程。在较上页被编程时,物理上邻接的相邻页可以是未编程或编程为每个单元格仅1比特(仅其较下页被编程)。当相邻页被编程或仅部分编程时,被编程的页面对于相邻页的电荷电平的耦合效应是不补偿的。当相邻页最终完全编程时,之前编程页的电平可以转移。例如,在NAND闪存中,存储器单元格的浮置栅极的接近引起相邻单元格栅极之间的电容耦合,所述电容耦合转移存储器单元格以偏离他们的理想电平。
在一些实施例中,本文所述的非易失性缓冲器可以积累多个页面的数据,以及多个相邻页可以同时或以降低写入干扰效应的协调方式来进行编程。根据此处理,在完全编程页之前或同时,它的邻居页也被编程,但仅“柔和地”。在这种情况下,“柔和地”编程指相邻页面被“欠编程”到接近其目标值的充电水平,但低于其最终充电水平以允许其邻居需要的可能电平补偿。“柔和”编程邻居的目的在于:向相邻页赋予最终充电水平,以使其耦合效应在编程期间最大程度地补偿。相邻页的该协调编程允许写入操作预补偿潜在的写入干扰。本文所讨论的缓冲器可用于通过存储足够的数据量而促进预补偿写入操作,所述足够的数据量使得控制器”期待”将要编程的数据。然后,控制器可确定“柔和”编程的合适程度,该“柔和”编程将使得相邻页足够接近最终充电水平,以便引起写入干扰的耦合被显著地预补偿。
例如,考虑具有四个物理上相邻页面的假设NAND闪存:A、B、C和D(A和D是仅具有一个邻居的边缘页)。预补偿写入操作将工作如下:
1.对于页面A和B收集将被编程的数据。
2.柔和地编程B。
3.编程页面A到它的最终水平。
4.收集页面C的数据。
5.柔和地编程页面C。
6.编程页面B到它的最终水平。
7.收集页面D的数据。
8.柔和地编程页面D。
9.编程页面C到它的最终水平。
10.编程页面D到它的最终水平。
以上处理1-10可以重复两次,一次对于较低页面,依次对于较上逻辑页或可以应用到仅较上页。
在可替换处理中,在正常运行某个时间之前的某一点上,相邻位单元格的耦合被特征化。该特征化可用于确定耦合补偿系数,该耦合补偿系数可用于预补偿写入干扰影响。取决于耦合的可变性,存储的耦合系数数量可以与错误率的所需改进进行平衡。
在某些设计中,耦合系数可以被确定并用于当远离正编程单元格而编程位单元格多个页面(页面中的单元格到位单元格的侧面)以及多个位位置(之前和之后在相同页面字线中的单元格)时用于补偿写入干扰效应。可取决于页数而确定耦合系数以例如降低模具位置影响。
在一些实施方式中,在设备正常工作期间,写入处理的操作如下:
1.对于存储单元格和任何显著耦合的附近单元格收集要被存储的数据。
2.直到完全收集,在存储在缓冲器的最终目的地之前,存储并保持该数据。
3.当编程页面时,使用耦合系数和数据补偿每个存储器单元格的电平,以减轻相邻单元格的影响。
4.重复,直到存储所有数据。
下面的假设示例示出了根据一些实施例的预补偿写入操作。
假设假想的NAND闪速主存储器存储2位/单元格(4个电荷水平)。假设在制造期间确定相邻页引起每个单元格水平差异的2%的漂移。归一化单元格电荷等级是0.95、0.6、0.3和0.05伏特,对应于11、10、01和00的所存储数据位。
假设单元格1将被编程到01(具有0.3的标称电平)。不考虑相邻位单元格,该单元将被编程到0.3的电荷电平。
假设相邻但将要编程的页面包含存储数据00的相邻单元格(单元格2)。并不是将单元格编程到1至0.3的电平,执行如下补偿计算:
赔偿00页相邻单元格(单元格2)=+(0.3*0.02)=0.006
0.006(补偿值)+0.3(标称值)=0.306(新目标值)。
因此,单元格1将被编程到0.306的电荷电平(而不是0.3),以预补偿所述相邻单元格的(单元格2)未来编程电平。
在该实施方式中,补偿可只对于含有10和01值的单元格进行。具有11或00的单元格永远保持在最佳信号噪声比(SNR)的0.95/0.05值。
需要注意:已编程的单元格的影响也被进行补偿。因为这些单元格已经被编程,当编程单元格时它们的耦合效应将固有地被感测并用于补偿(后补偿)。上述处理的概述提供预补偿(例如,调整编程电压电平,以补偿由未编程单元格引起的写入干扰影响)和后补偿(调整编程电压电平,以补偿由以前编程的单元格引起的写入干扰影响)。
但是应当理解:这种详细描述只是说明性的,并且可以对这些实施例进行各种增补和/或修改,特别是在结构和部件配置和/或处理方面。因此,本发明的范围不应该由上面描述的具体实施例限制,而是应该由下面提出的权利要求书及其等效物来限定。
Claims (19)
1.一种用于数据保护的方法,包括:
数据存储设备接收写入数据命令和数据;
在所述存储设备的缓冲器中存储数据;
以及在将数据存储在缓冲器中之后,发出命令完成状态指示;
在发出所述命令完成状态指示之后,将数据存储在所述存储设备的主存储器中,其中所述主存储器包括第一类型的非易失性存储器,所述缓冲器包括第二类型的非易失性存储器,所述第二类型的非易失性存储器不同于所述第一类型的非易失性存储器,
其中,所述方法进一步包括:
在所述缓冲器中积累多次写入数据命令的数据,直到在所述缓冲器中已积累阈值数据量,以及
在所述缓冲器中已积累阈值数据量之后,在所述主存储器内在预定单元中存储积累的数据,
其中,所述主存储器包括多级闪速存储器,以及
当来自多次写入数据命令的数据被写入到所述主存储器中的物理存储器页面的伴随的较低和较上页中的较上页时,相应的较低页被从所述主存储器读入所述缓冲器,以防止所述较上页的编程期间由于电源损耗而损坏所述较低页的内容。
2.如权利要求1所述的方法,其中所述第二类型的非易失性存储器具有比第一类型的非易失性存储器更快的访问时间。
3.如权利要求1所述的方法,其中:
在所述主存储器中存储数据包括在闪速存储器中存储数据,以及
在所述缓冲器中存储数据包括:在STRAM、PCRAM、RRAM和NVSRAM的一个或多个中存储数据。
4.如权利要求1所述的方法,进一步包括:
在缓冲器中存储映射元数据,所述映射元数据包括在所述主存储器中数据的逻辑块地址和数据的物理地址之间的映射信息,以及
在发出命令完成状态指示之后,在所述主存储器中存储所述映射元数据。
5.如权利要求1所述的方法,其中:
所述积累数据的阈值量是数据的一个逻辑页。
6.如权利要求1所述的方法,其中:
所述积累数据的阈值量是数据的一个物理页面。
7.如权利要求1所述的方法,其中所述积累数据的阈值量足以使积累数据的至少一个伴随页面被存储在闪速存储器中;以及
进一步包括:
在存储积累的数据的至少一个伴随页面的所述主存储器的至少一个块中,从每个物理页读取一个或多个伴随页;
在所述缓冲器中存储所述一个或多个伴随页,以及
在积累的数据的至少一个伴随页面已经被积累之后,在主存储器中的物理页面中存储积累的数据的至少一个伴随页面。
8.如权利要求7所述的方法,其中在将来自多个写入数据命令的数据积累在缓冲器中之前读取积累数据的伴随页。
9.如权利要求7所述的方法,其中在将来自多个写入数据命令的数据积累在缓冲器中期间读取积累数据的伴随页。
10.如权利要求1所述的方法,进一步包括:
计数所述数据存储设备内的逻辑块区域已被写入的次数;
在所述缓冲器中积累所述多次写入数据命令的数据,以及
根据所述次数确定所述逻辑块区域是否不频繁写入或频繁写入;以及
在存储逻辑块的频繁写入区域的数据之前,将逻辑块的不频繁写入区域的数据存储到主存储器中。
11.如权利要求1所述的方法,进一步包括:对提供写入操作的状态的元数据进行更新。
12.如权利要求11所述的方法,其中更新所述元数据包括:在接收所述写入数据命令之后,更新所述元数据以指示写入操作正在进行中。
13.如权利要求11所述的方法,其中更新所述元数据包括:更新所述元数据以指示所述数据已被接收。
14.如权利要求11所述的方法,其中更新所述元数据包括:在所述主存储器中存储所述数据之后,更新所述元数据以指示写入操作完成。
15.一种用于数据保护的设备,包括:
接口,经被配置以接收写入数据命令和数据;
主存储器,包括第一类型的非易失性存储器;
缓冲器,包括不同于第一类型的非易失性存储器的第二类型的非易失性存储器,以及
控制器,经配置以:
使得所述数据被存储在所述缓冲器中;
在所述缓冲器中存储所述数据之后,发出指示写入数据命令已完成的命令完成状态指示;以及
在发出所述命令完成状态指示之后,使得所述数据存储在所述主存储器中,
其中,所述控制器进一步被配置成:
在所述缓冲器中积累多次写入数据命令的数据,直到在所述缓冲器中已积累阈值数据量,以及
在所述缓冲器中已积累阈值数据量之后,在所述主存储器内在预定单元中存储积累的数据,
其中,所述主存储器包括多级闪速存储器,以及
当来自多次写入数据命令的数据被写入到所述主存储器中的物理存储器页面的伴随的较低和较上页中的较上页时,相应的较低页被从所述主存储器读入所述缓冲器,以防止所述较上页的编程期间由于电源损耗而损坏所述较低页的内容。
16.如权利要求15所述的设备,其中所述第二类型的非易失性存储器包含如下的一个或多个:非易失性静态随机存取存储器(NVSRAM)、相变存储器(PCM),电阻式随机存取存储器(RRAM)、自旋力矩RAM(STRAM)和磁性RAM(MRAM)。
17.如权利要求15所述的设备,其中,所述设备包括固态驱动器并且所述第一类型的非易失性存储器包括闪速存储器。
18.如权利要求15所述的设备,其中,所述设备包括混合驱动器。
19.如权利要求15所述的设备,其中,当在主存储器中存储数据时,所述控制器经被配置为预补偿写入干扰影响。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/761,965 US20140219021A1 (en) | 2013-02-07 | 2013-02-07 | Data protection for unexpected power loss |
US13/761,965 | 2013-02-07 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103985409A CN103985409A (zh) | 2014-08-13 |
CN103985409B true CN103985409B (zh) | 2018-01-16 |
Family
ID=51259100
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410045201.3A Active CN103985409B (zh) | 2013-02-07 | 2014-02-07 | 对于意外功率损失的数据保护 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20140219021A1 (zh) |
JP (1) | JP6140621B2 (zh) |
KR (1) | KR101645983B1 (zh) |
CN (1) | CN103985409B (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9892798B2 (en) | 2012-09-11 | 2018-02-13 | Seagate Technology Llc | Data protection for unexpected power loss |
CN105512056A (zh) * | 2014-09-24 | 2016-04-20 | 中兴通讯股份有限公司 | 数据保存方法、装置及终端 |
US10198320B2 (en) | 2014-10-31 | 2019-02-05 | Hewlett-Packard Development Company, L.P. | Power-loss protection |
US9860153B2 (en) * | 2014-12-23 | 2018-01-02 | Intel Corporation | Technologies for protocol execution with aggregation and caching |
US10719236B2 (en) * | 2015-11-20 | 2020-07-21 | Arm Ltd. | Memory controller with non-volatile buffer for persistent memory operations |
US9983811B2 (en) * | 2016-05-25 | 2018-05-29 | Seagate Technology Llc | Save critical data upon power loss |
KR102611292B1 (ko) * | 2016-06-22 | 2023-12-11 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
KR102593178B1 (ko) * | 2016-08-19 | 2023-10-25 | 에스케이하이닉스 주식회사 | 메모리 장치, 이를 포함하는 메모리 시스템 및 이의 동작 방법 |
KR102392844B1 (ko) * | 2017-03-10 | 2022-05-03 | 삼성전자주식회사 | 메모리 컨트롤러 및 그것을 포함하는 저장 장치 |
CN107273767A (zh) * | 2017-05-19 | 2017-10-20 | 记忆科技(深圳)有限公司 | 一种固态硬盘数据保护方法及固态硬盘 |
JP7069811B2 (ja) | 2018-02-22 | 2022-05-18 | 富士通株式会社 | 情報処理装置及び情報処理方法 |
US11042451B2 (en) | 2018-12-14 | 2021-06-22 | International Business Machines Corporation | Restoring data lost from battery-backed cache |
CN110047537B (zh) * | 2019-04-09 | 2020-07-03 | 无锡科技职业学院 | 一种半导体存储装置及计算机系统 |
US10976795B2 (en) | 2019-04-30 | 2021-04-13 | Seagate Technology Llc | Centralized power loss management system for data storage devices |
US11762559B2 (en) | 2020-05-15 | 2023-09-19 | International Business Machines Corporation | Write sort management in a multiple storage controller data storage system |
US11580022B2 (en) * | 2020-05-15 | 2023-02-14 | International Business Machines Corporation | Write sort management in a multiple storage controller data storage system |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1180430A (zh) * | 1995-03-31 | 1998-04-29 | 三星电子株式会社 | 不按顺序执行读写指令的存储器控制器 |
CN101042674A (zh) * | 2006-03-07 | 2007-09-26 | 松下电器产业株式会社 | 非易失性存储装置及其数据写入方法 |
CN101202106A (zh) * | 2006-09-22 | 2008-06-18 | 三星电子株式会社 | 非易失性存储系统及其相应的编程方法 |
CN101246738A (zh) * | 2007-01-03 | 2008-08-20 | 三星电子株式会社 | 具有备份电路的存储系统及编程方法 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6476346A (en) * | 1987-09-18 | 1989-03-22 | Fujitsu Ltd | Disk cache control system |
JP4713867B2 (ja) * | 2004-09-22 | 2011-06-29 | 株式会社東芝 | メモリコントローラ,メモリ装置及びメモリコントローラの制御方法 |
JP2006338370A (ja) * | 2005-06-02 | 2006-12-14 | Toshiba Corp | メモリシステム |
JP5142478B2 (ja) * | 2006-04-13 | 2013-02-13 | 株式会社東芝 | 半導体記憶装置 |
KR20070115485A (ko) * | 2006-06-02 | 2007-12-06 | 삼성전자주식회사 | 캐쉬 버퍼 관리 방법 및 이를 이용한 디스크 드라이브 |
JP4337873B2 (ja) * | 2006-12-25 | 2009-09-30 | ソニー株式会社 | メモリカード及びこの制御装置並びにデータ送受信システム |
US20090093182A1 (en) * | 2007-10-05 | 2009-04-09 | Cranium, Inc. | Structure building toy |
WO2009084724A1 (en) * | 2007-12-28 | 2009-07-09 | Kabushiki Kaisha Toshiba | Semiconductor storage device |
JP2009181314A (ja) * | 2008-01-30 | 2009-08-13 | Toshiba Corp | 情報記録装置およびその制御方法 |
US8060719B2 (en) * | 2008-05-28 | 2011-11-15 | Micron Technology, Inc. | Hybrid memory management |
JP5317689B2 (ja) * | 2008-12-27 | 2013-10-16 | 株式会社東芝 | メモリシステム |
KR101602939B1 (ko) * | 2009-10-16 | 2016-03-15 | 삼성전자주식회사 | 불휘발성 메모리 시스템 및 그것의 데이터 관리 방법 |
KR20110046243A (ko) * | 2009-10-27 | 2011-05-04 | 삼성전자주식회사 | 사용자 장치 및 그것의 맵핑 데이터 관리 방법 |
JP2013530448A (ja) * | 2010-05-05 | 2013-07-25 | マーベル ワールド トレード リミテッド | キャッシュストレージアダプタアーキテクチャ |
US8417877B2 (en) * | 2010-08-31 | 2013-04-09 | Micron Technology, Inc | Stripe-based non-volatile multilevel memory operation |
KR101717081B1 (ko) * | 2011-03-23 | 2017-03-28 | 삼성전자주식회사 | 비휘발성 램과 휘발성 램을 버퍼 메모리로 사용하는 저장 장치 |
US9001578B2 (en) * | 2012-09-11 | 2015-04-07 | Seagate Technology Llc | Soft erasure of memory cells |
-
2013
- 2013-02-07 US US13/761,965 patent/US20140219021A1/en not_active Abandoned
-
2014
- 2014-02-04 KR KR1020140012581A patent/KR101645983B1/ko active IP Right Grant
- 2014-02-06 JP JP2014021409A patent/JP6140621B2/ja not_active Expired - Fee Related
- 2014-02-07 CN CN201410045201.3A patent/CN103985409B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1180430A (zh) * | 1995-03-31 | 1998-04-29 | 三星电子株式会社 | 不按顺序执行读写指令的存储器控制器 |
CN101042674A (zh) * | 2006-03-07 | 2007-09-26 | 松下电器产业株式会社 | 非易失性存储装置及其数据写入方法 |
CN101202106A (zh) * | 2006-09-22 | 2008-06-18 | 三星电子株式会社 | 非易失性存储系统及其相应的编程方法 |
CN101246738A (zh) * | 2007-01-03 | 2008-08-20 | 三星电子株式会社 | 具有备份电路的存储系统及编程方法 |
Also Published As
Publication number | Publication date |
---|---|
KR20140100898A (ko) | 2014-08-18 |
JP2014154166A (ja) | 2014-08-25 |
CN103985409A (zh) | 2014-08-13 |
JP6140621B2 (ja) | 2017-05-31 |
US20140219021A1 (en) | 2014-08-07 |
KR101645983B1 (ko) | 2016-08-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103985409B (zh) | 对于意外功率损失的数据保护 | |
US9892798B2 (en) | Data protection for unexpected power loss | |
US10430084B2 (en) | Multi-tiered memory with different metadata levels | |
CN110955384B (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
CN103984605B (zh) | 在多层存储器结构中存储纠错码 | |
CN106462493B (zh) | 固态存储器损坏的减轻 | |
KR101202620B1 (ko) | 복수-스트림 업데이팅을 갖는 비휘발성 메모리 및 방법 | |
US8788778B1 (en) | Garbage collection based on the inactivity level of stored data | |
KR101089576B1 (ko) | 업데이트 및 스크래치 패드 블록들을 위한 개선된 인덱싱을갖는 비휘발성 메모리 및 방법 | |
CN102667736B (zh) | 存储器管理装置及存储器管理方法 | |
TWI476780B (zh) | 具有揮發性及非揮發性記憶體之混合固態記憶體系統 | |
US20120079168A1 (en) | Method for performing block management, and associated memory device and controller thereof | |
CN106776376B (zh) | 缓冲存储器管理方法、存储器控制电路单元及存储装置 | |
CN106557432B (zh) | 缓冲存储器管理方法、存储器控制电路单元及存储装置 | |
US9208101B2 (en) | Virtual NAND capacity extension in a hybrid drive | |
KR20070101261A (ko) | 복수-스트림 업데이트 추적을 구비한 비휘발성 메모리 및방법 | |
CN106062724A (zh) | 存储器模块上的数据管理 | |
US9933955B1 (en) | Power safe write buffer for data storage device | |
CN103136111B (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
JP2010160605A (ja) | 半導体記憶装置、ホスト機器及び半導体記憶システム | |
US9348741B1 (en) | Systems and methods for handling write data access requests in data storage devices | |
KR102243923B1 (ko) | 캐쉬를 동반한 효율적인 페이지 컬렉션 매핑을 이용하는 비휘발성 메모리 장치 및 그 동작 방법 | |
CN109522237B (zh) | 存储器的数据管理方法及存储器装置 | |
US20230019189A1 (en) | Automatic wordline status bypass management | |
WO2014185038A1 (ja) | 半導体記憶装置およびその制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |