CN111445942A - 基于保留漂移历史的非易失性存储器读取阈值最优化 - Google Patents

基于保留漂移历史的非易失性存储器读取阈值最优化 Download PDF

Info

Publication number
CN111445942A
CN111445942A CN202010265327.7A CN202010265327A CN111445942A CN 111445942 A CN111445942 A CN 111445942A CN 202010265327 A CN202010265327 A CN 202010265327A CN 111445942 A CN111445942 A CN 111445942A
Authority
CN
China
Prior art keywords
read
drift
threshold
nvm
read threshold
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
CN202010265327.7A
Other languages
English (en)
Other versions
CN111445942B (zh
Inventor
厄尔·T·柯亨
钟浩
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.)
Seagate Technology LLC
Original Assignee
Seagate Technology LLC
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 Seagate Technology LLC filed Critical Seagate Technology LLC
Priority to CN202010265327.7A priority Critical patent/CN111445942B/zh
Publication of CN111445942A publication Critical patent/CN111445942A/zh
Application granted granted Critical
Publication of CN111445942B publication Critical patent/CN111445942B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • G11C16/3495Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • 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/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R19/00Arrangements for measuring currents or voltages or for indicating presence or sign thereof
    • G01R19/0084Arrangements for measuring currents or voltages or for indicating presence or sign thereof measuring voltage only
    • 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/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
    • 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/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • G11C16/3427Circuits or methods to prevent or reduce disturbance of the state of a memory cell when neighbouring cells are read or written
    • 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
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/14Dummy cell management; Sense reference voltage generators

Landscapes

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

Abstract

本申请涉及基于保留漂移历史的非易失性存储器读取阈值最优化。SSD控制器动态调整NVM中的读取阈值以减少由于装置阈值电压分布偏移而导致的错误,因此改善了诸如SSD的存储子系统的性能、可靠性和/或成本。保留漂移时钟使用在一个或多个NVM芯片上的一个或多个参考页面(或ECC单元或块)作为随着时间/温度参考的读取阈值,并且使用这些值的函数作为(随着时间/温度)的漂移的测量。在一些初始时间,一个或多个参考页面被程序化且为一个或多个参考页面中的每一个测量初始读取阈值。在一些实施方式中,读取阈值在以下一个或多个中被平均:同一芯片上的所有参考页面;以及I/O装置中相同的一个或多个芯片中的所有参考页面。

Description

基于保留漂移历史的非易失性存储器读取阈值最优化
本申请为发明名称为“基于保留漂移历史的非易失性存储器读取阈值最优化”的原中国发明专利申请的分案申请。原中国发明专利申请的申请号为CN201410046744.7;并且原中国发明专利申请的申请日为2014年2月10日。
相关申请的交叉引用
本申请的权益要求体现在所附的应用数据表、请求或传送中(如果有的话,根据需要而定)。在即时应用的类型允许的范围内,本申请为了所有的目的通过引用将以下申请结合于此,完成本发明时所有共同拥有的即时应用:
于2012年5月4日提交的第一指定发明者为Earl T COHEN以及题为“固态硬盘控制器中的0-1平衡管理”的美国非临时申请(案号:SF-11-02和序列号:13/464,433);以及
于2013年2月10日提交的第一指定发明者为Earl T COHEN以及题为“基于保留漂移历史的非易失性存储器读取阈值最优化”的美国临时专利申请(案号:SF-11-19和序列号:61/762,955)。
技术领域
本发明涉及非易失性存储技术方面的进步,以提供改进的性能、效率以及使用效用。
背景技术
除非明确地确定为公开或众所周知,否则本文所提到的包括用于上下文、定义或比较目的的技术和原理不应当被解释为承认这些技术和原理是先前公知的或作为另外的现有技术的一部分。本文引用的包括专利、专利申请和出版物的所有参考文献(如果有),通过引用将其全部内容结合于此以用于所有目的,而不管具体是否结合。
现将描述固态磁盘(SSD)控制器所使用的闪存的各个方面以部分地建立技术背景和部分建立在规格的平衡中使用的术语的先行词。SSD控制器从非易失性存储器(NVM)可读取数据的最小尺寸是“读取单元”,也就是由包括错误校正(如低密度奇偶校验(LDPC)码)保护的“读取单元”。在某些情况下,读取单元被称为“码字”。在一些实施方式中,每个读取单元包含约4K到约32K的用户数据位和错误校正开销。根据SSD控制器的命令,将这些位从NVM存储单元(例如,经由NVM存储单元的一个或多个部分的阵列存取)读取,可以保持每单元一个或多个位,而该读取将取决于如下所述的技术。在一些实施方式中,出于安全原因,SSD控制器在将数据写入NVM之前将该数据加密。在一些实施方式中,鉴于相对于长字符串的相同编程单元的电路设计的限制,SSD控制器在将数据写入NVM之前将数据加扰。
单独地考虑,每个单元都有对应于用于该单元的设备阈值电压的特定的存储(编程)电荷。虽然理想地NVM中的所有单元将具有相同的设备阈值电压以进行逻辑位值存储,而在实际中出于各种原因,设备的阈值电压沿着设备的阈值电压轴的形状上类似于高斯分布的概率分布(例如,“设备的阈值电压分布”)在整个单元中不同。
因此,考虑到大量单元(例如,读取单元)的聚集,因为每个单元存在状态(每单元每存储位有两种状态),所以存在尽可能多的设备阈值电压分布(例如,高斯概率曲线)。即,对于每存储单元N位,存在2**N种状态和相同数量的设备阈值电压分布。一般情况下,NVM中的读取电路需要(2**N)-1个不同的读取阈值(通过VREAD(N-1)读取电压参考VREAD1)来在2**N种状态之间区分读取阈值。
从上面开始继续,对于单级单元(SLC)闪存,N=1。SLC存储器从而存储每存储单元的一个位,具有两个设备阈值电压分布(一个为0和另一个为一),并且需要单个读取阈值、读取电压参考VREAD1。从低到高的设备阈值电压,这两种设备阈值电压分布被称为E(擦除)状态和D1(第一数据)状态。虽然任意,但共同的映射(编码)将逻辑1分配给E状态和将逻辑0分配给D1状态。因此,对0和1的参考均为针对D1状态和E状态的相应解码的代理参考。
从上面进一步继续,对于多级单元(MLC)闪存,N>1。MLC存储器从而存储每个单元一个以上的位,具有多于两个的设备阈值电压分布,并且需要多个不同的读取阈值来区分分布。例如,4LC存储器(例如,闪存)存储每单元2位,具有四个设备阈值电压分布,并且通常需要3个读取阈值(读取参考电压VREAD1、VREAD2和VREAD3)。从低到高的设备阈值电压,四个设备阈值电压分布被称为E(擦除)、D1(数据1)、D2(数据2)和D3(数据3)状态。虽然任意,但四个设备阈值电压分布的每一个也按照特定的二进制序列(例如,格雷码序列)来映射(寻址)。因此,对11、10、00和01状态中的一个或多个的参考均为针对E、D1、D2和D3状态的相应解码的代理参考。
相对于适用于MLC状态的地址映射,每一个都可以说是具有最高有效位(MSB)和最低有效位(LSB)(以及对于每单元两个以上的位,有效位在其之间)。虽然存在各种MLCNVMS编程其单元的方式,但以下方法是常见的。初始编程轮(电荷分布的操作)建立LSB,例如,写“下页”。这个以与用于写SLC相同的方式松弛地完成,例如,建立E状态设备阈值电压分布和第二状态设备阈值电压分布的电荷操作。根据所使用的二进制序列,该第二状态设备阈值电压分布相似于D1状态设备阈值电压分布,相似于D2状态设备阈值电压分布,或介于D1和D2状态设备阈值电压分布之间。对于MLC,根据每个MLC的等级数的需要,一个或多个附加的编程轮进一步操作设备阈值电压分布(在数目、沿设备的阈值电压轴的位置以及形状上)。更具体地,一个或多个后续的编程操作写入“中间页”(如果有的话,对每单元多于2位),以及最后编程操作建立MSB,例如,写“上部页”。例如,在4LC(每单元MLC2位),E分布和第一编程轮的第二分布分别被第二编程轮分成E和D1分布以及D2和D3分布两部分。
设备阈值电压分布由于一个或多个因素,例如读取干扰、写入干扰以及保留损失等改变远离其初始/标准分布。更具体地,随着时间、温度和与使用有关的其它因素的变化,每个设备阈值电压分布的位置可以相对于该设备阈值电压轴移动。这样的变化增加了执行使用基于标准设备阈值电压分布而预先建立的读取阈值的读取参考电压值的读取错误的可能性。在一些SLC实施方式中,当从NVM读出的读取单元中遇到了硬判决无法校正的错误时,执行一系列的重试操作,以恢复读取单元。重试操作包括控制器在读取阈值VREAD1的不同的电压值下重新读取读取单元,例如,通过寄存器经由来自SSD控制器的I/O命令设置写入来确定。通过读取读取阈值VREAD1的不同设置,在设备阈值电压轴的不同点采样读取单元,以试图找到该可校正(硬判决)的读取单元采样。
由NVM供应商建议的一个算法是慢慢向上扫除SLC读取阈值(从其标准值增加读取参考电压VREAD1),以试图找到可校正的读取单元的采样。如果这个过程失败,那么在另一个方向扫除读取阈值(降低其标称值的读取参考电压VREAD1)。如果这两个扫除均失败,则读取单元是不可校正(被硬判决解码)。线性扫除读取阈值,这在不同的相应读取参考电压设置下可能有16到64个步骤,需要多个读取单元的耗时采样(每个具有话务员恢复时间延迟)。即使在不常需要这样的搜索时,并且因此未主要影响平均潜伏期,对于包括数据库应用等具有严格的最大延迟要求的一些应用来说,该耗时搜索是不可接受的。
发明内容
本发明可以以多种方式来实现,包括作为过程、制造物、装置、系统、物质合成物以及一种计算机可读介质,例如计算机可读存储介质(例如,光学介质和/或诸如磁盘的磁性的大容量存储设备或诸如闪存等具有非易失性存储器的集成电路)或者其中程序指令经由光学或电子通信链路被发送的计算机网络。在本说明书中,这些实施方式或本发明可以采取的任何其他形式可被称为技术。具体实施方式提供能够改进上述领域中的性能、效率和使用效用的本发明的一个或多个实施方式的阐述。具体实施方式包括引言,以有助于更迅速的理解具体实施方式的剩余部分。引言包括根据本文所述的原理的系统、方法、制造物以及计算机可读介质中的一个或多个的示例实施方式。作为结论中所详细讨论的,本发明包括所提出的权利要求范围内的所有可能的修改和变化。
在一些实施方式和/或使用场景中,读取阈值可独立于检测不可纠正(如硬判决解码)的错误而调整,例如,经由保留漂移(retentiondrift,保持漂移)跟踪,又名保留时钟漂移、主动管理上述的读取阈值的技术。读取阈值的独立调整能够使得在某些情况下避免在不独立调整情况下另外发生的不可纠正的错误。在各种实施方式中,NVM的读取阈值调整被确定为以下各项的任意一个或多个:在制造NVM时、初次使用该NVM(例如第一SSD启动)时、一次或多次(例如,周期性地、不规则或随机地、响应于高于阈值的一个误码率以及响应于满足条件(例如,超过目标BER或超过0/1平衡中的0目标视差)。
在各种实施方式中,对NVM的块分组进行管理,并且每个管理组的特定一个块的采样被至少部分地读出。如果至少一些部分读取采样块满足条件,则读取阈值被调整用于所有的特定管理组的块。在各种实施方式中,调整经由保留的时钟漂移(保留漂移跟踪)技术进行。
保留漂移时钟将一个或多个NVM芯片上的一个或多个参考页(或ECC单位或块)用作随时间/温度参考值变化的读取阈值,并将这些值的功能函数用作漂移的测量(随着时间/温度变化)。在一些初始时间,对一个或多个参考页进行编程(以及于同一个块中的其他页一起,使得这些页如其他页一样表现),以及针对一个或多个参考页的每一个测量初始读取阈值。在一些实施方式中,读取阈值平均为以下各项中的一个或多个:在同一芯片上的所有参考页;以及I/O设备中的相同的一个或多个芯片上的所有参考页。
附图说明
图1A示出了包括实现用于管理非易失性存储器(NVM)的元件(例如,闪存)的读取阈值最优化的SSD控制器的固态磁盘(SSD)的实施方式的选定细节。
图1B示出了包括图1A的SSD的一个或多个示例的各个系统的实施式的选定细节。
图2A至图2D示出了相关的0/1平衡保留的示例设备阈值电压分布。图2A和图2B是分别具体示出在第一和以后第二时间的设备阈值电压分布的SLC。图2C和图2D是分别具体示出在第一和以后第二时间的设备阈值电压分布的MLC。
图3示出了图1A的SSD的示例的系统实施方式的选定细节,提供了关于0/1平衡管理和保留漂移跟踪的具体细节。
图4示出了图1A、图1B和图3的SSD的实施方式的选定的控制流程细节,提供了关于写入相关操作(动作410至430)和读取相关的操作(动作440至480)的具体细节。
图5A示出了经由保留漂移跟踪确定优化读取阈值的NVM(例如,SSD)的实施方式的选定细节的流程图。
图5B和图5C分别示出了NVM块的管理组中的设备阈值电压的次要保留漂移更新540和主要保留漂移更新560的实施方式的所选细节的流程图。
图6A至图6C概念性地示出了4LC存储器中的设备阈值电压分布。
附图中的参考符号列表
Figure BDA0002441056840000051
Figure BDA0002441056840000061
Figure BDA0002441056840000071
Figure BDA0002441056840000081
Figure BDA0002441056840000091
Figure BDA0002441056840000101
Figure BDA0002441056840000111
具体实施方式
下面提供的本发明的一个或多个实施方式的详细描述与附图一起来说明本发明的经选择的细节。本发明是结合实施方式来描述的。本文的实施方式被理解为仅仅是示例性的,本发明明确地不限于或受限于本文所述的部分或全部的实施方式,并且本发明包括多种替代、修改和等同物。为了避免说明的单调,各种词标签(包括但不限于:第一、最后、某些、各种的、进一步、其他的、尤其是、选择、一些以及显著的)可以适用于区分实施方案集;如本文所使用的这些标签明确并不意味着表述质量,或任何形式的偏好或偏见,而只是为了在单独集中方便区分。公开的方法的某些操作的顺序在本发明的范围内可改变。无论什么情况,多个实施方式用于描述在程序、方法和/或程序指令特征方面的修改,可以根据预定的或动态确定的准则来设想其他实施方式来执行静态和/或动态选择的分别对应于多个实施方式的多个操作模式之一。在下面的描述中阐述大量的具体细节,以提供对本发明透彻的理解。提供细节用于示例的目的,并且本发明可以根据没有一些或所有细节的权利要求来实践。为了清楚的目的,未详细描述与本发明相关的技术领域内已知的技术材料,以防使得本发明变得不必要的晦涩。
引言
本引言被包括仅有助于更快速的理解具体实施方式;本发明并不限于引言(包括明确的实例,如果有的话)呈现的原理,因为任何引言的段落都必然是整个主题删节的观点,并不意味着是详尽的或限制性的描述。例如,下面提供概述信息的引言受空间和组织所限仅限于某些实施方式。还有包括那些声称最终将被绘制的许多其他实施方式,在整个说明书中的剩余部分进行讨论。
缩略语
这里定义的各种速记缩写(例如,首字母缩写词)中至少一些参照本文中使用的某些元件。
Figure BDA0002441056840000131
Figure BDA0002441056840000141
Figure BDA0002441056840000151
Figure BDA0002441056840000161
跟踪和恢复0/1平衡
跟踪和管理用于0和1的计数和用来区分0和1状态的读取阈值的移位的最初讨论可直接适用于SLC存储器和(如上所述的具有轻微的变化的)MLC存储器的较低的页面。更一般地,针对MLC存储器,在下面单独的段落中详细描述了扩展至跟踪和管理用于上部页面的计数和多个读取阈值的移位(例如,读取电压基准VREAD1,VREAD2和VREAD3)。
在一些实施方式中,针对从SLVNVM中读取的每个读取单元(或在同一时刻从NVM芯片中转移的每个读取单元的组)获取0计数和1计数。在读取单元时无法校正的情况下(例如,在硬判决解码的背景下),部分地,由于在装置阈值电压分布中的移位远离它们的标称分布,故0计数和/或1计数能够将方向和/或幅度确定为移动(设定)读取阈值,以跟踪在装置阈值电压分布中的移位并且恢复0/1平衡。被调整的读取阈值为用于SLC存储器的读取电压基准VREAD1和用于MLC存储器较低页面的读取电压基准VREAD2。例如,在具有分配给擦除状态的逻辑1的SLC中,并写入已知的统计学上0和1相等(50%-50%,又称作50/50%,或者简化为50/50)分布,如果当前0/1计数指示1占优势,则VREAD1向较低移位;并且如果当前0/1计数指示0占优势,则VREAD1向更高移位。(针对MLC存储器的较低的页面,在前述实例中用VREAD2替代VREAD1。)用于改变(移位)读取阈值的幅度的多少可选地由多个0(或1)的百分比来确定。该幅度是基于以下一个或多个:一个或多个样本中观察到的0和/或1的数量;一个或多个样本的读取阈值增量;预测对应于在两个分布的峰值之间的中点的装置阈值电压分布的知识;编程/擦除次数(磨损);读取干扰计数;保持时间;以及其他类似的因素。
找到读取平衡点
在另一实施方式中,二分查找类似的操作(以适当的读取电压基准的各个值对相同的读取单元重复采样)被用来找到读取阈值“读取平衡点”。这是在相邻的装置阈值电压分布之间的装置阈值电压轴上的点,其导致在读取时的原始数据(预纠错)统计状态分布在纠错的统计余量内与写入的统计状态分布或其理想化模型相匹配。
对于SLC存储器和随机加扰,诸如加密所导致的,读取平衡点是读取阈值(读取电压基准VREAD1)其中(从NVM读取的原始数据的)0/1平衡大多数是相等的(几乎相同)。在这种情况下,这两个状态分布具有50-50的平衡。即,状态读取的50%是0并且状态读取的50%是1。(对于MLC存储器的较低页面,用VREAD2为替代前述中的VREAD1。)
在一些实施方式中,读取平衡点对应于在两个电压分布之间的中心点的一个或多个、在两个电压分部之间的最小值、在读取的数据中的0/1平衡的点上接近于50-50,并且根据在两个其他的点上所发现的0/1平衡的内插法确定的点。读取平衡点对应于在具有对称的相邻装置阈值电压分布的实施方式中的相邻的装置阈值电压分布之间的中间点。
找到并设定读取阈值至期望的读取平衡点减少了在其上要求找到尝试硬判决译码的最优点的读取的数量,在又一实施方式中,在找到读取阈值平衡点之前找到“足够好”读取阈值的情况下,在二分查找中的每个阈值的采样点(用于SLC存储器VREAD1的每个值,或者用于MLC存储器中的下部页面的VREAD2的每个值)上尝试硬判决译码。一旦找到足够好的读取阈值则该查找通常被缩短,除了下面讨论的关于出于软判决的目的围绕确定的读取平衡点可能采用另外的采样。在不同的实施方式中,“足够好”的读取阈值导致在原始读取数据的成功的硬判决译码。在一些实施方式中,在二分查找中的查找步骤(所读取的阈值增量)的量级(基于),至少部分基于如关于读取阈值改变的量级的上述不同的因素来确定。
MLC注意事项
在MLC存储器中,多个读取阈值被管理。在一些实施方式中,这是通过假设多个装置阈值电压分布的均匀位移并且基于为基于较低页面的读取数据0/1平衡的第一读取阈值(VREAD1)所作出的判决改变所有其他的读取阈值。
对于4LCNVM,理论上存在25-25-25-25的11/10/00/01平衡(对比于50-50的0/1平衡)。然而,不存在直接提供这种平衡单一操作,通常经由单独的阵列存取所读取4LC利用三个读取电压基准:用于较低页面的VREAD2和用于上部页面的VREAD1VREAD3。因此,1可以评估两个各自的0/1平衡:在用于较低页面的D1与D2状态之间,以及在E与D1状态之间,该D1状态在用于上部页面的D2和D3状态之间相结合。可选地,1可以执行三个单独的较低页面相似的阵列存取,将单个较低页面读取阈值设定为接近VREAD1、VREAD2和VREAD3中的每一个的值。
通过实例的方式,在一些4LCNVM实施方式中,读取电压基准VREAD1、VREAD2和VREAD3可能需要移位,至少对存储在单元中的两个位中的一个。工作于类似于SLC的情况下,存储在单元中的两个位中的一个要求在第一读取阈值上的单个阵列存取(在这种MLC的情况下的VREAD2)。确定其它位要求两个另外的读取阈值(VREAD1和VREAD3,以及有效地由该NVM内部执行两个相关联的各自的另外的阵列存取)。
根据不同的实施方式,不是用于其他位的两个读取阈值(VREAD1和VREAD3)通过相同和/或不同的数量被同度地移动,就是用于其他位的两个读取阈值被独立地移动(以在另外的读取操作中的开销)。因为所确定的两个读取阈值(VREAD1和VREAD3)的SLC相似位的状态被用于确定相应的其他位(MSB),故后面的选择要求知道在单元中的SLC相似位的状态(LSB)。
在一些4LC实施方式中,评估组合的“上部页面”读取数据0/1平衡,用于E和D1的分布与D2和D3分布的同步混合。基于在组合0/1平衡读取与写入中的差异,并且有鉴于位感应反转(对于从E移动至D1的1至0,以及对于从D2移动至D3的0至1),相应的两个读取读取阈值在相对的方向上被一致地移动(VREAD1和VREAD3)。这样做使得混合的每个组件的0/1平衡“在相同的方向上”移动(例如,该移动不冲突)。
在一些4LC实施方式中,使用用于读取单元的每个位的各自的LSB的同时,两个上部页面的读取阈值(VREAD1和VREAD3)的移动分别由用于上部页面的各自的0/1平衡的评估来单独地确定。当LSB=1时,移动的方向是与LSB=0的情况相反的。例如,代替计算在上部页面读取数据中的0计数和1计数之间的差异,通过基于对应的较低页面读取数据可选择性地丢该上部页面读取数据的每个位、将上部页面读取数据的位的感测从数字值转换为方向值(例如,0表示更高的装置阈值电压并且1表示较低的装置阈值电压)来计算上部页面差异。在一些实施方式中,上部页面读取数据的位与相应的较低页面读取数据的位的XNOR执行该转换。
去除来自软判决样本的偏差
在一些实施方式中,从NVM中所获得的软判决信息,用于执行基于软判决的译码。通过以围绕标称(未调整的)读取阈值变化的读取阈值采样点(对于SLC,值为VREAD1)读取读取单元(或者在同一时间从一个NVM芯片上转移的读取单元的每个组)所获得的软判决信息,以获得读取单元的数据的多个样本,因此构建读取单元的每个位的值的软判决是可能的。样本的空间取决于、至少部分取决于所使用的NVM的具体属性,诸如其充电状态的标称分离。
软判决信息是有偏差的,然而,除非围绕标称读取阈值所采用的样本是读取阈值读取平衡点(如上所述)。如果当前的读取阈值不是阈值读取平衡点,那么所有的软判决信息在一个方向或另一个方向上是有偏差的。下面是两个实例技术用于对此进行调整并获得无偏差的(或至少较少偏差的)软判决信息:
1.因为在每一个读取阈值采样点上采样的读取单元的0/1平衡很容易被识别,故很容易地确定读取阈值的读取平衡点(根据实施方式,诸如通过使用线性内插法)。计算对应于所确定的读取阈值读取平衡点和(旧的,未调整的)标称读取阈值之间的差异的偏移量。先前所确定的软判决信息能够适当地“回到中心位置”,并且仍使用通过施加相对于在其上之前所采样的软判决信息的电压的偏移量(具有被缩短至大于1.0或小于0.0的值)。这种方法不要求另外的读取操作,但是对于一些数据来说,产生不同数量的精度/准度。
2.因为在每一个读取阈值采样点上采样的读取单元的0/1平衡很容易被识别,故在收集所有要求的样本之后,很容易地确定靠近于读取阈值采样点的读取阈值采样点。该靠近是具有与写入的0/1平衡最接近的0/1平衡的读取阈值采样点。对于SLC加密(或者加扰)的情况,它是靠近于具有50-50平衡的读取阈值采样点。因为所有的样本标称具有彼此相等的间隔,故最靠近的样本被选择作为新的标称读取阈值,并且另外的软判决信息样本可选地被聚集(假设新的标称读取阈值不同于旧的),可选地,首先完成二分查找,用于找到阈值读取平衡点,具有二分查找的精度限于要求用于期望的软判决信息的精度的采样的优良的间隔尺度。所期望的软判决信息的精度具有围绕新的标称读取阈值的相关联的窗口。进行二分查找的多个读取需要的一部分,用于获得不需要另外的读取的软判决信息,除非旧的标称读取阈值降到落在所期望的的精度采样窗口的外部。
在到目前为止所描述的SLC加密实施方式中,上述技术集中于找到优选的读取阈值,该读取阈值产生最靠近50-50的读取数据0/1平衡。对于其中装置阈值电压分布是大致相同的对称形状,并没有实质上重叠的情况下,此优选的读取阈值也将对应于该组合的装置阈值电压分布的最小值。
从装置阈值电压分布上已知的点中读取内插的阈值
在一些实施方式中,另一方法用于找到优选的读取阈值来代替找到两个点,一个在每个相邻的装置阈值电压分布上,并且通过内插法确定这两个点之间的中点。例如,在每个装置阈值电压分布的峰值处采样应产生读取数据的0/1的75/25平衡(或1/0,取决于其峰值)。一旦识别出两个峰值,则计算出的这两个装置阈值电压的轴线之间的中点被用来设定新的读取阈值。
如果已知的现有的装置阈值电压分布是不均匀的(例如,非对称地偏向一侧或另一侧,诸如通过具有长的尾部),那么在一些实施方式中,该信息被用来解释峰值的位置并且通过稍微复杂的内插(例如,不是正好在中点)来定位中心。诸如保持时间和/或磨损可能影响装置阈值电压分布的对称性并且在一些实施方式将其考虑在内。多个采样点也用在一些实施方式中,用于展现装置阈值电压分布的形状。
在一些实施方式中,其中装置阈值电压调整的范围是有限的,它可能无法找到真正的峰值。具体地,即使在E状态的电压分布延伸到负的装置阈值电压,具有一些闪存装置的装置阈值电压不能移动小于0V。装置阈值电压分布的常识仍允许经由内插法确定中点。例如,如果在0V时读取数据置0/1平衡是60/40,那么可观察到约10%的多余的0并且E分布到0V的右侧的面积约为10%。在一些实施方式的第一种方法中,D1分布的峰值被找到,并且该中点是基于在E分布的近似形状的常识被内插。在一些实施方式的第二种方法中,在其上读取数据0/1平衡是40/60(从0V测量的相对点)的D1分布的点被发现。在60/40与40/60的观察之间所计算的中点,然后被用来设定新的优选的读取阈值。所计算的中点可以使用另外的常识和/或两个装置阈值电压分布的测量被确定具有更大的精度。
在一些实施方式中,两个被内插的点均在相同侧上作为读取平衡点。例如,知道了第一读取阈值采样点X产生75/25读取数据0/1平衡并且第二次读取阈值采样点Y产生62.5/37.5,读取平衡点靠近Y+/-(XY),其中“+”与“-”取决于Y是否小于X。读取平衡点的方向是相对于移动读取数据0/1平衡更靠近50/50的方向。在给出的实例中,即在从X并且朝向Y的方向,装置阈值电压分布的常识将产生更精确的内插,而不是所示的简单的线性内插。
保留漂移追踪
在不同的实施方式和/或使用场景中,在NVM中的装置阈值电压分布随时间移位并且引起读取错误(例如,当硬判决译码时)。随着装置阈值电压分布的移位,之前低于(或高于)在某一读取阈值的值,落在某个读取阈值的上面(或下面)并引起的位错误。例如,先前存储为(和被认为是在)D1分布的值被确定为是在D2分布中,从而导致位错误。少量的位错误是可校正的,然而,大量的位错误导致不可校正的(例如,硬判决译码)错误。在一些实施方式和/或使用场景中,然而,经由读取阈值的抢先调整(诸如经由调整独立于不可校正错误检测的的读取阈值的保留漂移跟踪)将可以避免不可校正的(例如,硬判决解码)错误的发生。
示例性实施方式
在结束对具体实施方式的介绍时,接下来是示例性实施方式的集合,包括明确列举为“EC”(示例性组合)的至少一些实施方式,根据本文所述的概念提供对各种实施方式类型的额外描述;这些示例并不意味着是相互排斥的、详尽无遗的或限制性的;且本发明并不限于这些示例性实施方式,而是涵盖所公布的权利要求的范围内的所有可能的修改和变更。
EC1)一种方法,包括:
根据对非易失性存储器的多个页面组中的的具体的一个组进行的编程,记录电压漂移参考时间戳的采样值作为所述编程的所述时间;以及
根据所述编程后续的对所述具体页面组中的一些或全部页面进行的读取,至少部分基于所述记录的所述电压漂移参考时间戳的采样值和直到所述读取的时间的所述电压漂移参考时间戳的所述采样值,来确定所述读取的电压阈值。
EC2)EC1所述的方法,其中所述电压漂移参考时间戳的所述采样值是根据所述非易失性存储器参考位置的电压阈值。
EC3)EC1所述的方法,还包括在所述记录的所述电压漂移参考时间戳的采样值与直到所述读取的所述时间为止的所述电压漂移参考时间戳的所述采样值之间的差小于一个规定的差值时,使用默认的电压阈值作为所述读取的所述电压阈值。
EC4)EC1的所述方法,还包括:
周期性地对所述非易失性存储器的参考位置进行采样以便确定所述参考位置的当前电压阈值;以及
其中,所述周期性的采样至少部分地确定所述电压漂移参考时间戳的所述采样值。
EC5)EC4所述的方法,其中所述参考位置是所述非易失性存储器的页面。
EC6)EC4所述的方法,其中所述参考位置是所述具体页面组中的一个页面。
EC7)EC4所述的方法,其中所述参考位置与所述具体页面组的至少一个所述页面在所述非易失性存储器的相同的块内。
EC8)EC4所述的方法,其中所述电压漂移参考时间戳的每个所述采样值包括各自的代数(generation number,阶段数,生成数)以及各自的阈值部分,所述代数取决于主代数(master generation number),并且所述阈值部分取决于直到所述相关联的周期性的采样的所述的参考位置的所述的当前电压阈值。
EC9)EC7所述的方法,还包括:在所述参考位置的所述当前电压阈值超过边界值时,更新所述参考位置,以及累加所述主代数。
EC10)一种方法,包括:
作为常规块(非系统参考块)的一部分,利用常规数据页面以及一个或多个系统参考页面,对块进行写入;
作为背景系统任务以及期待来自所述块的常规页面读取,至少基于所述一个或多个系统参考页面的系统读取,周期性地确定最佳读取阈值电压用于所述块;以及
使用用于所述块所述预定的最佳读取阈值电压,执行所述期待的常规页面读取的常规页面读取。
EC11)一种方法,包括:
对至少以页面组的方式组织的非易失性存储器的多个页面进行写入,写入的所述多个页面包括常规(非系统参考)页面以及一个或多个系统参考页面,用于在跟踪读取阈值电压转移中至少部分地使用;
根据用于每个所述系统参考页面的第一定时和第一最佳标准,重复地确定最佳参考页面读取阈值电压;
根据用于每个组的第二定时以及第二最佳标准,重复地确定最佳参考组读取阈值电压作为至少是最近确定的参考页面读取阈值电压的函数;并且
针对需要读取的所述常规页面的至少一个常规页面,至少部分地基于对应的要被读取的所述页面组,从最近确定的最佳参考组读取阈值电压,使用动态选择的需要读取阈值电压读取所述至少一个常规页面。
EC12)EC11所述的方法,进一步包括:
检测一个所述最佳参考页面读取阈值电压在公差之外,并且重新对与所述检测的在公差之外的最佳参考页面读取阈值电压相对应的所述系统参考页面进行编程。
EC13)EC11所述的方法,还包括:
根据第三定时,针对每个系统参考页面,重复地评估所述确定的最佳参考页面读取阈值电压是否已经过度偏移(大于可编程的/可配置的值),并且基于所述评估,对所述系统参考页面重新编程并且累加各自的参考页面代(阶段)的计数;并且
在存储表示中存储至少一些编码的所述确定的读取阈值电压作为第一字段,所述存储表示还包括与所述第一字段相关联的编码所述参考页面代(阶段)的计数的第二字段。
EC14)EC11所述的方法,其中所述需求读取阈值电压相对于在所述页面被最后读取时使用的所述阈值电压而被偏移。
EC15)EC11所述的方法,其中至少一些所述确定的读取阈值电压被存储为编码的多个比特。
EC16)EC11所述的方法,其中至少一些所述确定的读取阈值电压被存储为编码的多个比特,所述多个比特使用映射以便提供在与值的快速偏移相关联的读取阈值电压操作的至少一些区域的表示的更高的分辨率。
EC17)EC11所述的方法,其中至少一些所述确定的读取阈值电压编码为第一字段存储在存储表示中,所述存储表示还包括识别与所述第一字段相关联的参考页面代(阶段)的第二字段。
EC18)EC17所述的方法,其中所述参考页面代(阶段)字段区分一系列不同的参考页面。
EC19)EC17所述的方法,其中所述参考页面代(阶段)字段区分一系列相同参考页面的重新编程。
EC20)EC17所述的方法,其中所述第一字段和第二字段分别包括所述存储表示的最少的比特和最多的比特。
EC21)EC11所述的方法,其中所述系统参考页面包括至少一个ECC单元和ECC块。
EC22)EC11所述的方法,其中所述第一定时和所述第二定时是相同的。
EC23)EC11所述的方法,其中所述第一定时和所述第二定时是不同的。
EC24)EC11所述的方法,其中根据所述阅读阈值电压偏移已经进入操作的较小线性区域的判定,所述第一定时和所述第二定时中的至少一个被修改。
EC25)EC11所述的方法,其中所述第一定时和所述第二定时中的至少一个包括自适应定时试图与一个所述阅读阈值电压的变化率相称地进行采样。
EC26)EC11所述的方法,其中所述第一定时和所述第二定时中的至少一个包括至少部分地基于选择的名义间隔(一天一次、一周一次或一个月一次)的定时。
EC27)EC11所述的方法,其中所述第一定时和所述第二定时中的至少一个包括至少部分地基于一种类型的非易失性存储器、所述读取阈值电压的变化率、温度以及过去的时间中的一个或多个的定时。
EC28)EC11所述的方法,其中所述第一定时和所述第二定时中的至少一个包括至少部分地基于接通电源事件、重置事件以及唤醒时间中的一个或多个的定时。
EC29)EC11所述的方法,其中,所述读取从在前的所述最佳参考组读取阈值电压的判定中受益而不会招致与在前的判定相关联的延迟。
EC30)EC11所述的方法,其中所述需要的页面读取是从以下选择的一个:a)系统页面,不是系统参考页面;b)非系统页面;以及c)用户页面。
EC31)EC11所述的方法,其中所述系统参考页面在一个或多个非易失性存储器的芯片上驻留。
EC32)EC11所述的方法,其中所述需要的读取阈值电压是在所述非易失性存储器的相同的芯片上所有参考页面的平均值。
EC33)EC11所述的方法,其中所述需要的读取阈值电压是非易失性存储器的一个或多个芯片上的所有参考页面的平均值。
EC34)EC11所述的方法,其中所述非易失性存储器被包括在I/O装置的一个或多个芯片上。
EC35)EC34所述的方法,其中所述I/O装置是存储装置。
EC36)EC34所述的方法,其中I/O装置是固态驱动(SSD)。
EC37)EC34所述的方法,其中所述需要的读取阈值电压时芯片平均值。
EC38)EC34所述的方法,其中所述需要的读取阈值电压是I/O装置平均值。
EC39)EC11所述的方法,其中所述确定的最佳参考页面读取阈值电压是读取错误最小的读取阈值电压。
EC40)EC11所述的方法,其中所述确定的最佳参考页面读取阈值电压是产生所述编程中使用的最好的(使结果能够匹配在预定的/可编程的/可配置的/错误边界内的)分配的读取阈值电压。
EC41)EC11所述的方法,其中所述编程用于加密,并且所述确定的最佳参考页面读取阈值电压是产生0和1的50-50的平衡分布的读取阈值电压。
EC42)EC11所述的方法,其中所述组是R块。
EC43)EC11所述的方法,其中所述读取针对读取阈值电压偏移而被补偿,所述偏移是保持时间和保持温度中的一个或多个的函数。
EC44)一种方法,包括:
记录与对非易失性存储器的具体的一个或多个页面组进行的编程相关联的电压漂移参考时间戳的采样值;以及
至少部分地基于记录的电压漂移参考时间戳的采样值以及与所述读取相关联的电压漂移参考时间戳的采样值,确定读取至少一些已编程的所述具体的页面组的电压阈值。
EC45)EC44所述的方法,其中所述电压漂移参考时间戳的所述采样值是根据所述非易失性存储器的一个或多个参考位置的电压阈值。
EC46)EC44所述的方法,还包括:在所述记录的所述电压漂移参考时间戳的采样值之后,使用默认的电压阈值作为读取的电源阈值,其中所述电压漂移参考时间戳的采样值相对于直到读取的时间的电压漂移参考时间戳的采样值存在小于规定的差别的差别。
EC47)EC44所述的方法,还包括:
周期性地对非易失性存储器的参考位置采样以便确定所述参考位置的当前的电压阈值;以及
其中所述周期性地采样至少部分地确定所述电压漂移参考时间戳的采样值。
EC48)EC47所述的方法,其中所述参考位置是所述非易失性存储器的页面。
EC49)EC47所述的方法,其中所述参考位置是所述具体的页面组的一个页面。
EC50)EC47所述的方法,其中所述参考位置与所述具体页面组的至少一个页面在非易失性存储器的相同的块中。
EC51)EC47所述的方法,至少一些所述电压漂移参考时间戳的所述采样值分别包括各自的代数(generation number)以及各自的阈值部分,所述代数取决于主代数(mastergeneration number),并且所述阈值部分取决于直到所述相关联的周期性的采样的所述的参考位置的所述的当前电压阈值。
EC52)EC51所述的方法,还包括:在参考位置的当前电压阈值超出边界之后,更新所述参考位置,以及累加所述主代数。
EC53)EC44所述的方法,其中所述记录的电压漂移参考时间戳的采样值是所述编程的时间,并且与读取相关的所述电压漂移参考时间戳的采样值是所述读取的时间。
EC54)EC45所述的方法,其中至少一些电压漂移参考时间戳分别包括一个或多个电压漂移参考的最佳读取阈值电压的确定的设置,所述电压漂移参考包括所述参考位置。
EC55)EC54所述的方法,其中所述非易失性存储器包括SLC存储器,并且所述确定的设置包括所述一个或多个最佳读取阈值电压中的一个的最佳读取阈值电压。
EC56)EC54所述的方法,其中所述非易失性存储器包括MLC存储器,并且所述确定的设置包括一个或多个最佳读取阈值电压的多个最佳读取阈值电压。
EC57)EC54所述的方法,还包括:将至少一些所述电压漂移参考时间戳与相应的时间表示相关联。
EC58)EC57所述的方法,其中所述相应的时间表示取决于针对系统时间的偏移计数器。
EC59)EC57所述的方法,其中所述相应的时间表示取决于与实际的时间时钟偏移的值。
EC60)一种装置,包括:
用于记录与对非易失性存储器的具体的一个或多个页面组进行的编程相关联的电压漂移参考时间戳的采样值的芯片;以及
用于至少部分地基于记录的电压漂移参考时间戳的采样值以及与所述读取相关联的电压漂移参考时间戳的采样值,确定读取至少一些已编程的所述具体的页面组的电压阈值的芯片。
EC61)EC60所述的装置,其中所述电压漂移参考时间戳的所述采样值是根据所述非易失性存储器参考位置的电压阈值。
EC62)EC60所述的装置,还包括:用于在所述记录的所述电压漂移参考时间戳的采样值之后,使用默认的电压阈值作为读取的电源阈值的芯片,其中所述电压漂移参考时间戳的采样值相对于直到读取的时间的电压漂移参考时间戳的采样值存在小于规定的差的差别。
EC63)EC60所述的装置,还包括:
用于周期性地对非易失性存储器的参考位置采样以便确定所述参考位置的当前的电压阈值的芯片;以及
其中所述周期性地采样至少部分地确定所述电压漂移参考时间戳的采样值。
EC64)EC63所述的装置,其中所述参考位置是所述非易失性存储器的页面。
EC65)EC63所述的装置,其中所述参考位置是页面的所述具体组中的一个页面。
EC66)EC63所述的装置,其中所述参考位置与所述具体页面组的至少一个所述页面在所述非易失性存储器的相同的块内。
EC67)EC63所述的装置,其中至少一些所述电压漂移参考时间戳的所述采样值分别包括各自的代数(generation number)以及各自的阈值部分,所述代数取决于主代数(master generation number),并且所述阈值部分取决于直到所述相关联的周期性的采样的所述的参考位置的所述的当前电压阈值。
EC68)EC67所述的装置,还包括:用于在参考位置的当前电压阈值超出边界之后,更新所述参考位置,以及累加所述主代数的芯片。
EC69)非易失性有形计算机可读介质,具有存储于其中的一系列指令,当所述指令被处理元件执行时,会引发所述处理元件执行包括以下内容的操作:
记录与对非易失性存储器的具体的一个或多个页面组进行的编程相关联的电压漂移参考时间戳的采样值;以及
至少部分地基于记录的电压漂移参考时间戳的采样值以及与所述读取相关联的电压漂移参考时间戳的采样值,确定读取至少一些已编程的所述具体的页面组的电压阈值。
EC70)EC69所述的计算机可读介质,其中所述电压漂移参考时间戳的所述采样值是根据所述非易失性存储器参考位置的电压阈值。
EC71)EC69所述的计算机可读介质,所述操作还包括:在所述记录的所述电压漂移参考时间戳的采样值之后,使用默认的电压阈值作为读取的电源阈值,其中所述电压漂移参考时间戳的采样值相对于直到读取的时间的电压漂移参考时间戳的采样值存在小于规定的差别的差别。
EC72)EC69所述的计算机可读介质,所述操作还包括:
周期性地对非易失性存储器的参考位置采样以便确定所述参考位置的当前的电压阈值;以及
其中所述周期性地采样至少部分地确定所述电压漂移参考时间戳的采样值。
EC73)EC72所述的计算机可读介质,其中所述参考位置是所述非易失性存储器的页面。
EC74)EC72所述的计算机可读介质,其中所述参考位置是页面的所述具体组中的一个页面。
EC75)EC72所述的计算机可读介质,其中所述参考位置与所述具体页面组的至少一个所述页面在所述非易失性存储器的相同的块内。
EC76)EC72所述的计算机可读介质,其中至少一些所述电压漂移参考时间戳的所述采样值分别包括各自的代数(generation number)以及各自的阈值部分,所述代数取决于主代数(master generation number),并且所述阈值部分取决于直到所述相关联的周期性的采样的所述的参考位置的所述的当前电压阈值。
EC77)EC76所述的计算机可读介质,所述操作还包括:在参考位置的当前电压阈值超出边界之后,更新所述参考位置,以及累加所述主代数。系统
一些实施方式中,输入输出设备,例如固态存储器(SSD),包括固态存储器控制器(SSD controller)。固态存储器控制器担当主机接口和固态存储器NVM之间的桥路,并且执行从计算主机经由固态存储器主机接口发送的主机协议命令。在以下实施方式中,启动固态存储器控制器来使用图表在主机协议LBA和NVM中的物理存储器地址之间互译。至少一些命令引导固态存储器分别写入和读取NVM和从计算主机发来的和发送到计算主机的数据。以下实施方式中,至少一部分图表用于输入输出设备的专用存储器(计算主机看不到的)。例如,计算主机不可使用的一部分LBA由输入输出设备用于管理到日志、统计或其他私用数据的访问。
一些实施方式中,选取NVM中不同尺寸量子的压缩数据在一些使用情形中提供改善的存储效率。例如,固态存储器控制器从计算主机接收(未压缩)数据(例如,与盘写入命令有关),压缩该数据,并且存储该压缩数据到闪存里。响应于来自计算主机的随后的请求(例如,与盘读出命令有关),固态存储器控制器从闪存读取压缩数据,解压缩该压缩数据并且为计算主机提供未压缩的数据。压缩数据根据不同尺寸量子被存储在闪存中,量子尺寸根据例如压缩算法、运行状态和对于各种数据的压缩效果变化。固态存储器控制器通过参考包含的变换表来确定在闪存中哪里存储有报头来解压缩所述数据为部分。固态存储器控制器解析从闪存获得的报头来确定在闪存中哪里存储了恰当的(压缩的)数据。固态存储器控制器从闪存解压缩恰当的数据来产出未压缩的数据来提供给计算主机。在所述即时应用中,解压缩(和它的变形)与反压缩(和它的变形)是同义的。
不同的实施方式中,固态存储器控制器包括用于连接计算主机的主机接口、用于连接NVM(例如闪存)的接口和用于控制界面和执行(和/或控制不同的执行特征)压缩和解压缩的电路,以及低位错误校正、高位错误校正和使用独立硅元件的动态高位冗余模式管理。
根据不同的实施方式,一些主机接口兼容USB接口标准、CF接口标准、MMC接口标准、eMMC接口标准、Thunderbolt接口标准、UFS接口标准、SD接口标准、MemoryStick接口标准、xD—picturecard接口标准、IDE接口标准、SATA接口标准、SCSI接口标准、SAS接口标准和PCIe接口标准中的一个或多个。根据不同的实施方式,计算主机是以下的所有或任何部分:计算机、工作站计算机、服务器计算机、存储服务器、SAN、NAS设备、DAS设备、存储装置、PC、便携式计算机、笔记本式计算机、上网本计算机、平板设备或计算机、超级本计算机、电子阅读设备(例如e——reader)、PDA、导航系统、(手提)GPS设备、自动控制系统、自动媒体控制系统或计算机、打印机、复印机或电话传真机或一体设备、POS设备、cash—register(现金登记器)、媒体播放机、电视机、媒体录音机、DVR、数字照相机、蜂窝手机、无绳电话手机和电子游戏。一些实施方式中,连接主机(例如SAS/SATA桥路)运行作为计算主机和/或作为到计算主机的桥路。
不同的实施方式中,固态存储器控制器包括一个或多个处理器。所述处理器执行程序包来控制和/或执行固态存储器控制器的操作。固态存储器控制器与计算主机通信来发送和接收命令和/或状态以及数据。计算主机执行操作系统、驱动和应用中的一个或多个。由计算主机与固态存储器控制器的通信是任选的和/或有选择性的经由驱动器和/或经由应用。第一个示例中,到固态存储器控制器的所有通信经由驱动器,并且应用提供高位命令到驱动器,驱动器翻译所述高位命令为专用命令用于固态存储器控制器。第二个示例中,驱动器实现旁路方式并且启动应用来发送专用命令经由驱动器到固态存储器控制器。第三个示例中,PCIe固态存储器控制器支撑一个或多个虚拟功能(VF),一旦配置过将启动应用来与固态存储器控制器绕过驱动器直接通信。
根据不同的实施方式,一些固态存储器兼容用于磁性的和/或光学非暂时存储(例如硬盘驱动器、CD驱动器和DVD驱动器)的形态因素、电气接口和/或的协议。不同的实施方式中,固态存储器使用以下不同的组合:0或更多奇偶码、0或更多RS码、0或更多BCH码、0或更多Viterbi或其他篱码和0或更多LDPC码。
图1A示出包括实现读出门槛的最优化(例如经由0/1个平衡管理和/或滞溜偏移轨迹技术)用于管理非易失性存储器(NVM)元件(例如,闪存)的固态存储器控制器100的固态存储器101的选定的细节。固态存储器控制器100经由一个或多个外部接口110通信的偶联到主机(例如图1B的主机102)。根据不同的实施方式,外部接口110是下列中一个或多个:SATA接口;SAS接口;PCIe接口;光纤通道接口;以太网接口(例如万兆以太网);上述任何接口的非标准型;定制接口;或任何其他类型用于互联存储的接口和/或通信和/或计算装置。例如,一些实施方式中,固态存储器控制器100包括SATA接口和PCIe接口。
固态存储器控制器100此外经由一个或多个设备接口190通信的偶联到NVM199(包括一个或多个存储装置,例如一个或多个闪设备192)。根据不同的实施方式,设备接口190是以下一个或多个:异步接口;同步接口;单数据速率(SDR)接口;双倍数据速率(DDR)接口;DRAM兼容的DDR或DDR2同步接口;ONFI兼容式接口,例如ONFI2.2或ONFI3.0兼容式接口;切换模式兼容的闪接口;任何上述接口的非标准型;定制接口;或任何其他类型用于连接到存储装置的接口。
一些实施方式中,每个闪设备192具有一个或多个单独的闪塑模(FlashDie)194。根据闪设备192的特别的一个类型,特别的闪设备192中多个闪塑模194是任选的和/或有选择性的并行可使用。闪设备192仅仅代表一个类型的存储装置(启动该装置来通信的偶联到固态存储器控制器100)的特征。不同的实施方式中,任何类型的存储装置是有用的,例如SLCNAND闪存、MLCNAND闪存、NOR闪存、使用基于多晶硅或氮化硅技术的电荷存储元件的闪存、基于二或三维技术的闪存、只读存储器、静态随机存取存储器、动态随机存储器、铁磁存储器、相位改变存储器、跑道(racetrack)存储器、ReRAM或任何其他类型的存储装置或存储介质。
根据不同的实施方式,设备接口190被组织为:一个或多个总线(每总线有一个或多个闪设备192);一个或多个总线群组(每总线有一个或多个闪设备192),在此在群组中的总线通常的被并行访问;或任何其他设备接口190上有一个或多个闪设备192的组织。
继续在图1A中,固态存储器控制器100具有一个或多个模块,例如主机接口111、数据处理121、缓冲器131、图表141、回收站(循环器)151、ECC161、设备接口逻辑191和CPU171。在图1中示出的特定模块和相互连接仅代表一个实施方式,并且可设想一些或全部模块以及额外的没示出的模块的许多排列和相互连接。第一个示例中,一些实施方式中,有两个以上的主机接口111提供双工端口。第二个示例中,一些实施方式中,数据处理121和/或ECC161与缓冲器131结合。第三个示例中,一些实施方式中,主机接口111直接耦合到缓冲器131,并且数据处理121任选的和/或有选择性的运行在存储在缓冲器131中的数据上。第四个示例中,一些实施方式中,设备接口逻辑191直接耦合到缓冲器131,并且ECC161任选的和/或有选择性的运行在存储在缓冲器131中的数据上。
主机接口111发送和接收命令和/或数据经由外部接口110,并且,一些实施方式中,经由标签轨迹(Tag Tracking)113追踪单独的命令进程。例如,所述命令包括读出命令,该读出命令指定地址(例如LBA)和将读取的大量的数据(例如许多LBA量子,例如,分区);作为响应固态存储器提供阅读状态和/或读出数据。对于另一个实施例,所述命令包括写入指令,写入指令指定指定地址(例如LBA)和将写入的大量的数据(例如许多LBA量子,例如,分区);作为响应固态存储器提供写入状态和/或请求写入数据并且任选的随后提供写入状态。对于又一个示例,所述命令包括反分配指令(例如修整指令),其指定不再需要被分派的一个或多个地址(例如一个或多个LBA);作为响应固态存储器相应地修改图表并且任选的提供反分配状态。一些上下文中,ATA兼容的TRIM指令是示范性的反分配指令。对于又一个示例,所述命令包括超电容测试指令或数据硬化成功询问;作为响应,固态存储器提供恰当的状态。一些实施方式中,主机接口111兼容SATA协议并且被使用NCQ指令启动为具有高达32个未决的指令,每个具有唯一的表示为从0到31的数字的标签。一些实施方式中,标签轨迹113被启动以便关联用于经由外部接口110收到的指令的外部标签和用于在通过固态存储器控制器100处理的期间追踪指令的内部标签。
根据不同的实施方式,以下一个或多个:数据处理121任选的和/或有选择性的处理缓冲器131和外部接口110之间发送的一些或所有的数据;并且数据处理121任选的和/或有选择性的处理存储在缓冲器131中的数据。一些实施方式中,数据处理121使用一个或多个引擎123以便执行以下一个或多个:格式化;重新格式化;译码;和任何其他数据处理和/或操作任务。
缓冲器131存储从外部接口110发送到设备接口190(或从设备接口190发送到外部接口110)的数据。一些实施方式中,缓冲器131额外的存储系统数据,例如一些或所有的映象表(由固态存储器控制器100用于管理一个或多个闪设备192)。不同的实施方式中,缓冲器131具有以下一个或多个:用于数据临时存储的存储器137;用于控制数据向和/或从缓冲器131移动的DMA133;和用于提供高位错误校正和/或冗余功能的ECC——X135;及其他数据移动和/或操作功能。高位冗余功能的一个实例是类集群(RAID——like)能力,在此冗余位于闪设备(例如,多个闪设备192)级和/或闪塑模(例如,闪塑模194)级,而不是在磁盘级。
根据不同的实施方式,以下一个或多个:ECC161任选的和/或有选择性的处理缓冲器131和设备接口190之间发送的一些或所有的数据;并且ECC161任选的和/或有选择性的处理存储在缓冲器131中的数据。一些实施方式中,ECC161用于提供低位错误校正和/或冗余功能,例如根据一个或多个ECC技术。一些实施方式中,ECC161实现以下一个或多个:CRC(循环冗余码校验)码;汉明码;RS(记录分隔符)码;BCH码;LDPC码;Viterbi(维特比)码;篱码;硬决断码;软决断码;基于消磁的码;任何错误检测的和/或校正码;和任何上述的组合。一些实施方式中,ECC161包括一个或多个解码器(例如LDPC解码器)。
设备接口逻辑191经由设备接口190控制闪设备192的样品。设备接口逻辑191被启动以便根据闪设备192的协议发送数据到/从所述闪设备192的样品。设备接口逻辑191包括调度193以便有选择性的经由设备接口190序列控制所述闪设备192的样品。例如,一些实施方式中,调度193被启动以便队列闪设备192的操作,并且有选择性的发送所述操作到闪设备192(或塑模194)样品的单独的个体,因为单独的闪设备192(或闪塑模194)的样品是可用的。
图表141在外部接口110上使用的数据地址和设备接口190上使用的数据地址之间转换,其使用表格143以便映射外部数据地址到NVM199中的位置。例如,一些实施方式中,图表141转换外部接口110上使用的LBA经由由表格143提供的映射到块和/或页面地址(目标是一个或多个闪塑模194)。对于因为驱动制造或反分配而从未被写入的LBA,如果LBA被读取,所述图表指向将返回的缺省值。例如,当处理反分配命令时,修改所述图表使得对应于反分配LBA的入口指向缺省值中的一个。在不同的实施方式中,有不同的缺省值,每个缺省值有一个对应指示物。多个缺省值允许读取一些反分配LBA(例如在第一个范围中)为一个缺省值(当读取其他反分配的例如在第二个范围中的LBA作为另一个缺省值时)。在不同的实施方式中,所述缺省值由闪存、硬件、固件、指令和/或基本自变数和/或参数、可编程寄存器或它的不同组合定义。
在一些实施方式中,图表141使用表格143以便执行和/或查寻外部接口110上使用的地址和设备接口190上使用的数据地址之间的换算。根据不同的实施方式,表格143是以下中一个或多个:单级图表;两级图表;多级图表;图表高速缓存;压缩图表;任何类型的从一个地址空间到另一个地址空间的映射;和任何上述的综合。根据不同的实施方式,表格143包括以下一个或多个:静态随机存取存储器;动态随机存储器;NVM(例如闪存);高速缓冲存储器;芯片上存储器;脱离芯片存储器;任何上述的综合。
在一些实施方式中,回收站151执行碎片收集。例如,在一些实施方式中,闪设备192样品包含必须在被重写入之前删去的块。启动回收站151以便确定闪设备192样品的哪个部分处于活跃的使用中(例如,被分配而不是被反分配),例如通过扫描由图表141保持的图表,并且产生可用于写入的(通过擦除它们)闪设备192样品的未使用的(例如,反分配的)部分。在此外的实施方式中,启动回收站151以便移动存储在闪设备192样品内的数据来产生可用于写入的闪设备192样品更大邻近的部分。
在一些实施方式中,闪设备192样品被有选择性的和/或动态地配置、管理和/或使用以便具有一个或多个带用于存储不同类型和/或特性的数据。带的数量、安排、大小和类型动态可变。例如,来自计算主机的数据被写入到热(活跃的)带里,同时来自回收站151的数据被写入到冷(惰性的)带里。在一些使用情形中,如果计算主机写入长的、连续的流,那么所述热带的尺寸增长,反之如果计算主机随机写入或很少写入,那么冷带的尺寸增长。
CPU171控制固态存储器控制器100不同的部分。CPU171包括CPU核心172。根据不同的实施方式,CPU核心172是一个或多个单核心或多核心处理器。在一些实施方式中,在核心172中的单独的处理器核心是多线程的。CPU核心172包括指令和/或数据高速缓存和/或存储器。例如,指令存储器包括指令以便启动CPU核心172执行程序(例如软件,有时称为固件)来控制固态存储器控制器100。在一些实施方式中,一些或全部由CPU核心172执行的固件存储在闪设备样品上(如图解的,例如,在图1B中NVM199的固件106)。
在不同的实施方式中,CPU171还包括:当命令在进行中时追踪和控制经由外部接口110收到的命令的指令管理173;控制缓冲器131的分配和使用的缓冲区管理175;控制图表141的翻译管理177;控制数据地址连贯性和避免例如外部数据访问和回收数据访问之间的冲突的同调管理179;控制设备接口逻辑191的设备管理181;控制修改和通信识别信息的身份管理182,和任选的其他管理单位。根据不同的实施方式,由CPU171运行的没有、任何或全部所述管理功能是由硬件、软件(例如执行在CPU核心172上或经由外部接口110连接的主机上的固件)或任何它们的组合控制和/或管理。
在一些实施方式中,启动CPU171以便执行其他管理任务,例如以下一个或多个:收集和/或报告性能统计;实现SMART;控制电源序列,控制和/或监测和/或调整功耗;响应电源故障;控制和/或监测和/或调整时钟速率;及其他管理任务。
不同的实施方式包括计算主机闪存控制器,其与固态存储器控制器100相似并且兼容与不同的计算主机一起的操作,例如经由适配主机接口111和/或外部接口110。所述不同的计算主机包括一个或任何以下组合:计算机、工作站计算机、服务器计算机、存储服务器、SAN、NAS设备、DAS设备、存储装置、PC、便携式计算机、笔记本式计算机、上网本计算机、平板设备或计算机、超级本计算机、电子阅读设备(例如e——reader)、PDA、导航系统、(手提)GPS设备、自动操纵系统、自动媒体操纵系统或计算机、打印机、复印机或电话传真机或一体设备、POS设备、现金登记器、媒体播放机、电视机、媒体录音机、DVR、数字照相机、蜂窝状手机、无绳电话手机和电子游戏。
在不同的实施方式中,固态存储器控制器(或计算主机闪存控制器)的所有的或任何部分实现在单个IC、多塑模IC的单个塑模、多塑模IC的多个切块或多个IC上。例如,缓冲器131如同其他固态存储器控制器100的元件供应在同一塑模上。对于另一个实施例,缓冲器131对比其他固态存储器控制器100元件供应在不同的塑模上。
图1B示出了包括图1A的SSD的一个或多个实例的系统的各种实施方式的所选细节。SSD101包括经由设备接口190耦接至NVM199的SSD控制器100。该图示出了各类实施方式:直接耦接至主机的单个SSD,均分别经由相应的外部接口直接耦接至主机的多个SSD,以及经由各种互连元件间接耦接至主机的一个或多个SSD。
对于直接耦接至主机的单个SSD的示例实施方式,SSD101的一个实例经由外部接口110直接耦接至主机102(例如,交换机/光纤/中间控制器103是被省略的,被旁路的、被通过的)。作为经由相应的外部接口分别直接耦接至主机的多个SSD的示例实施方式,SSD101的多个实例中的每一个分别经由外部接口110的相应实例直接耦接至主机102(例如,交换机/光纤/中间控制器103是被省略的、被旁路的、被通过的)。作为经由各种互连元件间接耦接至主机的一个或多个SSD的示例实施方式,SSD 101的一个或多个实例中的每一个分别间接地耦接至主机102。每个间接耦接经由外部接口110的相应实例耦接至交换机/光纤/中间控制器103以及耦接至主机102的中间接口104。
包括交换机/光纤/中间控制器103的一些实施方式还包括经由存储器接口180耦接并且SSD可存取的卡存储器112C。在各种实施方式中,一个或多个SSD、交换机/光纤/中间控制器、和/或卡存储器被包括在物理可识别的模块、卡或可插元件(例如,I/O卡116)上。在一些实施方式中,SSD101(或其变形)对应于SAS驱动器或SATA驱动器,该SAS驱动器或SATA驱动器耦接至被操作为主机102的发起者。
主机102被使能为执行主机软件115的各种元件,诸如OS105、驱动器107、应用109以及多设备管理软件114的各种组合。点箭头107D是主机软件的代表←→I/O设备通信,例如数据发送至/数据接收自SSD101的一个或多个实例,以及经由驱动器107、驱动器107以及应用109自/至任一个或多个OS105,或经由驱动器107或直接作为VF。
OS105包括和/或被使能为与驱动器(由驱动器107概念地示出)操作以与SSD相接。各种版本的Windows(例如,95,98,ME,NT,XP,2000,Server,Vista以及7)、各种版本的Linux(例如,RedHat,Debian以及Ubuntu)、各种版本的MacOS(例如,8、9和X)是OS105的实例。在各种实施方式中,驱动器是能够以标准接口和/或协议(例如,SATA、AHCI或NVMExpress)操作的标准和/或普通的驱动器(有时为“用收缩性薄膜包装的”或“预安装的”),或被可选地定制和/或供应商专用于使能专用于SSD101的命令的使用。一些驱动器和/或驱动器具有通过模式,以使能应用层级的程序,诸如经由优化的NAND(有时被称为ONA)存取的应用109或直接NAND存取(有时称为DNA)技术,以将命令直接通信给SSD101,从而使得即使在使用普通驱动器也能够实现定制化应用使用专用于SSD101的命令。ONA技术包括以下的一个或多个:使用非标准修饰符(提示);使用供应商专用命令;非标准统计的通信,例如根据压缩性的实际NVM使用;以及其他技术。DNA技术包括以下中的一个或多个:使用提供对NVM的未标明读取、写入和/或擦除存取的非标准命令或供应商专用;使用提供对NVM的更多直接存取的非标准或供应商专用的命令,例如通过将I/O设备将以其他方式进行数据格式化进行旁路;以及其他技术。驱动器的示例是没有ONA或DNA支持的驱动器、ONA使能驱动器、DNA使能驱动器以及ONA/DNA使能驱动器。驱动器的其他示例是供应商提供的、供应商开发的和/或供应商增强的驱动器以及客户端提供的、客户端开发的和/或客户端增强的驱动器。
应用层级的程序的示例是没有ONA或DNA支持的应用、ONA使能应用、DNA使能应用以及ONA/DNA使能应用。点线箭头109是应用的代表←→I/O设备通信(例如,经由驱动器旁路或经由用于应用的VF旁路),例如,ONA使能应用,以及与SSD通信的ONA使能驱动器,诸如使用OS作为媒介而没有应用。点线箭头109V是应用的代表←→I/O设备通信(例如,经由用于应用的VF旁路),例如,DNA使能应用,以及与SSD通信的DNA使能驱动器,诸如使用OS或驱动器作为媒介而没有应用。
在一些实施方式中,对于固件存储(例如,固件106),使用NVM199的一个或多个部分。固件存储包括一个或多个固件图像(或其部分)。固件图像数据例如具有由例如SSD控制器100的CPU核172执行的固件的一个或多个图像。对于另一个示例,固件图像具有在固件执行期间被例如CPU参考的恒定值、参数值以及NVM设备信息的一个或多个图像。固件的图像对应于例如当前固件图像以及0或多个之前(相对于固件更新)的固件图像。在各种实施方式中,固件提供通常的、标准的、ONA和/或DNA操作模式。在一些实施方式中,一个或多个固件操作模式经由键盘或各种软件技术来使能,可选地通过驱动器通信和/或提供。
在缺少交换机/光纤/中间控制器的一些实施方式中,SSD经由外部接口110直接耦接至主机。在各种实施方式中,SSD控制器100经由一个或多个中间层级的其他控制器(例如,RAID控制器)耦接至主机。在一些实施方式中,SSD101(或其变形)对应于SAS驱动器或SATA驱动器,并且交换机/光纤/中间控制器103对应于反过来耦接至发起者的扩展器,或可选地,交换机/光纤/中间控制器103对应于经由扩展器间接耦接至发起者的桥接器。在一些实施方式中,交换机/光纤/中间控制器103包括一个或多个PCIe交换机和/或光纤。
在各种实施方式中,例如其中主机102是计算主机(例如,计算机、工作站计算机、服务器计算机、存储服务器、SAN、NAS设备、DAS设备、存储器、PC、膝上型计算机、笔记本计算机和/或上网本计算机)的一些实施方式,计算主机可选地被使能为与一个或多个本地和/或远程服务器(例如,可选服务器118)进行通信(例如,经由可选的I/O&存储设备/资源117以及可选的LAN/WAN119)。通信能够实现例如对SSD101元件的任意一个或多个的本地和/或远程存取、管理和/或使用。在一些实施方式中,通信全部或部分地经由以太网。在一些实施方式中,通信全部或部分地经由光纤信道。在各种实施方式中,LAN/WAN119是局域网和/或广域网中的一个或多个的代表,诸如服务器农场中的任意一个或多个网络、耦接服务器农场的网络、城域网以及因特网。
在各种实施方式,SSD控制器和/或计算主机闪存控制器与一个或多个NVM组合被实施为非易失性存储元件,例如USB存储元件、CF存储元件、MMC存储元件、eMMC存储元件、闪电存储元件、UFS存储元件、SD存储元件、存储器条存储元件以及xD图形卡存储元件。
在各种实施方式中,SSD控制器(或计算主机闪存控制器)的所有或任何部分或其功能在控制器耦接至的主机(例如,图1B的主机102)中实施。在各种实施方式中,SSD控制器(或计算主机闪存控制器)的所有或任何部分或其功能经由硬件(例如,逻辑电路)、软件和/或固件(例如,驱动器软件或SSD控制固件)或其任意组合来实施。例如,与ECC单元(例如,类似于图1A的ECC161和/或ECC-X135)相关联的功能部分经由主机上的软件来实施并且部分经由SSD控制器中的固件和硬件来实施。对于另一个示例,与回收单元(例如,类似于图1A的回收站151)相关联的功能部分经由主机上的软件来实施并且部分经由计算主机闪存控制器中的硬件来实施。
在各种实施方式和使用情景中,根据逻辑片断和/或部分为NVM设备(例如,一个或多个闪存芯片和/或闪存芯片)执行一个或多个管理功能。管理功能包括读取、回收(再循环)、擦除、编程/写入和其他管理功能的任意一个或多个。逻辑片断和/或部分有时被称为R块。
R块被示例为穿过例如闪存的各种芯片(例如,所有的芯片,不包括全部或部分失败的芯片的所有芯片和/或一个或多个选择的芯片子集)的逻辑片断或部分。例如,在具有R闪存芯片的闪存中,每个闪存期间具有N个块,每个R块是来自每个为整个N个R块一起采取的闪存芯片的第i个。继续该实例,如果一个R闪存芯片失败,则每个R块是来自整个N-1个R块的除了失败的闪存芯片的闪存芯片的每一个的第i个块。作为另一个实例,在具有R闪存芯片的闪存中,每个具有N个块,每个R块是来自整个N/2个R块的每个闪存芯片的每一个的第i和第(i+1)个块。作为又一个实例,在具有多个双平面的设备的闪存中,每个R块是来自每个双平面设备的第i个偶数块和第i个奇数块。作为最后一个实例,在具有R闪存芯片的闪存中,每个具有N个块,每个R块是来自整个N/k个R块的每个闪存芯片的第(i+k-1)个块。
在具有成对处理的或作为形成R块的一部分的其他相关的组的各种实施方式中,来自块的相关组的每个块的相应页面也被视为至少用于写入、形成较大多块页面的单元。例如,继续前述的双平面实例,特定的一个偶数块的第一页面和该偶数块的相关的一个第一页面被视为用于写入的单元和可选地和/或可选择地作为用于读取的单元。类似地,特定偶数块的第二页面和相关联的偶数块的第二页面被视为单元。根据各种实施方式,本文使用的NVM的页面是指以下的一个或多个:单个NVM的页面;NVM的多块页面;用于写入的可选地和/或可选择地视为一个或多个用于读取的一个或多个单独页面的多块页面;以及其他NVM页面的组合或联合。
考虑用于作为R块的管理的闪存芯片块的其他布置,包括虚拟和物理块地址的映射以确保R块具有来自每个芯片的一个块,即使某些块是不合适的。在各种实施方式中,在每个闪存芯片中的N个块的某一些被用作备用从而虚拟和物理块地址之间的映射具有备用(否则未被使用)的块以替代在R块中有缺陷的块。
0/1均衡恢复
图2A至图2D示出了与“0/1”均衡恢复相关的设备阈值电压分布。为了该讨论的目的,每个峰形的凸起是提取的表示NVM的读取单元大小的部分的相应状态的设备阈值电压概率分布的独立高斯状曲线。设备阈值电压轴利用向右增加正电压来绘出。未特意提供绝对大小,并且未确定参考点,从而图更普遍地适用于较大数量的NVM。图2A和图2B是SLC特定的,而图2C和图2D是MLC特定的。
在图2A中,表示初始时刻(例如,当相应的数据被写入时),最左侧的分布220表示逻辑的1并且最右侧的分布230表示逻辑的0。根据该技术,最左侧的分布可保持在(至少主要地)负电压。读取阈值210理想地位于两个分布之间。
除了由本文的实施方式连接的,在某些实施方式中,独立于这些设备阈值电压分布,NVM利用存储的0和1的统计分布的具体知识来写入。更具体地,在某些实施方式中,使用各种加密和/或加扰技术从而使0和1的统计分布是50-50%(50%的0和50%的1)。当使用名义上的读取阈值(其理想地适配于图2A的情形)读取SLC时,观测到的0和1的读取数据统计分布同样为50-50%。50-50%的统计分布并不意味着数据的任何一个采样将具有严格的0位和1位的均衡,而是很多采样的平均产生汇聚为50-50%的0位和1位的比例,且随着采样数的增加,具有增大的严格的概率边界。一个类推是当硬币被抛出很多次时,硬币正面和反面的分布产生具有方差约为n/4的高斯分布,其中,n是硬币被抛出的次数。例如,如果在读取单元中存在具有0位和1位的50-50%统计分布的18432位,而0位的数量的方差大约为4608,标准差约为68。在读取单元的一百万个采样中将预期少于一个具有0位的数字,多于340个(5个标准偏差)偏离9216的平均。
在图2B中,表示随后的时刻,名义上的读取阈值210如图2A,并且两个设备阈值电压分布225和235相对于图2A中的它们的较早的相应分布220和230发生漂移。为了该实例的目的,两个分布被示出为统一向左漂移(向更多的负电压)。应理解,更普遍地,两个分布能够彼此独立地向正极或负极方向移动。
观察图2B,当使用名义上的读取阈值再次读取SLC时,可预测直接从NVM观测到的0和1的统计分布(例如,在任何误差校正之间)将不会是50-50%。更具体地,对于给出的概念性实例,由于读取阈值使得某些0被失败地读取为1,将预期错误的多余的1。
实际上,推断的方向被颠倒。即,实际上,通常并不知道或直接地知道在设备阈值电压分布中的这些漂移。在某些实施方式中,改为使用对从NVM中读取的0和1的差异的观测(相对于已知的存储的0和1的分布)来推断设备阈值电压分布中的漂移。此外,在这些实施方式中,至少部分基于观测到的读取阈值215的差异来调整读取阈值(如本文在别处详细描述的),需要此调整直至恢复0/1的均衡。
类似地,图2C表示具有初始设备阈值电压分布的初始时刻(诸如,当写入相应的数据时),而图2D表示具有相应的随后的设备阈值电压分布的稍后时刻。更具体地,对于选择的Gray编码映射,分别表示11、10、00和10状态,设备阈值电压分布251、261、271和281(图2D的)相对于它们的较早的相应的设备阈值电压分布250、260、270和280(图2C的)发生漂移。三个名义上的(初始的)读取阈值还被示出:VREAD1240、VREAD2242和VREAD3244。再次为了实例的目的,在图2D中,4个分布被示出为都统一向左(向更多的负电压)漂移。应理解,更加普遍地,4个分布能够彼此独立地向正极或负极方向移动。
在某些实施方式中,使用各种加扰技术从而使4个状态的统计分布为25-25-25-25%(每个状态占25%)。当使用名义上的读取阈值(理想地适配于图2C的情形)来读取MLC,在某些实施方式中,4个状态的统计分布同样被配置为25-25-25-25%。(如别处讨论的,可由控制器直接观测到0和1,但需要推断所有的4个状态。)在某些实施方式中,使用观测到的从NVM中读取的差异(相对于25-25-25-25%的偏离)来推断在设备阈值电压分布中的漂移的存在。随后调整图2D中示出的读取阈值(如本文在别处详细描述的)以变成VREAD1265、VREAD2275和VREAD3285。在某些实施方式中,单独地对较低页面读取(调整VREAD2275)和较高页面读取(调整VREAD1265和/或VREAD3285)执行读取阈值调整。
用于0/1均衡恢复的功能
图3提供了图1A和图1B的SSD101、SSD控制器100和NVM199的替代性视图,重画了所选择的逻辑块边界以强调特定功能。位于顶部水平面的SSD101特写了外部接口110、SSD控制器100、NVM199和设备接口190。
外部接口110耦接至主机(诸如图1的主机102),并且如在图1A的中详细讨论的,并支持包括来源于主机的与存储器有关的指令以及写数据和来源于控制器的读数据的高层存储协议,诸如SATA。设备接口190支持低层NVMI/O业务,如在图1A中详细讨论的。NVM199特写NVM阵列332、可编程读取电压电路334、控制/状态寄存器336和I/O338。SSD控制器100特写主机接口111、加扰器310、ECC编码器320、设备接口逻辑191、不均衡检测器340、缓冲器131、ECC解码器360、解扰器370以及均衡复位逻辑380。如之前描述的,主机接口111经由外部接口110与主机耦接、为加扰器310提供写数据306以及从缓冲器131接收读数据351。
写路径和功能如下。加扰器310操作写数据306以产生至ECC编码器320的加扰的写数据311。加扰器310以可逆的方式加扰写数据306并且这样使得加扰的写数据311具有已知的统计分布存储状态。包括加扰数据的块的实例是包含加扰写数据311的块。例如,包括加扰数据的SLC块包含“0”和“1”数值的等价数字,以及包括加扰数据的4LC块包含“00”、“01”、“10”和“11”状态的等价数字。在某些实施方式中,加扰器310诸如经由将数据随机化为加密的副产物的AES编码器执行加密。在某些实施方式中,加扰器310使用线性反馈漂移寄存器(LFSR)来将数据随机化(但不具有任何数据安全目的)。ECC编码器320处理加扰的写数据311以增加额外的ECC位,产生经由设备接口190被提供至设备接口191以存入NVM199的ECC编码的写数据321。
基本的读路径和功能如下。经由设备接口190从NVM199接收包括未校正的和加扰的(原始的)读数据359的NVM页面。继续参照图3,每个读取单元名义上包括被加扰器301加扰的数据以及由ECC编码器320产生的额外的ECC位,但通常由于NVM存储和检索操作而无意地改变。读取单元经由缓冲器131被提供至ECC解码器360。ECC解码器360处理读取单元,采用所包括的额外的ECC位以一般地校正自数据被首次ECC编码后在任何点和时间出现的任何错误,产生被提供至解扰器370的校正的读数据361。解扰器370操作校正的读数据361,去除由加扰器310执行的加扰,产生经由缓冲器131作为读数据351被提供至主机接口111的未加扰的读数据371。
读路径和功能进一步包括不均衡检测器340和均衡恢复逻辑360。不均衡检测器340监控从NVM接收的原始读数据359,并且至少临时地将数据维持在统计分布状态。均衡恢复逻辑380经由设备逻辑191和NVM I/O338与NVM控制/状态寄存器336交互以经由NVM可编程读取电压电路334选择性地调整NVM读取阈值(被用于读取NVM阵列332)。NVM读取阈值的实例是参照图5A和图5B的当前读取阈值。在某些实施方式中,NVM读取阈值被写入控制/状态寄存器336并且配置可编程读取电压电路334。基于a)由ECC解码器360检测的未校正的读取362和b)由不均衡检测器340检测的不均衡(以统计状态)来调整读取阈值。在SLC和MLC实施方式中,读取单元是二进制数据。在SCL情况下(或如它是SLC操作MLC时),在0和1中的差异是直接可测量的。在某些实施方式中,基于数据是如何被存入NVM的知识推断在多于两个的MLC状态中的差异。
图3示出了在其中主机操作为用于写入NVM199和从NVM199读取的数据的来源和接收器的情景下用于0/1均衡恢复的功能。在各种实施方式(诸如通过图1A和图1B所示出的)中,一个或多个其他代理操作为用于写入NVM199和从NVM199读取的数据的来源和接收器。其他代理的实例是如在本文别处描述的将数据从一个位置移动到另一个的图1A的回收站151。
在各种实施方式中,至少部分使用一个或多个数据处理121和ECC161(图1A的两个)来实施与加扰器310、ECC编码器320、ECC解码器360和解扰器370的任何一个或多个相关的任何或全部功能。
用于0/1均衡恢复的控制流
图4示出了图1A、图1B和图3的SSD的实施方式的提供关于与写相关的操作和与读相关的操作的特定细节的所选择的控制流细节。写操作从动作410开始并通过430继续。尽管未明确示出返回路径,但后续写操作重新从动作410开始。类似地,读操作从动作440开始,通过460继续,并且有条件地通过480继续。尽管未明确示出返回路径,后续读操作重新从动作440开始。假设至少初始写入领先于读取相同的位置。另外,除了人为的情形,诸如测试,读操作和写操作通常作为需要用于相同或通常不同的位置的口令的应用被独立地调用。然而,在启发式实例中,第一读操作440概念性地紧接用于相同位置的写操作之后继续。
考虑与写相关的操作的更多细节,被写入NVM的最初的数据通常首先在动作410诸如经由加密或LFSR的使用被加扰。除了采用更多特征的地方,如本文使用的术语“加扰”是指经由导致存储在NVM中的各种状态中的已知的统计分布的任何处理或选择被写入的原始数据的处理。加扰方法包括加密和LFSR技术(同样见图3的加扰器310)。在某些加密实施方式中,加扰根据AES加密规范的至少一个版本。在某些LFSR实施方式中,加扰根据LFSR的至少一个选择。在某些实施方式中,加扰经由提供选定的当写入NVM时的状态的统计分布(不必使用加密或LFSR处理)更加直接地确定一个或多个测试模式的选择。
LFSR是具有从漂移寄存器的所选的信号音的线性函数产生输入位的联合逻辑反馈网络的硬件漂移寄存器或其软件模型。LFSR产生确定性的伪随机序列。至少概念性地,LFSR产生的伪随机序列是被增加至原始数据的模块2以提供加扰的数据。
随后,如在动作420中示出的,加扰的数据接着可选择地被ECC编码(同样见图3的ECC编码期320)。面对由于当使用NVM时的各种原因引起的错误,ECC编码提供方便数据恢复(经由错误校正)的多余的信息。这种错误更加普遍,并且因此具有一个或多个更小几何学、更大使用、更大寿命、更大温度漂移的ECC编码以及MLC存储器的使用更加可取。
如在动作430(最后的与写相关的操作)中示出的,被加扰的和可选择地ECC编码的数据随后被写入NVM。被写入的状态分布被认知为加扰的结果。在使用SLC存储器和AES加密的情形下,0-1分不被认知为50-50(即,50%的0和50%的1)。在使用4LC(4层MLC)存储器和AES加密的情形下,在写入较低和较高页面后的分布被认知为25-25-25-25(即,四种状态各占25%)。
在某些实施方式中,至少一个参考区域被专用于如上所述的一个或多个测试模式。在某些实施方式中,参考区域的位置被选择为最小化(或相反地,最大化)对各种NVM写/读加工品的测试模式的影响。在某些实施方式中,参考区域是参考页面,并且它的位置被选定为写入块中的最后页面,从而最小化写干扰对写数据的影响。由于影响电压分布的某些现象是随时间和/或温度变化的,参考区域用作对0/1差异的这些影响的已知测量。
更详细地考虑与读相关的操作,从动作440开始,从NVM读取一个或多个读取单元并且捕捉状态的分布。在某些实施方式中,直接确定0计数和1计数的每一个。接着,在动作450,做出恢复原始数据的尝试。这执行与在写之前执行的数据处理操作相反的操作。在写之前可选择地增加EEC编码,并且因此读取单元接着可选择地经历ECC解码(同样见图3的ECC解码器360)。在每个读取单元基础上,如果ECC解码成功了,则接着适当地执行解扰。例如,当在写之前使用了AES加密时,执行AES解密。或当使用LFSR产生的伪随机序列时,相同的序列时被增加至来自读取单元的ECC解码数据的模块2。
与读相关的操作在初期推断原始数据何时是可重新获得的,无论是否具有经由ECC解码可校正的错误。见来自判决460的“否”路径。然而,对于任何读取单元的不可校正的错误,还执行动作470和480。见来自判决460的“是”路径。在动作470,估计在状态分布中的差异(同样见图3的不均衡检测器340)。在某些实施方式中,所确定的差异是对所用读取单元计算的,即使少于全部的读取单元具有不可校正(例如,硬判决的解码)的错误。
接着,在动作480,至少部分基于所确定的差异的大小确定至少一个读取阈值的调整值(也称为,阈值漂移)。在某些实施方式中,如果所确定的差异的大小低于预定的容忍量,则不调整读取阈值。在某些实施方式中,采用多因子“校正算法”以取定调整的读取阈值,为读取阈值所确定的差异的大小仅为一个因子。
在某些实施方式中,校正算法采用被用于选择读取阈值的代替值的查找表格。所确定的差异的大小是查找表格中的至少一部分索引的基础。在某些实施方式中,查找表格基于使用的NVM的特定供应商被预特征化(权重)。在某些实施方式中,索引具有包括以下的一个或多个的额外的部分:程序/擦除循环、寿命、保持时间(自最后写入以来的时间)、温度以及任何其他可属于NVM的设备阈值电压分布的漂移或扰动的因子(同样见图3的均衡恢复逻辑380)。
在此和贯穿详细的说明,应记住,在通常使用的闪存微结构中,操作的尺寸是不同的;例如,读取单元是用于读取的最小尺寸,页面是用于写入(例如,编程)的最小尺寸,以及块是用于擦除的最小尺寸。每个块包括相应的多个页面,并且每个页面包括相应的多个读取单元。在各种实施方式中,SSD控制器以对应以下的一个或多个的量子从一个或多个闪存中读取和/或写入一个或多个闪存:一个或多个读取单元、一个或多个页面以及一个或多个块。
在某些实施方式中,在整个页面的基础上估计差异。在某些实施方式中,在读取单元的基础上估计差异。结合在读取上的不可校正的(例如,硬判决的解码)错误执行的差异估计是相对于与写入包括相同位置的最近的写中的相同位置执行的。
经由对保留漂移历史记录的监控的最佳读取阈值的预测
由图4表示的实施方式响应于不可校正的(例如,硬判决的解码)错误调整至少一个读取阈值。由图5A、图5B、图5C和图6表示的实施方式响应于制造特性、初始使用、定时器(例如,周期性的、不规则的或随即的)、在阈值之上的位错误率以及不可校正的(例如,硬判决的解码)错误的任意一个或多个调整至少一个读取阈值。由图5A、图5B、图5C和图6表示的各种实施方式是在其中以组来管理NVM的块并且用于特定组的所有块的至少一个读取阈值的调整是基于特定组的块的采样的部分读取的情景下操作的。例如,如果部分读取的至少某些满足条件,则调整用于特定管理组的所用块的读取阈值。在各种实施方式中,调整经由保留漂移时钟(保留漂移跟踪)技术。在某些实施方式中,结合由图5A、图5B、图5C和图6表示的技术使用由图4表示的技术。
图5A示出了最优化NVM(例如,SSD的)的读取阈值的实施方式的所选择的细节的流程图。在各种实施方式中,NVM设置有由NVM的制造商制定的并由制造商保证以正确运行的默认操作操作读取阈值。根据当前读取阈值执行对NVM的读取单元的读取。最初,在动作510,当前读取阈值被设置为默认操作读取阈值。在某些实施方式中,默认操作读取阈值被写入控制/状态寄存器336并配置图3的可编程读取电压电路334。
在动作520,根据当前读取与之执行NVM的读取。概念性地,与动作520的读取并行,控制器还执行与保留漂移跟踪590相关的各种行为,其共同地具有预测最佳读取阈值电压的目标,这使得硬读取错误相对地很少发生。在某些实施方式和/或使用情景中,保留漂移跟踪能够减少或避免硬(ECC不可校正的)读取错误。经由写入参考单元501、确定实际的新最佳读取阈值502以及初始化保留漂移历史记录503来初始化保留漂移跟踪。保留漂移跟踪随后在动作530能够利用被最优化为提高性能、功耗和可靠性的一个或多个的新的操作读取阈值来更新当前读取阈值。应注意,尽管在某些实施方式中,动作520在保留漂移纪录在动作503被初始化之前实施数据读取,但在某些实施方式中,动作503能够在动作520中的第一次数据读取之前出现。
保留漂移跟踪590的全部的功能也称为“保留漂移时钟”,其以与时钟发生器提供用于衍生定时信号的参考或标准大体相似的方式用作随着时间和温度的读取阈值电压(Vth)(以及随着时间和温度的保留漂移的测量)的标准或参考。为方便该类推,电压漂移参考的一个(SLC存储器)或多个(MLC存储器)最佳读取阈值电压的每个确定组在本文中被称为“时间戳”,其每个对应保留漂移历史记录的条目。在某些实施方式中,在保留漂移历史记录中的时间戳条目将还包括时间的表示(诸如,对系统事件的偏移计数或从实际时间适中衍生的数值),但在某些实施方式中更普遍地是,在保留漂移历史记录中的时间戳条目将不包括时间的表示。
在动作530,如下所述,至少部分根据由保留漂移历史记录所确定的保留漂移量来更新当前的读取阈值。在某些实施方式中,在时间中周期性地(诸如,一小时一次)执行当前读取阈值的更新。在某些实施方式中,例如,如以下详细描述的,根据一个或多个定时器T1550和T2551经由较小保留漂移更新540来执行当前读取阈值的更新。在某些实施方式中,在多个读取中周期性地(诸如,每100K读取一次)执行当前读取阈值的更新。更新包括借鉴保留漂移历史记录(参考时间戳的编辑/重新记录,例如,如下面详细描述的,由动作566之后的动作567更新的)来估计(例如,在动作555,如下面详细描述的,在某些实施方式中,通过简单的比较)区域(诸如,R块)的新的参考时间戳(例如,如下面详细描述的,在动作566确定的)。在某些实施方式中,不管何时编程相应的区域,新的区域特定的参考时间戳被重新记录。在某些实施方式中,不管何时重新记录(由于任何原因)区域的新的参考时间戳,调整(例如,在动作530并根据动作555)区域的当前读取阈值。
在动作501被写入的参考单元(也称为电压漂移参考)是根据预定规则选择的单元的集合并且根据实施方式包括在图1A的闪存芯片194上的一个或页面、一个或多个块或一个或多个其他芯片部分。在某些实施方式中,至少两个页面被用于参考单元,从而导致单元间干扰(ICI)。在某些实施方式中,利用具有统计分布的能够匹配常规使用(非参考单元)数据的模式来编程参考页面。在某些实施方式中,统计分布是随机的。在某些实施方式中,为SLC(或较低页面)数据和MLC(或较高页面)数据维持单独的参考页面以从较低页面和较高页面产生预期的不同漂移。在某些实施方式中,为在芯片内产生块到块的变动和/或芯片到芯片的变动,为参考单元(参考单元有目的地如此分布)使用位于不同位置的多个块和/或不同的芯片,并且采用平均以减轻变动。根据实施方式,为保持P/E循环或使参考单元相对地接近于平均P/E循环或使驱动成为整体,根据预定的规则,参考单元旋转(交替)常规使用(非参考)单元的至少一个其他相应的集合,诸如,在特定时间周期(例如,3个月)之后和/或在特定数量(例如,200个)的全局P/E循环之后。
根据预定的方法(诸如,在本文别处讨论的0-1均衡/差异的经验估计)在动作502执行(也可在动作566执行)实际的新最佳读取阈值的确定(也称为电压漂移参考时间戳的采样)。所确定的实际最佳读取阈值(也称为采样的时间戳)可由于各种原因(包括在初始编程期间的单元间干扰、设备的P/E循环、读取干扰以及由于时间流逝和温度偏离引起的保留漂移)而不同于预期的/表面上的编程的读取阈值。一旦确定了实际的新最佳读取阈值,则将它们作为第一条目记录在保留漂移历史记录中(不同地规定,电压漂移参考的采样时间戳被记录在保留漂移历史记录中)。每个条目存储的读取阈值的数量是非易失性存储器的层数的函数。根据实施方式,例如,仅具有为SLC存储器存储的一个读取阈值,但具有为4LC存储器存储的3个读取阈值。保留漂移历史记录被不同地称为(被存储在)(保留漂移历史记录)日志、存储器、缓冲器或高速缓存。根据实施方式,图1A的缓冲器131的部分和/或图1A的一个或多个缓存元件194的部分被用于存储和/或更新保留漂移历史记录。如将看出的,保留漂移历史记录的使用使读取阈值能够自动地补偿时间和温度,包括诸如断电的时间、存储器的温度等。
在某些实施方式中,新的操作读取阈值被写入控制/状态寄存器336并配置图3的可编程读取电压电路334。在各种实施方式中,根据已经由保留漂移跟踪的动作530更新至新的操作读取阈值更新的当前读取阈值来执行后续读取。保留漂移跟踪被描述为概念性地与读取并行地操作,至少在某些实施方式中,在动作520执行NVM的读取从而阻止动作590中的NVM的读取或写入与动作520中的NVM的读取同时执行。例如,动作520中的NVM的读取以比动作590中的NVM的读取或写入更高的优先权来执行。对于另外一个实例,动作590中的NVM的读取以不重要的方式来执行,诸如当NVM不然是空闲的时。
在各种实施方式中,SSD周期性地重新估计当前读取阈值。第一定时器(T1)和第二定时器(T2)分别在判决550和判决551中跟踪自执行最后的较小和主要保留漂移更新以来所流逝的时间。当T1定时器(而非T2)终止时,执行较小保留漂移更新。当T2定时器终止时,执行跟随较小保留漂移更新540之后的主要保留漂移更新560。在各种实施方式中,定时器通过软件、固件和硬件的任意一个或多个来配置。在某些实施方式中,第一定时器(T1)被配置为6到24个小时,而第二定时器(T2)被配置为一个或多个星期。
在某些实施方式中,较小和主要保留漂移更新相结合并且仅适用第一定时器(T1)。更具体地,在这种仅第一定时器的实施方式中,一旦由判决550产生“是”的结果,控制流直接进入动作560。第一定时器(T1)被配置为一天、一周或一个月流逝一次。更一般地,根据实施方式,确定实际的新最佳读取阈值的频率是根据以下的一个或多个来选择的:NVM的类型和它的特性;读取阈值的变化率的历史记录;温度(诸如来自温度传感器的);流逝的时间(诸如来自在其间操作设备的运行循环的);在每次上电一次;在每次重置一次;在每次从睡眠到唤醒一次以及其他因素。在某些实施方式中,根据块未在块被写入的预定间隔之内被读取的确定,在块被读取之前强制进行较小和/或主要保留漂移更新。
图5B和图5C分别示出了较小保留漂移更新540和主要保留漂移更新560(保留漂移跟踪500的部分)的实施方式的选择的细节的流程图。在图5B中,较小保留漂移更新540包括可选的选择保留漂移预测器/方案553、读取保留漂移历史记录554以及基于保留漂移历史记录555的预定新最佳读取阈值。在这种较小保留漂移更新重,根据实施方式使用一个或多个预测器(方案或算法)基于对现有的保留漂移历史数据的操作确定新的最佳读取阈值电压的预测值,但避免了与较小保留漂移更新相关的消耗时间的经验估计(包括对一个或多个测试读取阈值电压的改变和测试)。
根据实施方式,保留漂移预测器/方案可以是固定的,可编程为多个保留漂移预测器/方案中的特定预测器/方案,或者可根据预定标准来动态选择。第一预测方案包括一对一函数,其中,正常使用(非参考)单元被预测为表现与参考单元一致。第二预测方案包括基于时间的函数,其中,从参考单元获得的读取阈值根据保留漂移历史和从参考单元被最后写入起经过的时间来修改。第三预测方案包括补偿函数,其中,从参考单元获得的读取阈值根据表示正常使用单元与参考单元之间的差异(包括时间和/或损耗依赖的差异)的特征化数据来修改。作为一个特定实例,补偿预测器能够基于对正常使用单元相对于参考单元表现出不同保留偏移的确定来进行补偿。在一些实施方式中,参考单元与正常使用单元之间的改变随着时间和/或损耗更加显著,和/或该漂移具有较多线性的区域和较少线性的区域,且补偿预测器针对所有这些情况相应地进行补偿。预测方案通常也是可结合的。即,单个预测模块能够执行一个或多个预测方案。根据实施方式,由预测器施加的补偿包括随时间可变的线性函数、不随时间变化的线性函数、单一函数、随时间可变的非线性函数和不随时间可变的非线性函数。在具有分布式参考单元的一些实施方式中,预测器另外还执行对分布式参考单元块的平均。
图5C中,主要保留漂移更新560包括可选的实施时期(epoch,阶段,纪元)570、确定新的实际最佳读取阈值566和更新保留漂移历史567。在动作566中的新的实际最佳读取阈值的确定根据预定阈值通常使用在动作502中所用的相同方法来执行,如之前所讨论。一旦新的实际最佳读取阈值被确定,则它们在动作567中被添加至保留漂移历史。
在一些实施方式中,在足够时间之后和/或与暴露于足够的热相结合,进行对参考单元中的读取阈值是否比预期(基于由实施方式改变的标准)更多地偏移以及应当被重新设置(重新初始化;即,重写)的确定。例如,在一些NVM类型中,读取阈值漂移使得用于测量参考读取阈值水平的页面在一些时间量过去和/或温度偏离之后可能变得不可用(诸如通过所有的电荷漂移方式)。在一些实施方式中,参考单元仅在适度漂移量(例如,0.3V)之后被重新初始化,以便通常继续在电压漂移(针对时间和/或温度)的相对线性区域中对参考单元进行采样,并且以便避免在漂移(针对时间和/或温度)的相对更多非线性区域中对参考单元进行采样。
这一参考单元重设事件被视为定义新的阶段或时期(纪元)。可选的实施时期570包括查看保留漂移历史562、之后的“时期是否应结束?”确定563(其分支出控制流)。在为“否(继续当前时期)”时,控制流直接继续至动作566(如之前所述)。此外,在为“是(开始新时期)”的确定时,写入参考单元动作564和在保留漂移历史动作中标注新时期565在继续至动作566之前被实施。通过标注新时期(诸如通过递增保留漂移历史的时期计数字段),在时期改变之前的保留漂移历史继续贡献于有用的数据点(并提供更完整的历史预览),例如至少能使预测器在估计保留漂移的当前变化率时进行更加精确的“曲线拟合”。
在一些实施方式中,时期(纪元)的实施经由时期(阶段)数(在最重要的位中)和当前参考读取阈值水平(在最不重要的位中)的连接。在其他实施方式中,参考读取阈值水平诸如利用映射表而被映射以使保留漂移线性化(基于漂移随时间/温度的特性/比率的特征性知识)。时期数能使被使用的参考页面连续和/或能实现被重新编程的相同参考页面(以便将他们返回以接近初始读取阈值,也称为Vth0)。这能使参考偏移时钟具有任意范围,以及最佳和/或选择性地单独使用读取阈值漂移的更多线性区域。
当每个新的块被编程(或在一些实施方式中,每个新的R块)时,新块被分配通过参考漂移追踪预测的当前读取阈值。(在数据在R块上被条形化的各种实施方式中,R块中的所有块通常在与参考漂移时钟相同的时间被写入,并且以每个R块为基础执行参考漂移追踪耗费比以每个块为基础执行参考漂移追踪更小的空间)。
作为另一预测器实例,在一些实施方式中,当后续读取块中(或R块中)的页面时,用于读取的更新的标称/当前读取阈值至少部分被确定为块的时间戳(在块被最后写入时)和参考漂移时钟的当前(最新采样的)时间戳的函数(例如,它们之间的差和/或其他因数)。(在一些实施方式中,在确定经过的“时间”很小时,标称读取阈值被用于读取,且不存在读取阈值调整。)以此方式,标称读取阈值通过使用参考漂移追踪(参考漂移时钟)而针对时间/温度被适当补偿。
保留漂移追踪随着装置阈值电压分布偏移(例如,由于老化和/或暴露于热)在所管理的块的组中通过调整当前读取阈值来减小读取错误的数量。减少错误数量提高了性能、降低了功耗和/或提高了NVM的寿命。在一些实施方式中,当SSD、在SSD中使用的NVM的任何部分或在任何背景下使用的NVM的任何部分处于空闲时,整体和/或递增地执行保留漂移追踪,以减小对除保留漂移追踪之外的操作(例如,来自主机的访问、回收和/或映射管理)的影响。
一旦计算出新操作的读取阈值,则在动作530中为所表示的块中的读取单元将当前读取阈值更新为新操作的读取阈值。在一些实施方式中,用于所管理的块的组内的其他块(例如,除了所表示的块)的当前读取阈值也被更新为所计算的新操作读取阈值。在各种实施方式中,多个所表示的块被选择为作为一组经由保留漂移追踪来处理,且新操作的读取阈值针对该组进行平均以减小所管理的块的组内的块到块的改变。
在各种实施方式中,图5A、图5B和图5C中示出的一个或多个操作(或其一部分)通过SSD控制器(诸如图1A的SSD控制器100)或其元件来执行,和/或被SSD控制器或其元件管理。例如,在一些实施方式中,图5A、图5B和图5C中示出的一个或多个操作通过由图1A的CPU核172执行的固件来实施和/或被该固件管理。在各种实施方式中,图5A、图5B和图5C中示出的一个或多个操作(或其一部分)通过图3中示出的任何一个或多个元件来执行和/或被该任何一个或多个元件管理。例如,在一些实施方式中,实际新的最佳读取阈值的确定(例如,如由动作566的一些实施方式执行)至少部分经由图3的平衡恢复逻辑380来执行。
图6A至图6C概念性地示出了4LC存储器中的装置阈值电压分布。为了该讨论的目的,如图2A至图2D所示,每个峰状凸起是对表示针对NVM的读取单元大小的部分的代表性状态的装置阈值电压概率分布的独立高斯形曲线的抽象。通过向右增加正电压来绘制装置阈值电压轴。特意没有设定绝对大小,且没有确定参考点,使得曲线图更一般地适用于更广泛的NVM。图6A概念性地示出了每个单元存储两个位的4LC存储器。有四个装置阈值电压分布(E600、D1601、D2602和D3603),以及描绘出对应于不同状态的装置阈值电压分布的三个当前读取阈值(VOLD1610、VOLD2611和VOLD3612)。
图6B概念性地示出了具有偏移的装置阈值电压分布的4LC。有四个新的装置阈值电压分布(E’620、D1’621、D2’622和D3’623)。注意三个当前读取阈值不再完全独立于新的装置阈值电压分布。例如,D2’622的一些部分位于VOLD3612的右侧,且将被错误地识别。
图6C概念性地示出了4LC中具有偏移的装置阈值电压分布的新的操作读取阈值。通过保留漂移追踪来计算新的操作读取阈值VNEW1650、VNEW2651和VNEW3652。注意与当前读取阈值(VOLD1、VOLD2和VOLD3)相反,新的操作读取阈值(VNEW1、VNEW2和VNEW3)完全独立于新的装置阈值电压分布,因此减小了位错误和/或不可校正的(例如,硬确定的解码)错误的可能性。在各种实施方式中,图6C概念性地示出了来自更新当前读取阈值530的新的操作读取阈值。
示例性实施技术
在一些实施方式中,通过与由计算机系统的处理兼容的规范来指定由使用最佳读取阈值的SSD(例如,利用闪存、计算主机闪速存储器控制器和/或SSD控制器(诸如图1A的SSD控制器100)、以及处理器、微处理器、片上系统、专用集成电路、硬件加速器或提供所有或部分上述操作的其他电路中的一部分)执行的操作的全部或部分的各种组合。该规范根据各种描述,诸如硬件描述语言、电路描述、网表描述、掩膜(mask)描述或布局描述。实例性描述包括:Verilog、VHDL、SPICE、诸如PSpice的SPICE变形、IBIS、LEF、DEF、GDS-II、OASIS或其他描述。在各种实施方式中,处理包括解释、编译、模拟和合成的任何组合,以产生、验证或指定适用于包括在一个或多个集成电路上的逻辑和/或电路。根据各种实施方式,每个集成电路可根据各种技术设计和/或制造。所述技术包括可编程技术(诸如字段或掩模可编程门阵列集成电路)、半定制技术(诸如全部或部分基于单元的集成电路)和全定制技术(诸如实质上特定的集成电路)、它们的任何组合、或与集成电路的设计和/或制造兼容的任何其他技术。
在一些实施方式中,如由具有存储在其中的一组指令的计算机可读介质描述的操作的所有或部分的各种组合可通过以下来执行:执行和/或解释一个或多个程序指令、解释和/或编译一个或多个源和/或脚本语言语句、或执行通过编译、转换和/或解释在编程和/或脚本语言语句中表达的信息而产生的二进制指令。语句可与任何标准的编程或脚本语言(诸如C、C++、Fortran、Pascal、Ada、Java、VBscript和Shell)兼容。程序指令、语言语句或二进制指令中的一个或多个可选地被存储在一个或多个计算机可读存储介质元件中。在各种实施方式中,程序指令中的一些、所有或各个部分被实现为功能、例程、子例程、在线例程、程序、宏或其部分中的一个或多个。
结论
在准备文本和附图中,仅为了方便,在描述中已做了某些选择,且除非有相反的指示,否则选择本身不应被解释为传达了有关所描述的实施方式的结构或操作的额外信息。选择的实例包括:用于附图标记指定的特定组织或分配以及用于识别和引用实施方式的特征和元件的元件标识符(例如标注或数字标识符)的特定组织或分配。
词语“包括”、“包含”、“含有”和“具有”具体意在被理解为对描述开放式(非限制性)范围的逻辑组的抽象,且也并不意味着传达物理包含物,除非后面明确跟随词语“之内”。
尽管为了描述和理解清晰的目的,已在一些细节中描述了上述实施方式,但本发明不限于所提供的细节。有许多本发明的实施方式。所公开的实施方式是实例性的,而不是限制性的。
应理解构造、布置和使用的许多变化可能与本描述一致,且处于已公布的专利的权利要求的范围内。例如,互连和功能单位的位宽度、时钟速度和所使用的技术的类型根据每个组件块中的各种实施方式而可变。给于互连和逻辑的名称仅是实例性的,且不应被解释为限定所描述的概念。流程图和流程图过程、动作和功能元件的顺序和布置根据各种实施方式可变化。另外,除非特别说明与此相反,否则指定的值范围、使用的最大值和最小值或其他特定的规范(诸如闪存技术类型;以及寄存器和缓存器中的条目或级别的数量)仅是所描述的那些实施方式,期望跟踪实施技术的改进和变化,且不应被解释为限定。
可采用本领域公知的功能相当的技术,而不是用于实施各种组件、子系统、操作、功能、例程、子例程、在线例程、程序、宏或其部分的那些所述技术。还应理解,实施方式中的许多功能方面可在硬件(例如,一般专用电路)或软件(例如,经由编程的控制器或处理器的某种方式)中选择性实现,以作为取决于设计约束和更快处理的技术趋势(促使先前在硬件中的功能迁移至软件)和更高的集成密度(促使先前在软件中的功能迁移至硬件)的实施方式的功能。各种实施方式中的具体变化包括但不限于:划分的差异;不同的形式因素和配置;使用不同的操作系统和其他系统软件;使用不同接口标准、网络协议、或通信链路;以及当根据特定应用的独特工程和商业限制实施在本文中描述的概念时预期的其他变化。
已通过超越需要用于所描述的实施方式的很多方面的最小实现的细节和环境背景描述了实施方式。本领域普通技术人员将认识到,一些实施方式省略了公开的组件或特征,且无需改变剩余元件之间的基本合作。因此,应理解许多公开的细节不需要实施所描述的实施方式的各个方面。在剩余元件可与现有技术相区别的范围内,被省略的组件和特征不限于本文中所描述的概念。
设计中的所有这些变化是在由所描述的实施方式传达的教导上的非实质性变化。还应理解,本文中描述的实施方式对其他的计算和网络应用具有广泛的适用性,且并不限于所描述的实施方式的特定应用或行业。因此,本发明将被解释为包括涵盖在所公布的专利的权利要求的范围内的所有可能的修改和变更。

Claims (20)

1.一种方法,包括:
选择保留漂移预测器方案,以用于从保留漂移历史来预测非易失性存储器NVM中的最佳读取阈值电压;
读取与所述NVM的多个页面组的参考单元相关联的所述保留漂移历史;以及
至少基于所选择的保留漂移预测器方案和所读取的保留漂移历史来预测所述多个页面组中的至少一些的最佳读取阈值电压的值。
2.根据权利要求1所述的方法,其中根据预定标准动态地选择所述保留漂移预测器方案。
3.根据权利要求1所述的方法,其中所述保留漂移预测器方案包括一对一函数,其中所述多个页面组的非参考单元被预测为表现与所述参考单元一致。
4.根据权利要求1所述的方法,其中所述保留漂移预测器方案包括基于时间的函数,其中从所述参考单元获得的读取阈值根据所述保留漂移历史和从所述参考单元被最后写入起经过的时间来修改。
5.根据权利要求1所述的方法,其中所述保留漂移预测器方案包括补偿函数,其中从所述参考单元获得的读取阈值根据表示所述多个页面组的非参考单元与所述参考单元之间的差异的特征化数据来修改。
6.根据权利要求5所述的方法,其中所述非参考单元与所述参考单元之间的差异包括时间依赖和损耗依赖的差异。
7.根据权利要求1所述的方法,进一步包括:通过补偿预测器基于对所述多个页面组的非参考单元相对于所述参考单元表现出不同保留偏移的确定来补偿所述非参考单元与所述参考单元之间的变化。
8.根据权利要求7所述的方法,其中,由所述补偿预测器施加的补偿包括随时间可变的线性函数、不随时间变化的线性函数、单一函数、随时间可变的非线性函数和不随时间可变的非线性函数中的至少一者。
9.一种存储系统,包括:
非易失性存储器NVM;以及
存储控制器,其通信地耦合到所述NVM,所述存储控制器经配置以:
选择保留漂移预测器方案,以用于从保留漂移历史来预测所述NVM中的最佳读取阈值电压;
读取与所述NVM的多个页面组的参考单元相关联的保留漂移历史;以及
至少基于所选择的保留漂移预测器方案和所读取的保留漂移历史来预测所述多个页面组中的至少一些的最佳读取阈值电压的值。
10.根据权利要求9所述的存储系统,其中根据预定标准动态地选择所述保留漂移预测器方案。
11.根据权利要求9所述的存储系统,其中所述保留漂移预测器方案包括一对一函数,其中所述多个页面组的非参考单元被预测为表现与所述参考单元一致。
12.根据权利要求9所述的存储系统,其中所述保留漂移预测器方案包括基于时间的函数,其中从所述参考单元获得的读取阈值根据所述保留漂移历史和从所述参考单元被最后写入起经过的时间来修改。
13.根据权利要求9所述的存储系统,其中所述保留漂移预测器方案包括补偿函数,其中从所述参考单元获得的读取阈值根据表示所述多个页面组的非参考单元与所述参考单元之间的差异的特征化数据来修改。
14.根据权利要求13所述的存储系统,其中所述非参考单元与所述参考单元之间的差异进一步包括时间依赖和损耗依赖的差异。
15.根据权利要求9所述的存储系统,其中所述存储控制器进一步经配置以基于对所述多个页面组的非参考单元相对于所述参考单元表现出不同保留偏移的确定来补偿所述非参考单元与所述参考单元之间的变化。
16.根据权利要求15所述的存储系统,其中,由所述存储控制器施加的补偿包括随时间可变的线性函数、不随时间变化的线性函数、单一函数、随时间可变的非线性函数和不随时间可变的非线性函数中的至少一者。
17.一种非暂时性计算机可读存储媒体,具有存储于其上的处理器可执行指令,所述处理器可执行指令在被处理器执行时致使所述处理器:
选择保留漂移预测器方案,以用于从保留漂移历史来预测非易失性存储器NVM中的最佳读取阈值电压;
读取与所述NVM的多个页面组的参考单元相关联的保留漂移历史;以及
至少基于所选择的保留漂移预测器方案和所读取的保留漂移历史来预测所述多个页面组中的至少一些的最佳读取阈值电压的值。
18.根据权利要求17所述的非暂时性计算机可读存储媒体,其中所述保留漂移预测器方案包括补偿函数,其中从所述参考单元获得的读取阈值根据表示所述多个页面组的非参考单元与所述参考单元之间的差异的特征化数据来修改。
19.根据权利要求17所述的非暂时性计算机可读存储媒体,其中所述处理器经进一步配置以基于对所述多个页面组的非参考单元相对于所述参考单元表现出不同保留偏移的确定来补偿所述非参考单元与所述参考单元之间的变化。
20.根据权利要求19所述的非暂时性计算机可读存储媒体,其中所述补偿包括随时间可变的线性函数、不随时间变化的线性函数、单一函数、随时间可变的非线性函数和不随时间可变的非线性函数中的至少一者。
CN202010265327.7A 2013-02-10 2014-02-10 基于保留漂移历史的非易失性存储器读取阈值最优化 Active CN111445942B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010265327.7A CN111445942B (zh) 2013-02-10 2014-02-10 基于保留漂移历史的非易失性存储器读取阈值最优化

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201361762955P 2013-02-10 2013-02-10
US61/762,955 2013-02-10
CN202010265327.7A CN111445942B (zh) 2013-02-10 2014-02-10 基于保留漂移历史的非易失性存储器读取阈值最优化
CN201410046744.7A CN103985415B (zh) 2013-02-10 2014-02-10 基于保留漂移历史的非易失性存储器读取阈值最优化

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201410046744.7A Division CN103985415B (zh) 2013-02-10 2014-02-10 基于保留漂移历史的非易失性存储器读取阈值最优化

Publications (2)

Publication Number Publication Date
CN111445942A true CN111445942A (zh) 2020-07-24
CN111445942B CN111445942B (zh) 2024-03-08

Family

ID=50064496

Family Applications (3)

Application Number Title Priority Date Filing Date
CN201410046744.7A Active CN103985415B (zh) 2013-02-10 2014-02-10 基于保留漂移历史的非易失性存储器读取阈值最优化
CN202010265327.7A Active CN111445942B (zh) 2013-02-10 2014-02-10 基于保留漂移历史的非易失性存储器读取阈值最优化
CN202010265318.8A Pending CN111445941A (zh) 2013-02-10 2014-02-10 基于保留漂移历史的非易失性存储器读取阈值最优化

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201410046744.7A Active CN103985415B (zh) 2013-02-10 2014-02-10 基于保留漂移历史的非易失性存储器读取阈值最优化

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202010265318.8A Pending CN111445941A (zh) 2013-02-10 2014-02-10 基于保留漂移历史的非易失性存储器读取阈值最优化

Country Status (6)

Country Link
US (3) US9645177B2 (zh)
EP (1) EP2765578A1 (zh)
JP (1) JP6336767B2 (zh)
KR (1) KR102201697B1 (zh)
CN (3) CN103985415B (zh)
TW (1) TWI591644B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112599177A (zh) * 2020-12-23 2021-04-02 深圳大普微电子科技有限公司 一种阈值电压的管理方法、读取闪存数据的方法
CN112614529A (zh) * 2021-01-04 2021-04-06 长江存储科技有限责任公司 三维存储器及其控制方法
CN114168069A (zh) * 2020-08-21 2022-03-11 美光科技公司 具有增强的数据可靠性能力的存储器装置
CN114441845A (zh) * 2021-12-17 2022-05-06 际络科技(上海)有限公司 电压漂移监控方法及装置
CN115565587A (zh) * 2022-10-14 2023-01-03 北京得瑞领新科技有限公司 快速搜索阈值电压的方法、装置、存储介质及ssd设备

Families Citing this family (280)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11614893B2 (en) 2010-09-15 2023-03-28 Pure Storage, Inc. Optimizing storage device access based on latency
US8589655B2 (en) 2010-09-15 2013-11-19 Pure Storage, Inc. Scheduling of I/O in an SSD environment
US8732426B2 (en) 2010-09-15 2014-05-20 Pure Storage, Inc. Scheduling of reactive I/O operations in a storage environment
US8589625B2 (en) 2010-09-15 2013-11-19 Pure Storage, Inc. Scheduling of reconstructive I/O read operations in a storage environment
US12008266B2 (en) 2010-09-15 2024-06-11 Pure Storage, Inc. Efficient read by reconstruction
US8468318B2 (en) 2010-09-15 2013-06-18 Pure Storage Inc. Scheduling of I/O writes in a storage environment
US11275509B1 (en) 2010-09-15 2022-03-15 Pure Storage, Inc. Intelligently sizing high latency I/O requests in a storage environment
US9244769B2 (en) 2010-09-28 2016-01-26 Pure Storage, Inc. Offset protection data in a RAID array
US8775868B2 (en) 2010-09-28 2014-07-08 Pure Storage, Inc. Adaptive RAID for an SSD environment
US8589640B2 (en) 2011-10-14 2013-11-19 Pure Storage, Inc. Method for maintaining multiple fingerprint tables in a deduplicating storage system
US11636031B2 (en) 2011-08-11 2023-04-25 Pure Storage, Inc. Optimized inline deduplication
US8719540B1 (en) 2012-03-15 2014-05-06 Pure Storage, Inc. Fractal layout of data blocks across multiple devices
US10623386B1 (en) 2012-09-26 2020-04-14 Pure Storage, Inc. Secret sharing data protection in a storage system
US8745415B2 (en) 2012-09-26 2014-06-03 Pure Storage, Inc. Multi-drive cooperation to generate an encryption key
US11032259B1 (en) 2012-09-26 2021-06-08 Pure Storage, Inc. Data protection in a storage system
US9646039B2 (en) 2013-01-10 2017-05-09 Pure Storage, Inc. Snapshots in a storage system
US10908835B1 (en) 2013-01-10 2021-02-02 Pure Storage, Inc. Reversing deletion of a virtual machine
US11768623B2 (en) 2013-01-10 2023-09-26 Pure Storage, Inc. Optimizing generalized transfers between storage systems
US11733908B2 (en) 2013-01-10 2023-08-22 Pure Storage, Inc. Delaying deletion of a dataset
US9165668B1 (en) * 2013-07-29 2015-10-20 Western Digital Technologies, Inc. Data retention monitoring using temperature history in solid state drives
KR102120823B1 (ko) * 2013-08-14 2020-06-09 삼성전자주식회사 비휘발성 메모리 장치의 독출 시퀀스 제어 방법 및 이를 수행하는 메모리 시스템
US10263770B2 (en) 2013-11-06 2019-04-16 Pure Storage, Inc. Data protection in a storage system using external secrets
US11128448B1 (en) 2013-11-06 2021-09-21 Pure Storage, Inc. Quorum-aware secret sharing
US10365858B2 (en) 2013-11-06 2019-07-30 Pure Storage, Inc. Thin provisioning in a storage device
US10276247B2 (en) 2013-12-20 2019-04-30 Seagate Technology Llc Read retry operations with estimation of written data based on syndrome weights
US9818488B2 (en) * 2015-10-30 2017-11-14 Seagate Technology Llc Read threshold voltage adaptation using bit error rates based on decoded data
US9208086B1 (en) 2014-01-09 2015-12-08 Pure Storage, Inc. Using frequency domain to prioritize storage of metadata in a cache
CN104916330B (zh) * 2014-03-10 2019-04-12 东芝存储器株式会社 存储装置、存储器控制器及存储器控制方法
US10656864B2 (en) 2014-03-20 2020-05-19 Pure Storage, Inc. Data replication within a flash storage array
TWI492234B (zh) 2014-04-21 2015-07-11 Silicon Motion Inc 讀取快閃記憶體中所儲存之資料的方法、記憶體控制器與記憶體系統
KR102198855B1 (ko) * 2014-04-24 2021-01-05 삼성전자 주식회사 메모리 시스템 및 상기 메모리 시스템의 동작 방법
KR102210964B1 (ko) * 2014-05-13 2021-02-03 삼성전자주식회사 스토리지 장치, 스토리지 장치의 동작 방법, 그리고 스토리지 장치를 액세스하는 액세스 방법
KR102211865B1 (ko) * 2014-05-20 2021-02-04 삼성전자주식회사 불휘발성 메모리 시스템 및 메모리 컨트롤러의 동작 방법
US9779268B1 (en) 2014-06-03 2017-10-03 Pure Storage, Inc. Utilizing a non-repeating identifier to encrypt data
US11399063B2 (en) 2014-06-04 2022-07-26 Pure Storage, Inc. Network authentication for a storage system
US9218244B1 (en) 2014-06-04 2015-12-22 Pure Storage, Inc. Rebuilding data across storage nodes
US10496556B1 (en) 2014-06-25 2019-12-03 Pure Storage, Inc. Dynamic data protection within a flash storage system
US9218407B1 (en) 2014-06-25 2015-12-22 Pure Storage, Inc. Replication and intermediate read-write state for mediums
US10296469B1 (en) 2014-07-24 2019-05-21 Pure Storage, Inc. Access control in a flash storage system
US9495255B2 (en) 2014-08-07 2016-11-15 Pure Storage, Inc. Error recovery in a storage cluster
US9558069B2 (en) 2014-08-07 2017-01-31 Pure Storage, Inc. Failure mapping in a storage array
US9864761B1 (en) * 2014-08-08 2018-01-09 Pure Storage, Inc. Read optimization operations in a storage system
US10430079B2 (en) 2014-09-08 2019-10-01 Pure Storage, Inc. Adjusting storage capacity in a computing system
US10164841B2 (en) 2014-10-02 2018-12-25 Pure Storage, Inc. Cloud assist for storage systems
US9489132B2 (en) 2014-10-07 2016-11-08 Pure Storage, Inc. Utilizing unmapped and unknown states in a replicated storage system
US10430282B2 (en) 2014-10-07 2019-10-01 Pure Storage, Inc. Optimizing replication by distinguishing user and system write activity
KR102252378B1 (ko) 2014-10-29 2021-05-14 삼성전자주식회사 메모리 장치, 메모리 시스템, 상기 메모리 장치의 동작 방법 및 상기 메모리 시스템의 동작 방법
KR102263046B1 (ko) * 2014-10-29 2021-06-09 삼성전자주식회사 메모리 장치, 메모리 시스템, 상기 메모리 장치의 동작 방법 및 상기 메모리 시스템의 동작 방법
KR102287760B1 (ko) 2014-10-29 2021-08-09 삼성전자주식회사 메모리 시스템 및 상기 메모리 시스템의 동작 방법
US9727485B1 (en) 2014-11-24 2017-08-08 Pure Storage, Inc. Metadata rewrite and flatten optimization
US9773007B1 (en) 2014-12-01 2017-09-26 Pure Storage, Inc. Performance improvements in a storage system
US9552248B2 (en) 2014-12-11 2017-01-24 Pure Storage, Inc. Cloud alert to replica
US9588842B1 (en) 2014-12-11 2017-03-07 Pure Storage, Inc. Drive rebuild
US9864769B2 (en) 2014-12-12 2018-01-09 Pure Storage, Inc. Storing data utilizing repeating pattern detection
KR102282947B1 (ko) 2014-12-15 2021-07-30 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
US10545987B2 (en) 2014-12-19 2020-01-28 Pure Storage, Inc. Replication to the cloud
US10296354B1 (en) 2015-01-21 2019-05-21 Pure Storage, Inc. Optimized boot operations within a flash storage array
US11947968B2 (en) 2015-01-21 2024-04-02 Pure Storage, Inc. Efficient use of zone in a storage device
US9710165B1 (en) 2015-02-18 2017-07-18 Pure Storage, Inc. Identifying volume candidates for space reclamation
CN105989352B (zh) * 2015-03-06 2019-08-20 华为技术有限公司 图像识别加速器、终端设备及图像识别方法
US10082985B2 (en) 2015-03-27 2018-09-25 Pure Storage, Inc. Data striping across storage nodes that are assigned to multiple logical arrays
US9773563B2 (en) * 2015-03-27 2017-09-26 Toshiba Memory Corporation Memory controller, memory control method, and coefficient decision method
US10178169B2 (en) 2015-04-09 2019-01-08 Pure Storage, Inc. Point to point based backend communication layer for storage processing
CN106155812A (zh) 2015-04-28 2016-11-23 阿里巴巴集团控股有限公司 一种对虚拟主机的资源管理的方法、装置、系统及电子设备
US10140149B1 (en) 2015-05-19 2018-11-27 Pure Storage, Inc. Transactional commits with hardware assists in remote memory
US9547441B1 (en) 2015-06-23 2017-01-17 Pure Storage, Inc. Exposing a geometry of a storage device
US10310740B2 (en) 2015-06-23 2019-06-04 Pure Storage, Inc. Aligning memory access operations to a geometry of a storage device
US9589394B2 (en) * 2015-07-16 2017-03-07 GM Global Technology Operations LLC Determining the source of a ground offset in a controller area network
KR102321478B1 (ko) * 2015-07-30 2021-11-04 삼성전자주식회사 리텐션에 의한 데이터 손실을 방지하는 데이터 처리 시스템의 작동 방법
US9484098B1 (en) * 2015-08-05 2016-11-01 Sandisk Technologies Llc Smart reread in nonvolatile memory
KR102309841B1 (ko) 2015-08-24 2021-10-12 삼성전자주식회사 표면 실장 기술의 적용에 따른 메모리 셀의 문턱 전압 산포 변화 복구 기능을 갖는 데이터 스토리지 및 그것의 동작 방법
US11341136B2 (en) 2015-09-04 2022-05-24 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
US11269884B2 (en) 2015-09-04 2022-03-08 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
KR20170028825A (ko) 2015-09-04 2017-03-14 퓨어 스토리지, 아이앤씨. 압축된 인덱스들을 사용한 해시 테이블들에서의 메모리 효율적인 스토리지 및 탐색
KR102347182B1 (ko) * 2015-09-04 2022-01-04 삼성전자주식회사 메모리 장치, 메모리 시스템, 상기 메모리 장치의 동작 방법 및 상기 메모리 시스템의 동작 방법
US10121553B2 (en) 2015-09-30 2018-11-06 Sunrise Memory Corporation Capacitive-coupled non-volatile thin-film transistor NOR strings in three-dimensional arrays
US11120884B2 (en) 2015-09-30 2021-09-14 Sunrise Memory Corporation Implementing logic function and generating analog signals using NOR memory strings
US9842651B2 (en) 2015-11-25 2017-12-12 Sunrise Memory Corporation Three-dimensional vertical NOR flash thin film transistor strings
US9892800B2 (en) 2015-09-30 2018-02-13 Sunrise Memory Corporation Multi-gate NOR flash thin-film transistor strings arranged in stacked horizontal active strips with vertical control gates
US9843453B2 (en) 2015-10-23 2017-12-12 Pure Storage, Inc. Authorizing I/O commands with I/O tokens
US10347343B2 (en) * 2015-10-30 2019-07-09 Seagate Technology Llc Adaptive read threshold voltage tracking with separate characterization on each side of voltage distribution about distribution mean
KR102359979B1 (ko) 2015-11-16 2022-02-08 삼성전자주식회사 솔리드 스테이트 드라이브 장치 및 이를 포함하는 저장 시스템
CN106816179B (zh) 2015-11-30 2020-12-25 华为技术有限公司 一种闪存纠错方法和装置
WO2017127104A1 (en) * 2016-01-22 2017-07-27 Hewlett Packard Enterprise Development Lp Inject delay to simulate latency
JP6545631B2 (ja) 2016-03-02 2019-07-17 東芝メモリ株式会社 不揮発性半導体記憶装置
US10204043B2 (en) 2016-03-08 2019-02-12 Toshiba Memory Corporation Memory controller, method of controlling nonvolatile memory and memory system
US9721657B1 (en) 2016-04-02 2017-08-01 Intel Corporation Managing threshold voltage shift in nonvolatile memory
US10133503B1 (en) 2016-05-02 2018-11-20 Pure Storage, Inc. Selecting a deduplication process based on a difference between performance metrics
US10452297B1 (en) 2016-05-02 2019-10-22 Pure Storage, Inc. Generating and optimizing summary index levels in a deduplication storage system
CN107452421B (zh) * 2016-05-31 2020-06-16 建兴储存科技(广州)有限公司 固态储存装置及其状态预测方法
KR102589259B1 (ko) 2016-06-20 2023-10-12 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US10290358B2 (en) 2016-07-08 2019-05-14 Seagate Technology Llc Independent read threshold voltage tracking for multiple dependent read threshold voltages using syndrome weights
US10180868B2 (en) 2016-07-08 2019-01-15 Seagate Technology Llc Adaptive read threshold voltage tracking with bit error rate estimation based on non-linear syndrome weight mapping
US10203903B2 (en) 2016-07-26 2019-02-12 Pure Storage, Inc. Geometry based, space aware shelf/writegroup evacuation
US10157677B2 (en) * 2016-07-28 2018-12-18 Ip Gem Group, Llc Background reference positioning and local reference positioning using threshold voltage shift read
CN106293539A (zh) * 2016-08-18 2017-01-04 华为技术有限公司 一种闪存设备的访问方法、装置和系统
JP6659494B2 (ja) 2016-08-19 2020-03-04 キオクシア株式会社 半導体記憶装置及びメモリシステム
JP2018037123A (ja) * 2016-08-29 2018-03-08 東芝メモリ株式会社 半導体記憶装置及びメモリシステム
KR20180027710A (ko) 2016-09-06 2018-03-15 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 스토리지 장치 및 불휘발성 메모리 장치의 액세스 방법
US9691492B1 (en) * 2016-09-29 2017-06-27 Intel Corporation Determination of demarcation voltage for managing drift in non-volatile memory devices
US10191662B2 (en) 2016-10-04 2019-01-29 Pure Storage, Inc. Dynamic allocation of segments in a flash storage system
US10756816B1 (en) 2016-10-04 2020-08-25 Pure Storage, Inc. Optimized fibre channel and non-volatile memory express access
US10613974B2 (en) 2016-10-04 2020-04-07 Pure Storage, Inc. Peer-to-peer non-volatile random-access memory
US10162523B2 (en) 2016-10-04 2018-12-25 Pure Storage, Inc. Migrating data between volumes using virtual copy operation
US10481798B2 (en) 2016-10-28 2019-11-19 Pure Storage, Inc. Efficient flash management for multiple controllers
US10185505B1 (en) 2016-10-28 2019-01-22 Pure Storage, Inc. Reading a portion of data to replicate a volume based on sequence numbers
US10359942B2 (en) 2016-10-31 2019-07-23 Pure Storage, Inc. Deduplication aware scalable content placement
US10261876B2 (en) 2016-11-08 2019-04-16 Micron Technology, Inc. Memory management
US10430085B2 (en) 2016-11-08 2019-10-01 Micron Technology, Inc. Memory operations on data
KR20180070974A (ko) 2016-12-19 2018-06-27 삼성전자주식회사 비휘발성 메모리의 리드 동작 방법, 비휘발성 메모리를 포함하는 메모리 시스템 및 이의 동작 방법
US10452290B2 (en) 2016-12-19 2019-10-22 Pure Storage, Inc. Block consolidation in a direct-mapped flash storage system
US11550481B2 (en) 2016-12-19 2023-01-10 Pure Storage, Inc. Efficiently writing data in a zoned drive storage system
US11069418B1 (en) 2016-12-30 2021-07-20 EMC IP Holding Company LLC Method and system for offline program/erase count estimation
US10338983B2 (en) 2016-12-30 2019-07-02 EMC IP Holding Company LLC Method and system for online program/erase count estimation
US10289550B1 (en) 2016-12-30 2019-05-14 EMC IP Holding Company LLC Method and system for dynamic write-back cache sizing in solid state memory storage
KR20180082927A (ko) 2017-01-11 2018-07-19 에스케이하이닉스 주식회사 메모리장치의 에러정정장치 및 에러정정방법과, 에러정정장치를 포함하는 메모리 컨트롤러
US11093146B2 (en) 2017-01-12 2021-08-17 Pure Storage, Inc. Automatic load rebalancing of a write group
CN108461107B (zh) * 2017-02-21 2021-09-28 北京忆恒创源科技股份有限公司 读阈值跟踪方法与装置
JP6785168B2 (ja) 2017-02-28 2020-11-18 キオクシア株式会社 メモリシステム
US10528488B1 (en) 2017-03-30 2020-01-07 Pure Storage, Inc. Efficient name coding
US10229749B2 (en) 2017-03-31 2019-03-12 Samsung Electronics Co., Ltd. Nonvolatile memory storage system
US10381090B2 (en) 2017-03-31 2019-08-13 Samsung Electronics Co., Ltd. Operation method of nonvolatile memory device and storage device
US20180300083A1 (en) * 2017-04-12 2018-10-18 Hewlett Packard Enterprise Development Lp Write-ahead logging through a plurality of logging buffers using nvm
US10469103B1 (en) 2017-04-19 2019-11-05 Seagate Technology Llc Adaptive read retry optimization
US11403019B2 (en) 2017-04-21 2022-08-02 Pure Storage, Inc. Deduplication-aware per-tenant encryption
US10503586B2 (en) * 2017-04-26 2019-12-10 Sandisk Technologies Llc Dynamic read based on read statistics
US10944671B2 (en) 2017-04-27 2021-03-09 Pure Storage, Inc. Efficient data forwarding in a networked device
US10290331B1 (en) * 2017-04-28 2019-05-14 EMC IP Holding Company LLC Method and system for modulating read operations to support error correction in solid state memory
US10403366B1 (en) 2017-04-28 2019-09-03 EMC IP Holding Company LLC Method and system for adapting solid state memory write parameters to satisfy performance goals based on degree of read errors
US10608008B2 (en) 2017-06-20 2020-03-31 Sunrise Memory Corporation 3-dimensional nor strings with segmented shared source regions
JP7203054B2 (ja) 2017-06-20 2023-01-12 サンライズ メモリー コーポレイション 3次元nor型メモリアレイアーキテクチャ及びその製造方法
US10692874B2 (en) 2017-06-20 2020-06-23 Sunrise Memory Corporation 3-dimensional NOR string arrays in segmented stacks
US10402266B1 (en) 2017-07-31 2019-09-03 Pure Storage, Inc. Redundant array of independent disks in a direct-mapped flash storage system
US10976936B2 (en) 2017-08-23 2021-04-13 Micron Technology, Inc. Sensing operations in memory
US10347344B2 (en) * 2017-08-29 2019-07-09 Micron Technology, Inc. Read voltage calibration based on host IO operations
US10403372B2 (en) * 2017-08-29 2019-09-03 SK Hynix Inc. Memory system with adaptive read-threshold scheme and method of operating such memory system
US10714195B2 (en) 2017-08-31 2020-07-14 SK Hynix Inc. Read disturb detection and recovery with adaptive thresholding for 3-D NAND storage
US10062441B1 (en) * 2017-08-31 2018-08-28 Micron Technology, Inc. Determining data states of memory cells
US10831935B2 (en) 2017-08-31 2020-11-10 Pure Storage, Inc. Encryption management with host-side data reduction
US10446197B2 (en) 2017-08-31 2019-10-15 Micron Technology, Inc. Optimized scan interval
US10269422B2 (en) * 2017-09-08 2019-04-23 Cnex Labs, Inc. Storage system with data reliability mechanism and method of operation thereof
TWI628660B (zh) * 2017-09-19 2018-07-01 群聯電子股份有限公司 解碼方法、記憶體控制電路單元以及記憶體儲存裝置
US10776202B1 (en) 2017-09-22 2020-09-15 Pure Storage, Inc. Drive, blade, or data shard decommission via RAID geometry shrinkage
US10789211B1 (en) 2017-10-04 2020-09-29 Pure Storage, Inc. Feature-based deduplication
KR102349382B1 (ko) * 2017-10-11 2022-01-12 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
US10755793B2 (en) 2017-10-31 2020-08-25 Micron Technology, Inc. SLC page read
US10884919B2 (en) 2017-10-31 2021-01-05 Pure Storage, Inc. Memory management in a storage system
US10558518B2 (en) 2017-11-13 2020-02-11 International Business Machines Corporation Dynamic adjustments within memory systems
US10860475B1 (en) 2017-11-17 2020-12-08 Pure Storage, Inc. Hybrid flash translation layer
CN109840047A (zh) 2017-11-27 2019-06-04 华为技术有限公司 一种降低读延时的方法及装置
KR102113212B1 (ko) * 2017-11-28 2020-05-20 성균관대학교산학협력단 플래시 메모리 시스템 및 그 제어 방법
US11010233B1 (en) 2018-01-18 2021-05-18 Pure Storage, Inc Hardware-based system monitoring
US11144638B1 (en) 2018-01-18 2021-10-12 Pure Storage, Inc. Method for storage system detection and alerting on potential malicious action
US10970395B1 (en) 2018-01-18 2021-04-06 Pure Storage, Inc Security threat monitoring for a storage system
US10467527B1 (en) 2018-01-31 2019-11-05 Pure Storage, Inc. Method and apparatus for artificial intelligence acceleration
US10475812B2 (en) 2018-02-02 2019-11-12 Sunrise Memory Corporation Three-dimensional vertical NOR flash thin-film transistor strings
US11036596B1 (en) 2018-02-18 2021-06-15 Pure Storage, Inc. System for delaying acknowledgements on open NAND locations until durability has been confirmed
US11494109B1 (en) 2018-02-22 2022-11-08 Pure Storage, Inc. Erase block trimming for heterogenous flash memory storage devices
KR102402668B1 (ko) * 2018-02-26 2022-05-26 삼성전자주식회사 비휘발성 메모리 장치, 그것의 동작 방법 및 그것을 포함하는 저장 장치
KR102440379B1 (ko) * 2018-02-26 2022-09-06 에스케이하이닉스 주식회사 전자 장치, 비 일시적 컴퓨터 판독 가능 저장 매체, 및 전자 장치를 제어하는 방법
US11264094B2 (en) 2018-03-05 2022-03-01 Intel Corporation Memory cell including multi-level sensing
US10446246B2 (en) * 2018-03-14 2019-10-15 Silicon Storage Technology, Inc. Method and apparatus for data refresh for analog non-volatile memory in deep learning neural network
JP2019164865A (ja) 2018-03-20 2019-09-26 東芝メモリ株式会社 メモリシステム
TWI799488B (zh) * 2018-03-21 2023-04-21 韓商愛思開海力士有限公司 記憶體控制器、具有該記憶體控制器的記憶體系統及其操作方法
TWI661427B (zh) * 2018-04-02 2019-06-01 大陸商深圳大心電子科技有限公司 記憶體管理方法以及儲存控制器
US11934322B1 (en) 2018-04-05 2024-03-19 Pure Storage, Inc. Multiple encryption keys on storage drives
KR20190122422A (ko) * 2018-04-20 2019-10-30 에스케이하이닉스 주식회사 메모리 시스템 및 그 동작 방법
US11995336B2 (en) 2018-04-25 2024-05-28 Pure Storage, Inc. Bucket views
US10678433B1 (en) 2018-04-27 2020-06-09 Pure Storage, Inc. Resource-preserving system upgrade
US11385792B2 (en) 2018-04-27 2022-07-12 Pure Storage, Inc. High availability controller pair transitioning
US10678436B1 (en) 2018-05-29 2020-06-09 Pure Storage, Inc. Using a PID controller to opportunistically compress more data during garbage collection
CN108845765B (zh) * 2018-05-31 2021-06-29 郑州云海信息技术有限公司 一种nand数据读取方法、系统、设备及存储介质
US11436023B2 (en) 2018-05-31 2022-09-06 Pure Storage, Inc. Mechanism for updating host file system and flash translation layer based on underlying NAND technology
US10776046B1 (en) 2018-06-08 2020-09-15 Pure Storage, Inc. Optimized non-uniform memory access
US11281577B1 (en) 2018-06-19 2022-03-22 Pure Storage, Inc. Garbage collection tuning for low drive wear
US11869586B2 (en) 2018-07-11 2024-01-09 Pure Storage, Inc. Increased data protection by recovering data from partially-failed solid-state devices
TWI695386B (zh) * 2018-07-17 2020-06-01 旺宏電子股份有限公司 半導體電路及其操作方法
US10943669B2 (en) * 2018-07-23 2021-03-09 SK Hynix Inc. Memory system and method for optimizing read threshold
CN110851072B (zh) * 2018-08-21 2023-06-02 建兴储存科技(广州)有限公司 使用状态预测方法的固态储存装置
US11133076B2 (en) 2018-09-06 2021-09-28 Pure Storage, Inc. Efficient relocation of data between storage devices of a storage system
US11194759B2 (en) 2018-09-06 2021-12-07 Pure Storage, Inc. Optimizing local data relocation operations of a storage device of a storage system
US10846216B2 (en) 2018-10-25 2020-11-24 Pure Storage, Inc. Scalable garbage collection
US11113409B2 (en) 2018-10-26 2021-09-07 Pure Storage, Inc. Efficient rekey in a transparent decrypting storage array
US10866763B2 (en) * 2018-10-30 2020-12-15 Western Digital Technologies, Inc. Dynamic read based on read statistics
KR102599123B1 (ko) 2018-11-14 2023-11-06 삼성전자주식회사 인공 신경망 모델에 기초하여 읽기 레벨들을 추론하는 스토리지 장치 및 인공 신경망 모델의 학습 방법
CN109542356B (zh) * 2018-11-30 2021-12-31 中国人民解放军国防科技大学 面向容错的nvm持久化过程冗余信息的压缩方法和装置
CN109558263B (zh) * 2018-12-03 2021-10-29 郑州云海信息技术有限公司 一种固态硬盘数据读取错误的处理方法及相关装置
EP3891780A4 (en) 2018-12-07 2022-12-21 Sunrise Memory Corporation METHODS OF FORMING NETWORKS OF MULTILAYER VERTICAL NOR TYPE MEMORY CHAINS
US10698636B1 (en) * 2018-12-10 2020-06-30 Micron Technology, Inc. Trigger margin based dynamic program step characteristic adjustment
US11367488B2 (en) 2018-12-11 2022-06-21 SK Hynix Inc. Memory system and method for read operation based on grouping of word lines
US11158369B2 (en) * 2018-12-26 2021-10-26 Western Digital Technologies, Inc. On-chip non-volatile memory (NVM) search
CN109710951B (zh) * 2018-12-27 2023-10-17 北京百度网讯科技有限公司 基于翻译历史的辅助翻译方法、装置、设备及存储介质
US11194473B1 (en) 2019-01-23 2021-12-07 Pure Storage, Inc. Programming frequently read data to low latency portions of a solid-state storage array
CN111489776B (zh) * 2019-01-28 2022-04-22 深圳大心电子科技有限公司 数据读取方法、存储控制器与存储装置
CN109887537B (zh) * 2019-01-29 2021-04-06 华中科技大学 一种阈值电压漂移感知的ldpc码译码方法
JP2022519537A (ja) 2019-02-11 2022-03-24 サンライズ メモリー コーポレイション 垂直型薄膜トランジスタ、及び、垂直型薄膜トランジスタの、3次元メモリアレイのためのビット線コネクタとしての応用メモリ回路方法
US11150844B2 (en) 2019-02-21 2021-10-19 Micron Technology, Inc. Reflow endurance improvements in triple-level cell NAND flash
US11588633B1 (en) 2019-03-15 2023-02-21 Pure Storage, Inc. Decommissioning keys in a decryption storage system
US11334254B2 (en) 2019-03-29 2022-05-17 Pure Storage, Inc. Reliability based flash page sizing
US11397674B1 (en) 2019-04-03 2022-07-26 Pure Storage, Inc. Optimizing garbage collection across heterogeneous flash devices
US11775189B2 (en) 2019-04-03 2023-10-03 Pure Storage, Inc. Segment level heterogeneity
US10990480B1 (en) 2019-04-05 2021-04-27 Pure Storage, Inc. Performance of RAID rebuild operations by a storage group controller of a storage system
TWI690929B (zh) * 2019-04-11 2020-04-11 點序科技股份有限公司 記憶體裝置及其讀取參考電壓的調整方法
US11099986B2 (en) 2019-04-12 2021-08-24 Pure Storage, Inc. Efficient transfer of memory contents
CN110235111B (zh) 2019-04-30 2020-06-26 长江存储科技有限责任公司 电子设备和管理闪存的读取电平的方法
TWI685846B (zh) * 2019-05-30 2020-02-21 華邦電子股份有限公司 非揮發性記憶裝置及其抹除操作方法
CN110108234B (zh) * 2019-06-03 2024-06-07 呜啦啦(广州)科技有限公司 电流式双向弯曲传感器驱动装置及自动归零初始化方法
US11487665B2 (en) 2019-06-05 2022-11-01 Pure Storage, Inc. Tiered caching of data in a storage system
KR20200143107A (ko) 2019-06-14 2020-12-23 삼성전자주식회사 스토리지 장치의 구동 방법 및 이를 수행하는 스토리지 장치
US11281394B2 (en) 2019-06-24 2022-03-22 Pure Storage, Inc. Replication across partitioning schemes in a distributed storage system
US10929046B2 (en) 2019-07-09 2021-02-23 Pure Storage, Inc. Identifying and relocating hot data to a cache determined with read velocity based on a threshold stored at a storage device
US10990475B2 (en) * 2019-07-10 2021-04-27 Micron Technology, Inc. Read level edge find operations in a memory sub-system
US11422751B2 (en) 2019-07-18 2022-08-23 Pure Storage, Inc. Creating a virtual storage system
US11086713B1 (en) 2019-07-23 2021-08-10 Pure Storage, Inc. Optimized end-to-end integrity storage system
US11010095B2 (en) * 2019-07-25 2021-05-18 Western Digital Technologies, Inc. Dynamic and adaptive data read request scheduling
CN110797068A (zh) * 2019-08-06 2020-02-14 广州妙存科技有限公司 一种快速寻找nand闪存最佳重读电压的方法
US11321619B2 (en) 2019-08-14 2022-05-03 International Business Machines Corporation State dependent calibration of qubit measurements
KR20210024912A (ko) * 2019-08-26 2021-03-08 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
US10908845B1 (en) * 2019-08-27 2021-02-02 Micron Technology, Inc. Managing threshold voltage drift based on a temperature-dependent slope of the threshold voltage drift of a memory sub-system
US11963321B2 (en) 2019-09-11 2024-04-16 Pure Storage, Inc. Low profile latching mechanism
CN110808079A (zh) * 2019-10-10 2020-02-18 鸿秦(北京)科技有限公司 一种新式延缓磨损延长固态硬盘使用寿命的方法
US11403043B2 (en) 2019-10-15 2022-08-02 Pure Storage, Inc. Efficient data compression by grouping similar data within a data segment
US10957407B1 (en) * 2019-10-30 2021-03-23 International Business Machines Corporation Calculating corrective read voltage offsets in non-volatile random access memory
US11755751B2 (en) 2019-11-22 2023-09-12 Pure Storage, Inc. Modify access restrictions in response to a possible attack against data stored by a storage system
US11687418B2 (en) 2019-11-22 2023-06-27 Pure Storage, Inc. Automatic generation of recovery plans specific to individual storage elements
US11941116B2 (en) 2019-11-22 2024-03-26 Pure Storage, Inc. Ransomware-based data protection parameter modification
US11720692B2 (en) 2019-11-22 2023-08-08 Pure Storage, Inc. Hardware token based management of recovery datasets for a storage system
US11645162B2 (en) 2019-11-22 2023-05-09 Pure Storage, Inc. Recovery point determination for data restoration in a storage system
US11615185B2 (en) 2019-11-22 2023-03-28 Pure Storage, Inc. Multi-layer security threat detection for a storage system
US11657155B2 (en) 2019-11-22 2023-05-23 Pure Storage, Inc Snapshot delta metric based determination of a possible ransomware attack against data maintained by a storage system
US11341236B2 (en) 2019-11-22 2022-05-24 Pure Storage, Inc. Traffic-based detection of a security threat to a storage system
US11675898B2 (en) 2019-11-22 2023-06-13 Pure Storage, Inc. Recovery dataset management for security threat monitoring
US11720714B2 (en) 2019-11-22 2023-08-08 Pure Storage, Inc. Inter-I/O relationship based detection of a security threat to a storage system
US11651075B2 (en) 2019-11-22 2023-05-16 Pure Storage, Inc. Extensible attack monitoring by a storage system
US11625481B2 (en) 2019-11-22 2023-04-11 Pure Storage, Inc. Selective throttling of operations potentially related to a security threat to a storage system
US20220050898A1 (en) * 2019-11-22 2022-02-17 Pure Storage, Inc. Selective Control of a Data Synchronization Setting of a Storage System Based on a Possible Ransomware Attack Against the Storage System
US11520907B1 (en) 2019-11-22 2022-12-06 Pure Storage, Inc. Storage system snapshot retention based on encrypted data
US11500788B2 (en) 2019-11-22 2022-11-15 Pure Storage, Inc. Logical address based authorization of operations with respect to a storage system
US11515309B2 (en) 2019-12-19 2022-11-29 Sunrise Memory Corporation Process for preparing a channel region of a thin-film transistor in a 3-dimensional thin-film transistor array
JP2021111427A (ja) * 2020-01-15 2021-08-02 キオクシア株式会社 記憶装置及びその制御方法
US11144452B2 (en) * 2020-02-05 2021-10-12 Micron Technology, Inc. Temperature-based data storage processing
US11243711B2 (en) 2020-02-05 2022-02-08 Micron Technology, Inc. Controlling firmware storage density based on temperature detection
US11675500B2 (en) 2020-02-07 2023-06-13 Sunrise Memory Corporation High capacity memory circuit with low effective latency
US11508693B2 (en) 2020-02-24 2022-11-22 Sunrise Memory Corporation High capacity memory module including wafer-section memory circuit
US11507301B2 (en) 2020-02-24 2022-11-22 Sunrise Memory Corporation Memory module implementing memory centric architecture
US11217319B2 (en) 2020-02-28 2022-01-04 SK Hynix Inc. Read threshold optimization systems and methods by multi-dimensional search
US11170853B2 (en) * 2020-03-04 2021-11-09 Micron Technology, Inc. Modified write voltage for memory devices
US11705496B2 (en) 2020-04-08 2023-07-18 Sunrise Memory Corporation Charge-trapping layer with optimized number of charge-trapping sites for fast program and erase of a memory cell in a 3-dimensional NOR memory string array
US11880571B2 (en) 2020-05-13 2024-01-23 Micron Technology, Inc. Counter-based methods and systems for accessing memory cells
CN111814110B (zh) * 2020-05-22 2024-05-10 广东建科创新技术研究院有限公司 一种桥梁健康监测数据控制图分析方法
JP6887044B1 (ja) * 2020-05-22 2021-06-16 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置および読出し方法
JP6895002B1 (ja) * 2020-05-27 2021-06-30 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置および読出し方法
US11430528B2 (en) * 2020-08-25 2022-08-30 Micron Technology, Inc. Determining a read voltage based on a change in a read window
US11508446B2 (en) * 2020-09-23 2022-11-22 Silicon Motion, Inc. Method for accessing flash memory module and associated flash memory controller and electronic device
US11709621B2 (en) * 2020-10-09 2023-07-25 Western Digital Technologies Inc. Read threshold management and calibration
US11842777B2 (en) 2020-11-17 2023-12-12 Sunrise Memory Corporation Methods for reducing disturb errors by refreshing data alongside programming or erase operations
US11848056B2 (en) 2020-12-08 2023-12-19 Sunrise Memory Corporation Quasi-volatile memory with enhanced sense amplifier operation
KR20220103228A (ko) 2021-01-14 2022-07-22 삼성전자주식회사 메모리 컨트롤러, 메모리 장치, 및 저장 장치
US11372592B1 (en) * 2021-02-04 2022-06-28 Silicon Motion, Inc. Memory controller having a plurality of control modules and associated server for coding and decoding raw data from flash memory chips
US11626168B2 (en) * 2021-03-10 2023-04-11 Samsung Electronics Co.. Ltd. De-noising using multiple threshold-expert machine learning models
KR20220129377A (ko) * 2021-03-16 2022-09-23 에스케이하이닉스 주식회사 반도체 메모리 장치를 제어하는 컨트롤러 및 그 동작 방법
KR20220133372A (ko) * 2021-03-24 2022-10-05 삼성전자주식회사 직접 메모리 액세스의 카운트 값을 사용하는 스토리지 컨트롤러의 동작 방법, 스토리지 컨트롤러를 포함하는 스토리지 장치, 및 스토리지 장치의 동작 방법
US11664073B2 (en) 2021-04-02 2023-05-30 Micron Technology, Inc. Adaptively programming memory cells in different modes to optimize performance
US11615854B2 (en) 2021-04-02 2023-03-28 Micron Technology, Inc. Identify the programming mode of memory cells during reading of the memory cells
US11514983B2 (en) * 2021-04-02 2022-11-29 Micron Technology, Inc. Identify the programming mode of memory cells based on cell statistics obtained during reading of the memory cells
KR20220140052A (ko) * 2021-04-08 2022-10-18 삼성전자주식회사 히스토리 테이블을 사용하는 스토리지 컨트롤러의 동작 방법, 및 스토리지 컨트롤러를 포함하는 스토리지 장치
CN112988453A (zh) * 2021-04-08 2021-06-18 中国科学院微电子研究所 用于闪存的数据恢复方法
US11462292B1 (en) * 2021-04-12 2022-10-04 Samsung Electronics Co., Ltd. Error correction circuit of semiconductor memory device and semiconductor memory device including the same
US11462279B1 (en) 2021-05-13 2022-10-04 Western Digital Technologies, Inc. Modified distribution of memory device states
CN113325040B (zh) * 2021-05-28 2022-05-13 中国农业大学 一种感存算一体化微纳电子器件及其制备方法
US20230015697A1 (en) * 2021-07-13 2023-01-19 Citrix Systems, Inc. Application programming interface (api) authorization
TW202310429A (zh) 2021-07-16 2023-03-01 美商日升存儲公司 薄膜鐵電電晶體的三維記憶體串陣列
CN113672178B (zh) * 2021-10-25 2022-03-18 珠海妙存科技有限公司 nand flash重读定位方法
CN114546267B (zh) * 2022-02-14 2022-11-18 深圳源创存储科技有限公司 一种基于大数据计算的固态硬盘及固态硬盘系统
US20230342244A1 (en) * 2022-04-20 2023-10-26 Western Digital Technologies, Inc. Read Look Ahead Optimization According To NVMe Dataset Management Hints
WO2023221021A1 (en) * 2022-05-19 2023-11-23 Yangtze Advanced Memory Industrial Innovation Center Co., Ltd. Memory system, memory device, and method for read reference voltage management
US20240061606A1 (en) * 2022-08-16 2024-02-22 Yangtze Memory Technologies Co., Ltd. Read retry method for enhancing read performance and stability of 3d nand memory
JP7495635B2 (ja) 2022-10-12 2024-06-05 東芝情報システム株式会社 デバッグ装置及びデバッグ用プログラム
US11983422B1 (en) * 2023-03-08 2024-05-14 Dell Products L.P. PSLC-scan-based storage device initialization system
CN117111717B (zh) * 2023-10-24 2024-07-05 荣耀终端有限公司 一种闪存控制方法、电子设备和存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1819055A (zh) * 2004-12-09 2006-08-16 赛芬半导体有限公司 非易失性存储器存储单元读取方法
US20100309726A1 (en) * 2009-06-03 2010-12-09 Xueshi Yang Reference voltage optimization for flash memory
US20120008401A1 (en) * 2010-07-06 2012-01-12 Michael Katz Systems and methods for storing, retrieving, and adjusting read thresholds in flash memory storage system
US20120239991A1 (en) * 2010-07-02 2012-09-20 Stec, Inc. Apparatus and method for determining an operating condition of a memory cell based on cycle information
US20130007543A1 (en) * 2011-06-30 2013-01-03 Seagate Technology Llc Estimating temporal degradation of non-volatile solid-state memory

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5827946A (en) * 1997-04-30 1998-10-27 Hewlett-Packard Company Method for sample identification using a locked retention time database
US6538922B1 (en) * 2000-09-27 2003-03-25 Sandisk Corporation Writable tracking cells
US6691053B2 (en) * 2001-11-30 2004-02-10 Agilent Technologies, Inc. Method of matching retention times among multiple chromatographic system
US7289348B2 (en) * 2005-11-10 2007-10-30 Sandisk Corporation Reverse coupling effect with timing information
KR101470621B1 (ko) * 2006-09-27 2014-12-05 샌디스크 테크놀로지스, 인코포레이티드 셀 모집단 분포 보조 판독 마지닝을 갖는 메모리
US7941590B2 (en) * 2006-11-06 2011-05-10 Marvell World Trade Ltd. Adaptive read and write systems and methods for memory cells
KR100891005B1 (ko) * 2007-06-28 2009-03-31 삼성전자주식회사 고온 스트레스로 인한 읽기 마진의 감소를 보상하기 위한플래시 메모리 장치 및 그것의 읽기 전압 조정 방법
US7957187B2 (en) * 2008-05-09 2011-06-07 Sandisk Corporation Dynamic and adaptive optimization of read compare levels based on memory cell threshold voltage distribution
US7787307B2 (en) * 2008-12-08 2010-08-31 Micron Technology, Inc. Memory cell shift estimation method and apparatus
JP5349256B2 (ja) * 2009-11-06 2013-11-20 株式会社東芝 メモリシステム
US8649212B2 (en) * 2010-09-24 2014-02-11 Intel Corporation Method, apparatus and system to determine access information for a phase change memory
US8467237B2 (en) * 2010-10-15 2013-06-18 Micron Technology, Inc. Read distribution management for phase change memory
US8248856B2 (en) * 2010-10-20 2012-08-21 Seagate Technology Llc Predictive read channel configuration
CN102592672A (zh) * 2011-01-06 2012-07-18 上海华虹集成电路有限责任公司 Flash EEPROM动态参考源电路结构
JP2012195036A (ja) * 2011-03-17 2012-10-11 Toshiba Corp 不揮発性半導体記憶装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1819055A (zh) * 2004-12-09 2006-08-16 赛芬半导体有限公司 非易失性存储器存储单元读取方法
US20100309726A1 (en) * 2009-06-03 2010-12-09 Xueshi Yang Reference voltage optimization for flash memory
US20120239991A1 (en) * 2010-07-02 2012-09-20 Stec, Inc. Apparatus and method for determining an operating condition of a memory cell based on cycle information
US20120008401A1 (en) * 2010-07-06 2012-01-12 Michael Katz Systems and methods for storing, retrieving, and adjusting read thresholds in flash memory storage system
US20130007543A1 (en) * 2011-06-30 2013-01-03 Seagate Technology Llc Estimating temporal degradation of non-volatile solid-state memory

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114168069A (zh) * 2020-08-21 2022-03-11 美光科技公司 具有增强的数据可靠性能力的存储器装置
CN114168069B (zh) * 2020-08-21 2024-04-02 美光科技公司 具有增强的数据可靠性能力的存储器装置
US11966600B2 (en) 2020-08-21 2024-04-23 Micron Technology, Inc. Memory device with enhanced data reliability capabilities
CN112599177A (zh) * 2020-12-23 2021-04-02 深圳大普微电子科技有限公司 一种阈值电压的管理方法、读取闪存数据的方法
WO2022134712A1 (zh) * 2020-12-23 2022-06-30 深圳大普微电子科技有限公司 一种阈值电压的管理方法、读取闪存数据的方法
CN112614529A (zh) * 2021-01-04 2021-04-06 长江存储科技有限责任公司 三维存储器及其控制方法
CN112614529B (zh) * 2021-01-04 2021-09-24 长江存储科技有限责任公司 三维存储器及其控制方法
CN114441845A (zh) * 2021-12-17 2022-05-06 际络科技(上海)有限公司 电压漂移监控方法及装置
CN115565587A (zh) * 2022-10-14 2023-01-03 北京得瑞领新科技有限公司 快速搜索阈值电压的方法、装置、存储介质及ssd设备

Also Published As

Publication number Publication date
CN103985415B (zh) 2020-04-14
US9645177B2 (en) 2017-05-09
CN111445942B (zh) 2024-03-08
EP2765578A1 (en) 2014-08-13
JP2014154169A (ja) 2014-08-25
CN103985415A (zh) 2014-08-13
US20140229131A1 (en) 2014-08-14
KR102201697B1 (ko) 2021-01-11
JP6336767B2 (ja) 2018-06-06
TWI591644B (zh) 2017-07-11
KR20140101690A (ko) 2014-08-20
TW201443904A (zh) 2014-11-16
US20200013471A1 (en) 2020-01-09
CN111445941A (zh) 2020-07-24
US10734087B2 (en) 2020-08-04
US20170206979A1 (en) 2017-07-20
US10460818B2 (en) 2019-10-29

Similar Documents

Publication Publication Date Title
US10734087B2 (en) Retention-drift-history-based non-volatile memory read threshold optimization
US11024396B2 (en) Reduction or elimination of a latency penalty associated with adjusting read thresholds for non-volatile memory
US9595320B2 (en) Optimization of read thresholds for non-volatile memory
US10002046B2 (en) Zero-one balance management in a solid-state disk controller
US9239754B2 (en) Single read based soft-decision decoding of non-volatile memory
US8856611B2 (en) Soft-decision compensation for flash channel variation
CN113921060A (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