CN103678146B - 为了非易失性存储器中的耗损均衡测量单元损伤 - Google Patents

为了非易失性存储器中的耗损均衡测量单元损伤 Download PDF

Info

Publication number
CN103678146B
CN103678146B CN201310418813.8A CN201310418813A CN103678146B CN 103678146 B CN103678146 B CN 103678146B CN 201310418813 A CN201310418813 A CN 201310418813A CN 103678146 B CN103678146 B CN 103678146B
Authority
CN
China
Prior art keywords
unit
subdivision
nvm
error
damage
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201310418813.8A
Other languages
English (en)
Other versions
CN103678146A (zh
Inventor
李艳
亚历山大·胡布里斯
钟浩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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
Publication of CN103678146A publication Critical patent/CN103678146A/zh
Application granted granted Critical
Publication of CN103678146B publication Critical patent/CN103678146B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • 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
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/50Marginal testing, e.g. race, voltage or current testing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Memory System (AREA)

Abstract

NVM控制器为了非易失性存储器中的耗损均衡测量单元损伤,由此改善存储子系统(诸如SSD)的性能、可靠性、寿命和/或成本。在第一方面中,控制器确定读取NVM页的错误由单元损伤和/或单元泄漏引起。控制器对页重新编程并立即回读,如果在立即读取期间检测到错误,那么检测错误由单元损伤引起。在第二方面中,通过更新NVM页和/或块的单元损伤计数器来跟踪单元损伤。在第三方面中,至少部分基于所测量的NVM页和/或块单元损伤来进行耗损均衡。

Description

为了非易失性存储器中的耗损均衡测量单元损伤
技术领域
需要非易失性存储技术的进步以提供对成本、盈利能力、性能、效率和实用性的改善。
背景技术
除非明确指出为公开或者众所周知,为了语境、定义或者比较目的而包括的本文中提到的技术和概念,不应解释为承认该技术和概念先前为公众所知或者以其他方式为现有技术一部分。为了所有目的,本文中引用的所有参考文献(若有),包括专利、专利申请和出版物,无论是否明确地并入,其全部内容通过引用并入本文中。
现将描述由固态磁盘(SSD)控制器使用的闪存的各方面,从而在某种程度上建立技术背景且在某种程度上建立剩余说明书中使用的命名的前提。可由SSD控制器从非易失性存储器(NVM)读取的最小尺寸的数据为“读取单位”,该“读取单位”受到所包含的错误校正(诸如低密度奇偶校验(LDPC)码)保护。在一些情况下,读取单位称为“码字”。在一些实施方式中,每个读取单位包含约4K至约32K位用户数据,外加错误校正开销。在SSD控制器的命令下,这些位从NVM存储器单元读取(例如,经由NVM存储器单元的一个或多个部分的阵列存取),根据如下讨论的技术,NVM存储器单元的每单元可容纳一个或多个位。在一些实施方式中,出于安全原因,在将数据写入到NVM之前,SSD控制器对数据进行加密。在一些实施方式中,鉴于对长串得相同编程的单元的电路设计限制,在将数据写入到NVM之前,SSD控制器对数据进行扰乱。
单独考虑,每个单元具有特定存储的(编程的)电荷,该特定存储的(编程的)电荷对应于该单元的器件阈值电压且还对应于正在存储于该单元中的逻辑位值。虽然在理想情况下NVM中单元对于所存储的逻辑位值都将具有相同的器件阈值电压,但是实际上,出于各种原因,器件阈值电压沿着器件阈值电压轴的概率分布(例如,“器件阈值电压分布”)在单元之间不同,其在形状上类似于高斯分布。
因此,考虑跨诸如读取单位的大量单元的集合,器件阈值电压分布(例如,高斯概率曲线)与每个单元的状态(每单元存储的每位两个状态)一样多。即,对于存储的每单元N位,有2**N个状态以及相同数量的器件阈值电压分布。一般地,NVM中读取电路需要(2**N)-1个不同读取阈值(读取基准电压VREAD1至VREAD(N-1))以区分2**N个状态。
从以上继续,对于单层单元(SLC)闪存,N=1。因此,SLC存储器存储一个位/存储单元,具有两个器件阈值电压分布(一个为0,另一个为1),并且需要单个读取阈值,读取基准电压VREAD1。从较低器件阈值电压到较高器件阈值电压,两个器件阈值电压分布称为E(擦除)状态和D1(第一数据)状态。虽然随机,但是共同映射(编码)是将逻辑1指派给E状态且将逻辑0指派给D1状态。因此,0和1引用为D1状态和E状态的相应解码的代理引用。
从以上进一步继续,对于多层单元(MLC)闪存,N>1。因此,MLC存储器每单元存储多于一个的位,具有多于两个器件阈值电压分布,并且需要多个不同读取阈值以区分该分布。例如,4LC存储器(例如,闪存)每单元存储两个位,具有四个器件阈值电压分布,并且一般需要三个读取阈值(读取基准电压VREAD1、VREAD2和VREAD3)。从较低器件阈值电压到较高器件阈值电压,四个器件阈值电压分布称为E(擦除)状态、D1(数据1)状态、D2(数据2)状态和D3(数据3)状态。虽然随机,但是四个器件阈值电压分布中每个也根据特定二进制序列(诸如,格雷码序列)来映射(寻址)。因此,对11、10、00和01中的一个或多个的引用代替对E、D1、D2和D3状态的相应解码的引用。
对于MLC状态的地址映射,每个状态可被称为具有最高有效位(MSB)和最低有效位(LSB)(并且对于每单元多于两个位,有效位介于它们之间)。虽然存在MLC NVM对它们的单元进行编程的各种方式,但是以下方法是常见的。初始编程回合(电荷分布操纵)建立LSB,例如,写入“下页”。这以与写入SLC(例如,建立E状态器件阈值电压分布和第二状态器件阈值电压分布的电荷操纵)相同的方式宽松地完成。根据所使用的二进制序列,第二状态器件阈值电压分布与D1状态器件阈值电压分布相似,与D2状态器件阈值电压分布相似,或者介于D1与D2状态器件阈值电压分布之间。对于MLC,根据MLC每层需要,一个或多个另外编程回合还操纵(在数量、沿着器件阈值电压轴的位置以及形状上)器件阈值电压分布。更具体地,一个或多个随后编程操作写入“中页”(若有,对于每单元多于两个位),并且最后编程操作建立MSB,例如,写入“上页”。例如,在4LC(每单元两位的MLC)中,第一编程回合的E分布和第二分布由第二编程回合分别分叉为E和D1分布以及D2和D3分布。
NVM单元具有有限写入耐久度,并且写入将最终磨损(例如,损伤)单元,使得它无法正确地存储数据。单元损伤原因包括氧化物截留和氧化物击穿。通常,写入耐久度以编程/擦除(P/E)周期来描述,并且NVM针对某一层指定(例如,在特定条件下,SLC NVM单元可以被评级为10K P/E周期)。许多NVM使用耗损均衡技术来管理,以通过减少单元损伤来改善可靠性、寿命和/或性能。传统上,耗损均衡跨NVM块均匀地分布P/E周期以避免过早磨损(例如,引起单元损伤)任何单独块。这个方法隐含地假定P/E周期均等耗损。通过测量P/E周期数来估计耗损以优化NVM写入。
实际上,写入耐久度和耗损由除P/E周期外各种因素确定,包括工艺、电压、温度(PVT)和停留时间(P/E周期之间的时间长度)。由于制造统计变化,一些NVM单元可能超过指定耐久度。同样,由于更有利条件(例如,如果NVM针对100℃来评估,但是在50℃下操作),一些NVM单元可能超过指定耐久度。
发明内容
本发明可以以各种方式实现为例如方法、制品、装置、系统、组合物和计算机可读介质,诸如计算机可读存储介质(例如,在诸如磁盘的光学和/或磁性大容量存储器件中的介质,或者具有诸如闪存的非易失性存储器的集成电路)或者程序指令经由光学或者电子通信链路发送的计算机网络。具体实施方式提供了能够改善成本、盈利能力、性能、效率和在上述领域中的实用性的本发明的一个或多个实施方式。具体实施方式包括绪论,以有利于理解具体实施方式的余下部分。根据本文所述的概念,绪论包括系统、方法、制品和计算机可读介质中的一个或多个的示例性实施方式。如在结论中更详细讨论的,本发明涵盖在所提出的权利要求的范围内的所有可能的修改和变化。
在各种实施方式和/或使用方案中,耗损均衡改善NVM性能、成本、可靠性和/或寿命。一些耗损均衡技术通过P/E周期数来近似单元磨损,并且基于P/E周期数将数据写入到NVM块。这个方法是普遍的,因为对于单元P/E周期数进行计数比测量单元实际磨损(例如损伤)更简单。
发明者相信,他们首先注意到该重要问题,即为了非易失性存储器中的耗损均衡而测量单元损伤的对于性能、成本、可靠性和/或寿命的好处。更具体地,发明者相信,他们首先注意到在NVM单元中由电压的单向移位引起的页读取错误指示单元损伤和/或单元泄漏(例如,保留失败)以及注意到重新编程(例如,擦除存储数据,随后用存储数据编程)单元且立即读取单元可检测错误是由单元损伤引起的。在一些使用方案中,测量单元损伤比经由P/E周期估计单元损伤更准确,因为测量的单元损伤考虑其它因素,诸如PVT和停留时间。通过使用在检测到单元损伤时更新的单元损伤计数器来跟踪NVM页和/或块的单元损伤。结合了更准确地测量的单元损伤信息的耗损均衡技术(例如,单元损伤计数器)实现了NVM的性能、成本、可靠性和/或寿命的改善。例如,至少部分基于测量单元损伤的耗损均衡能够超过还未损伤的NVM单元的指定P/E周期。
本发明提出了一种方法,包括:在包括一个或多个部分的非易失性存储器(NVM)中测量单元中的一个或多个的单元损伤,每个部分包括一个或多个所述单元;并且至少部分基于所述测量的至少一些结果,对所述部分进行耗损均衡。
优选地,所述测量包括检测编程故障和擦除故障中的一个或多个。
优选地,所述测量包括:确定从所述部分中的特定的一个的所述单元中的至少一个读取的错误是单元损伤和单元泄漏中的一个或多个的结果;并且检测所述错误是损伤的单元的结果。
优选地,所述确定包括将正向纠错解码应用于特定部分的子部分,所述子部分包括所述单元中的所述至少一个。
优选地,所述检测包括重新编程和/或擦除至少所述特定部分的子部分并且回读所述单元中的所述至少一个,并且所述子部分包括所述单元中的所述至少一个。
优选地,所述测量还包括更新与以下任何一项或多项相关联的一个或多个单元损伤计数器:所述单元中的所述至少一个;所述特定部分的子部分,所述子部分包括所述单元中的所述至少一个;以及所述特定部分。
优选地,进行包括至少部分基于与所述部分相关联的所述单元损伤计数器的值选择所述部分中的多个来写入。
本发明还提出了一种系统,其包括:非易失性存储器(NVM),包括一个或多个部分;每个部分包括一个或多个单元;用于测量所述单元中的一个或多个的单元损伤的构件;以及用于至少部分基于用于测量的构件的至少一些结果来对所述部分进行耗损均衡的构件。
优选地,所述用于测量的构件包括用于检测编程故障和擦除故障中的一个或多个的构件。
优选地,所述用于测量的构件包括:用于确定从所述部分中的特定的一个的所述单元中的至少一个读取的错误是单元损伤和单元泄漏中的一个或多个的结果的构件;以及用于检测所述错误是损伤单元的结果的构件。
优选地,用于确定的构件包括用于将正向纠错解码应用于特定部分的子部分的构件,所述子部分包括所述单元中的所述至少一个。
优选地,用于检测的构件包括用于重新编程和/或擦除至少所述特定部分的子部分的构件和用于回读所述单元中的所述至少一个的构件,并且所述子部分包括所述单元中的所述至少一个。
优选地,所述用于测量的构件还包括用于更新与以下任何一项或多项相关联的一个或多个单元损伤计数器的构件:所述单元中的所述至少一个;所述特定部分的子部分,所述子部分包括所述单元中的所述至少一个;以及所述特定部分。
优选地,用于进行的构件包括用于至少部分基于与所述部分相关联的所述单元损伤计数器的值选择所述部分中的多个来写入的构件。
本发明还提出了一种装置,包括:非易失性存储器(NVM),包括一个或多个部分;每个部分包括一个或多个单元;测量硬件逻辑电路,能够测量所述单元中的一个或多个的单元损伤;以及耗损均衡硬件逻辑电路,能够至少部分基于所述测量的至少一些结果来对所述部分进行耗损均衡。
优选地,所述测量硬件逻辑电路包括故障检测硬件逻辑电路,所述故障检测硬件逻辑电路能够检测编程故障和擦除故障中的一个或多个。
优选地,所述测量硬件逻辑电路包括:确定硬件逻辑电路,能够确定从所述部分中的特定的一个的所述单元中的至少一个读取的错误是单元损伤和单元泄漏中的一个或多个的结果;以及损伤检测硬件逻辑电路,能够检测所述错误是损伤的单元的结果。
优选地,所述确定硬件逻辑电路包括解码硬件逻辑电路,所述解码硬件逻辑电路将正向纠错解码应用于特定部分的子部分,所述子部分包括所述单元中的所述至少一个。
优选地,所述损伤检测硬件逻辑电路包括重试硬件逻辑电路,所述重试硬件逻辑电路能够重新编程和/或擦除至少所述特定部分的子部分并且回读所述单元中的所述至少一个,并且所述子部分包括所述单元中的所述至少一个。
优选地,所述测量硬件逻辑电路还包括计数器硬件逻辑电路,所述计数器硬件逻辑电路能够更新与以下任何一项或多项相关联的一个或多个单元损伤计数器:所述单元中的所述至少一个;所述特定部分的子部分,所述子部分包括所述单元中的所述至少一个;以及所述特定部分。
优选地,所述耗损均衡硬件逻辑电路包括选择硬件逻辑电路,所述选择硬件逻辑电路能够至少部分基于与所述部分相关联的所述单元损伤计数器的值选择所述部分中的多个来写入。
本发明还提出了一种有形计算机可读介质,所述有形计算机可读介质具有存储于其中的一组指令,所述指令当由处理元件执行时促使所述处理元件进行和/或控制包括以下项的操作:在包括一个或多个部分的非易失性存储器(NVM)中测量单元中的一个或多个的单元损伤,每个部分包括一个或多个所述单元;并且至少部分基于所述测量的至少一些结果,对所述部分进行耗损均衡。
优选地,所述测量包括检测编程故障和擦除故障中的一个或多个。
优选地,所述测量包括:确定从所述部分中的特定的一个的所述单元中的至少一个读取的错误是单元损伤和单元泄漏中的一个或多个的结果;并且检测所述错误是损伤的单元的结果。
优选地,所述确定包括将正向纠错解码应用于特定部分的子部分,所述子部分包括所述单元中的所述至少一个。
优选地,所述检测包括重新编程和/或擦除至少所述特定部分的子部分并且回读所述单元中的所述至少一个,并且所述子部分包括所述单元中的所述至少一个。
优选地,所述测量还包括更新与以下任何一项或多项相关联的一个或多个单元损伤计数器:所述单元中的所述至少一个;所述特定部分的子部分,所述子部分包括所述单元中的所述至少一个;以及所述特定部分。
优选地,进行包括至少部分基于与所述部分相关联的所述单元损伤计数器的值选择所述部分中的多个来写入。
附图说明
图1A示出包括测量非易失性存储器(NVM)中单元耗损均衡损伤的SSD控制器的固态磁盘(SSD)的实施方式的所选细节。
图1B示出包括图1A中SSD的一个或多个实例的系统的各种实施方式的所选细节。
图2A和图2B在概念上示出与单元损伤测量有关的器件阈值电压分布。图2A针对下页,而图2B针对上页。
图3示出图1A中SSD的示例的系统实施方式的所选细节,以提供与测量NVM中单元耗损均衡损伤有关的特定细节。
图4示出图1A、图1B和图3中SSD的实施方式的所选控制流细节,以提供与单元损伤测量有关的特定细节。
图5在概念上示出基于测量单元损伤来进行耗损均衡的所选细节。
附图中的参考符号列表
具体实施方式
下文结合附图详细说明本发明的一个或多个实施方式,附图示出本发明的所选细节。本发明结合实施方式进行说明。本文中的实施方式应当理解为仅是示例性的,本发明明确并不限于本文实施方式中的任何或者全部,并且本发明包括多个替换、修改及其等同物。为了避免阐述单调,各种字标签(包括但不限于:第一、最后、某个、各种、还、其它、特定、所选、一些和显著)可应用于不同组的实施方式;如本文中使用,该标签明确不意味着指传达质量或者任何形式的偏好或者偏见,而只是方便区分分别的组。所公开方法的一些操作的次序在本发明范围内可变。在多个实施方式用于说明方法、方法和/或程序指令特征变化的情况下,其它实施方式设想为根据预定或者动态确定的标准来进行分别与该多个实施方式对应的多个操作模式中一个的静态和/或动态选择。许多特定细节在以下说明中阐述以深入理解本发明。为了举例目的而提供细节,并且本发明可在没有该细节中一些或者全部的情况下根据权利要求实现。为了清楚起见,本发明涉及的技术领域中众所周知的技术材料未详细说明,使得本发明不会不必要地混淆。
绪论
本绪论只是为了有利于更迅速理解具体实施方式;本发明并不限于绪论中提出的概念(包括明确的示例,若有),因为任何绪论的段落必定为整个主题的简化观点且并不意在详尽性或者限制性说明。例如,以下绪论将仅为某些实施方式提供受空间和组织限制的概述信息。有许多其它实施方式,包括遍及剩余说明书讨论的权利要求将最终采用的实施方式。
首字母缩略词
这里定义的各种速记缩写词(例如,首字母缩略词)中的至少一些是指本文中使用的某些元件。
示例性实施方式
作为对具体实施方式的绪论的总结,以下为包括明确列举为“EC”(示例性组合)的至少一些的示例性实施方式的集合,其根据本文所述的概念提供各种实施方式类型的额外描述;这些示例并不意味着互斥、详尽或者限制;并且本发明并不限于这些示例性实施方式,而是包括所提出的权利要求及其等同物的范围内的所有可能的修改和变化。
EC1)一种方法,包括:
在包括一个或多个部分的非易失性存储器(NVM)中,每个部分包括一个或多个单元,测量所述单元中的一个或多个的单元损伤;并且
至少部分基于所述测量的至少一些结果,对于所述部分进行耗损均衡。
EC2)根据EC1所述的方法,其中,所述单元为特别选择的子集。
EC3)根据EC2所述的方法,其中,所述特别选择的子集为预留子集。
EC4)根据EC2所述的方法,其中,所述特别选择的子集相对于所述特别选择的子集的补集完全不同。
EC5)根据EC2所述的方法,其中,所述特别选择的子集为所述NVM的任意子集。
EC6)根据EC1所述的方法,其中,所述测量包括检测编程故障和擦除故障中的一个或多个。
EC7)根据EC1所述的方法,其中,所述单元损伤为氧化物截留和氧化物击穿中的一个或多个的结果。
EC8)根据EC1所述的方法,其中,所述测量包括:
确定从所述部分的特定部分的单元中至少一个单元读取的错误是单元损伤和单元泄漏中的一个或多个的结果;并且
检测所述错误是损伤单元的结果。
EC9)根据EC8所述的方法,其中,所述确定包括将正向纠错解码应用于特定部分的子部分,所述子部分包括所述单元中的所述至少一个。
EC10)根据EC8所述的方法,其中,所述错误是器件阈值电压单向移位的结果。
EC11)根据EC10所述的方法,其中,所述单向移位包括特定下页单向移位。
EC12)根据EC10所述的方法,其中,所述单向移位包括两个特定上页单向移位。
EC13)根据EC8所述的方法,其中,所述检测包括重新编程和/或擦除至少所述特定部分的子部分并且回读所述单元中的所述至少一个,并且所述子部分包括所述单元中的所述至少一个。
EC14)根据EC13所述的方法,其中,所述重新编程和/或擦除导致检测保留故障。
EC15)根据EC8所述的方法,其中,所述检测包括检测所述错误是除保留故障外的结果。
EC16)根据EC8所述的方法,其中,所述测量还包括更新与以下任何一项或多项相关联的一个或多个单元损伤计数器:
所述单元中的所述至少一个,
所述特定部分的子部分,所述子部分包括所述单元中的所述至少一个,以及
所述特定部分。
EC17)根据EC16所述的方法,其中,每个子部分包括相应页。
EC18)根据EC16所述的方法,其中,所述测量的至少一些结果包括所述单元损伤计数器的值。
EC19)根据EC16所述的方法,其中,进行包括至少部分基于与所述部分相关联的所述单元损伤计数器的值选择所述部分中的多个来写入。
EC20)根据EC19所述的方法,其中,所述单元损伤计数器为特定部分单元损伤计数器,并且与所述部分中特定部分对应的所述特定部分单元损伤计数器的值中的特定值至少为包括所述特定部分的一个或多个子部分的相应特定子部分单元损伤计数器的相应值的集合。
EC21)根据EC19所述的方法,其中,所述选择还基于单元损伤阈值。
EC22)根据EC21所述的方法,其中,所述单元损伤阈值是可编程的。
EC23)根据EC22所述的方法,其中,所述单元损伤阈值编程为第一时间点处的第一值以及第二时间点处与所述第一值不同的第二值。
EC24)根据EC1所述的方法,其中,每个部分包括相应块。
EC25)根据EC1所述的方法,其中,所述NVM包括一个或多个闪存。
EC26)根据EC1所述的方法,所述方法还包括操作与存储接口标准兼容的存储接口以与主机通信信息,所述信息至少部分经由操作闪存接口从所述NVM的一个或多个位置获得。
EC27)一种有形计算机可读介质,所述有形计算机可读介质具有存储于其中的一组指令,所述指令当由处理元件执行时促使所述处理元件进行和/或控制操作,所述操作包括:
在包括一个或多个部分的非易失性存储器(NVM)中,每个部分包括一个或多个单元,测量所述单元中的一个或多个的单元损伤;并且
至少部分基于所述测量的至少一些结果,对于所述部分进行耗损均衡。
EC28)根据EC27所述的有形计算机可读介质,其中,所述单元为特别选择的子集。
EC29)根据EC28所述的有形计算机可读介质,其中,所述特别选择的子集为预留子集。
EC30)根据EC28所述的有形计算机可读介质,其中,所述特别选择的子集相对于所述特别选择的子集的补集完全不同。
EC31)根据EC28所述的有形计算机可读介质,其中,所述特别选择的子集为所述NVM的任意子集。
EC32)根据EC27所述的有形计算机可读介质,其中,所述测量包括检测编程故障和擦除故障中的一个或多个。
EC33)根据EC27所述的有形计算机可读介质,其中,所述单元损伤为氧化物截留和氧化物击穿中的一个或多个的结果。
EC34)根据EC27所述的有形计算机可读介质,其中,所述测量包括:
确定从所述部分的特定部分的单元中至少一个单元读取的错误是单元损伤和单元泄漏中的一个或多个的结果;并且
检测所述错误是损伤单元的结果。
EC35)根据EC34所述的有形计算机可读介质,其中,所述确定包括将正向纠错解码应用于特定部分的子部分,所述子部分包括所述单元中的所述至少一个。
EC36)根据EC34所述的有形计算机可读介质,其中,所述错误是器件阈值电压单向移位的结果。
EC37)根据EC36所述的有形计算机可读介质,其中,所述单向移位包括特定下页单向移位。
EC38)根据EC36所述的有形计算机可读介质,其中,所述单向移位包括两个特定上页单向移位。
EC39)根据EC34所述的有形计算机可读介质,其中,所述检测包括重新编程和/或擦除至少所述特定部分的子部分并且回读所述单元中的所述至少一个,并且所述子部分包括所述单元中的所述至少一个。
EC40)根据EC39所述的有形计算机可读介质,其中,所述重新编程和/或擦除导致检测保留故障。
EC41)根据EC34所述的有形计算机可读介质,其中,所述检测包括检测所述错误是除保留故障外的结果。
EC42)根据EC34所述的有形计算机可读介质,其中,所述测量还包括更新与以下任何一项或多项相关联的一个或多个单元损伤计数器:
所述单元中的所述至少一个,
所述特定部分的子部分,所述子部分包括所述单元中的所述至少一个,以及
所述特定部分。
EC43)根据EC42所述的有形计算机可读介质,其中,每个子部分包括相应页。
EC44)根据EC42所述的有形计算机可读介质,其中,所述测量的至少一些结果包括所述单元损伤计数器的值。
EC45)根据EC42所述的有形计算机可读介质,其中,进行包括至少部分基于与所述部分相关联的所述单元损伤计数器的值选择所述部分中的多个来写入。
EC46)根据EC45所述的有形计算机可读介质,其中,所述单元损伤计数器为特定部分单元损伤计数器,并且与所述部分中特定部分对应的所述特定部分单元损伤计数器的值中的特定值至少为包括所述特定部分的一个或多个子部分的相应特定子部分单元损伤计数器的相应值的集合。
EC47)根据EC45所述的有形计算机可读介质,其中,所述选择还基于单元损伤阈值。
EC48)根据EC47所述的有形计算机可读介质,其中,所述单元损伤阈值是可编程的。
EC49)根据EC48所述的有形计算机可读介质,其中,所述单元损伤阈值编程为第一时间点处的第一值以及第二时间点处与所述第一值不同的第二值。
EC50)根据EC27所述的有形计算机可读介质,其中,每个部分包括相应块。
EC51)根据EC27所述的有形计算机可读介质,其中,所述NVM包括一个或多个闪存。
EC52)根据EC27所述的有形计算机可读介质,其中,所述操作还包括操作与存储接口标准兼容的存储接口以与主机通信信息,所述信息至少部分经由操作闪存接口从所述NVM的一个或多个位置获得。
EC53)一种系统,其包括:
非易失性存储器(NVM),包括一个或多个部分,每个部分包括一个或多个单元;
用于测量所述单元中的一个或多个的单元损伤的构件;以及
用于至少部分基于所述测量构件的至少一些结果来对所述部分进行耗损均衡的构件。
EC54)根据EC53所述的系统,其中,所述单元为特别选择的子集。
EC55)根据EC54所述的系统,其中,所述特别选择的子集为预留子集。
EC56)根据EC54所述的系统,其中,所述特别选择的子集相对于所述特别选择的子集的补集完全不同。
EC57)根据EC54所述的系统,其中,所述特别选择的子集为所述NVM的任意子集。
EC58)根据EC53所述的系统,其中,所述测量构件包括用于检测编程故障和擦除故障中的一个或多个的构件。
EC59)根据EC53所述的系统,其中,所述单元损伤为氧化物截留和氧化物击穿中的一个或多个的结果。
EC60)根据EC53所述的系统,其中,所述测量构件包括:
用于确定从所述部分的特定部分的单元中至少一个单元读取的错误是单元损伤和单元泄漏中的一个或多个的结果的构件;以及
用于检测所述错误是损伤单元的结果的构件。
EC61)根据EC60所述的系统,其中,所述确定构件包括用于将正向纠错解码应用于特定部分的子部分的构件,所述子部分包括所述单元中的所述至少一个。
EC62)根据EC60所述的系统,其中,所述错误是器件阈值电压单向移位的结果。
EC63)根据EC62所述的系统,其中,所述单向移位包括特定下页单向移位。
EC64)根据EC62所述的系统,其中,所述单向移位包括两个特定上页单向移位。
EC65)根据EC60所述的系统,其中,所述用于检测的构件包括用于重新编程和/或擦除至少所述特定部分的子部分的构件和用于回读所述单元中的所述至少一个的构件,并且所述子部分包括所述单元中的所述至少一个。
EC66)根据EC65所述的系统,其中,操作所述重新编程和/或擦除构件导致检测保留故障。
EC67)根据EC60所述的系统,其中,所述用于检测的构件包括用于检测所述错误是除保留故障外的结果的构件。
EC68)根据EC60所述的系统,其中,所述测量构件还包括用于更新与以下任何一项或多项相关联的一个或多个单元损伤计数器的构件:
所述单元中的所述至少一个,
所述特定部分的子部分,所述子部分包括所述单元中的所述至少一个,以及
所述特定部分。
EC69)根据EC68所述的系统,其中,每个子部分包括相应页。
EC70)根据EC68所述的系统,其中,所述测量构件的至少一些结果包括所述单元损伤计数器的值。
EC71)根据EC68所述的系统,其中,进行构件包括用于至少部分基于与所述部分相关联的所述单元损伤计数器的值选择所述部分中的多个来写入的构件。
EC72)根据EC71所述的系统,其中,所述单元损伤计数器为特定部分单元损伤计数器,并且与所述部分中特定部分对应的所述特定部分单元损伤计数器的值中的特定值至少为包括所述特定部分的一个或多个子部分的相应特定子部分单元损伤计数器的相应值的集合。
EC73)根据EC71所述的系统,其中,所述选择构件还基于单元损伤阈值。
EC74)根据EC73所述的系统,其中,所述单元损伤阈值是可编程的。
EC75)根据EC74所述的系统,其中,所述单元损伤阈值编程为第一时间点处的第一值以及第二时间点处与所述第一值不同的第二值。
EC76)根据EC53所述的系统,其中,每个部分包括相应块。
EC77)根据EC53所述的系统,其中,所述NVM包括一个或多个闪存。
EC78)根据EC53所述的系统,所述系统还包括用于操作与存储接口标准兼容的存储接口以与主机通信信息的构件,所述信息至少部分经由操作闪存接口从所述NVM的一个或多个位置获得。
EC79)一种装置,包括:
非易失性存储器(NVM),包括一个或多个部分;每个部分包括一个或多个单元;
测量硬件逻辑电路,能够测量所述单元中的一个或多个的单元损伤;以及
耗损均衡逻辑电路,能够至少部分基于所述测量硬件逻辑电路的至少一些结果来对所述部分进行耗损均衡。
EC80)根据EC79所述的装置,其中,所述单元为特别选择的子集。
EC81)根据EC80所述的装置,其中,所述特别选择的子集为预留子集。
EC82)根据EC80所述的装置,其中,所述特别选择的子集相对于所述特别选择的子集的补集完全不同。
EC83)根据EC80所述的装置,其中,所述特别选择的子集为所述NVM的任意子集。
EC84)根据EC79所述的装置,其中,所述测量硬件逻辑电路包括故障检测硬件逻辑电路,所述故障检测硬件逻辑电路能够检测编程故障和擦除故障中的一个或多个。
EC85)根据EC79所述的装置,其中,所述单元损伤为氧化物截留和氧化物击穿中的一个或多个的结果。
EC86)根据EC79所述的装置,其中,所述测量硬件逻辑电路包括:
确定硬件逻辑电路,能够确定从所述部分的特定部分的单元中至少一个单元读取的错误是单元损伤和单元泄漏中的一个或多个的结果;以及
损伤检测硬件逻辑电路,能够检测所述错误是损伤单元的结果。
EC87)根据EC86所述的装置,其中,所述确定硬件逻辑电路包括解码硬件逻辑电路,所述解码硬件逻辑电路将正向纠错解码应用于特定部分的子部分,所述子部分包括所述单元中的所述至少一个。
EC88)根据EC86所述的装置,其中,所述错误是器件阈值电压单向移位的结果。
EC89)根据EC88所述的装置,其中,所述单向移位包括特定下页单向移位。
EC90)根据EC88所述的装置,其中,所述单向移位包括两个特定上页单向移位。
EC91)根据EC86所述的装置,其中,所述损伤检测硬件逻辑电路包括重试硬件逻辑电路,所述重试硬件逻辑电路能够重新编程和/或擦除至少所述特定部分的子部分并且回读所述单元中的所述至少一个,并且所述子部分包括所述单元中的所述至少一个。
EC92)根据EC91所述的装置,其中,所述重试硬件逻辑电路还能够检测保留故障。
EC93)根据EC86所述的装置,其中,所述损伤检测硬件逻辑电路能够检测到所述错误是除保留故障外的结果。
EC94)根据EC86所述的装置,其中,所述测量硬件逻辑电路还包括计数器硬件逻辑电路,所述计数器硬件逻辑电路能够更新与以下任何一项或多项相关联的一个或多个单元损伤计数器:
所述单元中的所述至少一个,
所述特定部分的子部分,所述子部分包括所述单元中的所述至少一个,以及
所述特定部分。
EC95)根据EC94所述的装置,其中,每个子部分包括相应页。
EC96)根据EC94所述的装置,其中,所述测量硬件逻辑电路的至少一些结果包括所述单元损伤计数器的值。
EC97)根据EC94所述的装置,其中,所述耗损均衡硬件逻辑电路包括选择硬件逻辑电路,所述选择硬件逻辑电路能够至少部分基于与所述部分相关联的所述单元损伤计数器的值选择所述部分中的多个来写入。
EC98)根据EC97所述的装置,其中,所述单元损伤计数器为特定部分单元损伤计数器,并且与所述部分中特定部分对应的所述特定部分单元损伤计数器的值中的特定值至少为包括所述特定部分的一个或多个子部分的相应特定子部分单元损伤计数器的相应值的集合。
EC99)根据EC97所述的装置,其中,所述选择硬件逻辑电路还能够基于单元损伤阈值来选择。
EC100)根据EC99所述的装置,其中,所述单元损伤阈值是可编程的。
EC101)根据EC100所述的装置,其中,所述单元损伤阈值编程为第一时间点处的第一值以及第二时间点处与所述第一值不同的第二值。
EC102)根据EC79所述的装置,其中,每个部分包括相应块。
EC103)根据EC79所述的装置,其中,所述NVM包括一个或多个闪存。
EC104)根据EC79所述的装置,所述装置还包括存储接口,所述存储接口与存储接口标准兼容且能够与主机通信信息,所述信息至少部分经由操作包括在所述装置中的闪存接口从所述NVM的一个或多个位置获得。
EC105)根据前述EC中具有或者参照存储接口标准的任一EC,其中所述存储接口标准包括以下的一项或多项:
通用串行总线(USB)接口标准,
紧凑型闪存(CF)接口标准,
多媒体卡(MMC)接口标准,
嵌入式MMC(eMMC)接口标准,
Thunderbolt接口标准,
UFS接口标准,
安全数字(SD)接口标准,
记忆棒接口标准,
xD图形卡接口标准,
集成驱动电子设备(IDE)接口标准,
串行高级技术附件(SATA)接口标准,
外部SATA(eSATA)接口标准,
小型计算机系统接口(SCSI)接口标准,
串行连接小型计算机系统接口(SAS)接口标准,
光纤信道接口标准,
以太网接口标准,以及
快速外设互连(PCIe)接口标准。
EC106)根据前述EC中具有或者参照闪存接口的任一EC,其中所述闪存接口与以下一个或多个兼容:
开放NAND闪存接口(ONFI),
触发模式接口,
双倍数据速率(DDR)同步接口,
DDR2同步接口,
同步接口,以及
异步接口。
EC107)根据前述EC中具有或者参照主机的任一EC,其中所述主机包括以下的一项或多项:
计算机,
工作站计算机,
服务器计算机,
存储服务器,
存储器连接网络(SAN)
网络连接存储器(NAS)器件,
直接连接存储器(DAS)器件,
存储设备,
个人计算机(PC),
膝上型计算机,
笔记本计算机,
上网本计算机,
平板设备或者计算机,
超极本计算机,
电子读取器件(电子阅读器)
个人数字助理(PDA),
导航系统,
(手持式)全球定位系统(GPS)器件,
汽车控制系统,
汽车媒体控制系统或者计算机,
打印机、复印机或传真机或者一体机,
销售点(POS)器件,
收银机,
媒体播放器,
电视机,
媒体记录器,
数字视频记录器(DVR)
数字相机,
蜂窝手机,
无绳手持电话机,以及
电子游戏机。
EC108)根据前述EC中具有或者参照至少一个闪存的任一EC,其中所述至少一个闪存的至少一部分包括以下的一项或多项:
NAND闪存技术存储单元,以及
NOR闪存技术存储单元。
EC109)根据前述EC中具有或者参照至少一个闪存的任一EC,其中所述至少一个闪存的至少一部分包括以下的一项或多项:
单层单元(SLC)闪存技术存储单元,以及
多层单元(MLC)闪存技术存储单元。
EC110)根据前述EC中具有或者参照至少一个闪存的任一EC,其中所述至少一个闪存的至少一部分包括以下的一项或多项:
基于多晶硅技术的电荷存储单元,以及
基于氮化硅技术的电荷存储单元。
EC111)根据前述EC中具有或者参照至少一个闪存的任一EC,其中所述至少一个闪存的至少一部分包括以下的一项或多项:
基于二维技术的闪存技术,以及
基于三维技术的闪存技术。
系统
在一些实施方式中,I/O器件(诸如SSD)包括SSD控制器。SSD控制器充当SSD的主机接口与NVM之间的网桥,并且执行经由SSD的主机接口从计算主机发送的主机协议命令。该命令中至少一些指示SSD分别利用从计算主机发送的数据写入NVM和利用发送到计算主机的数据读取NVM。在更多实施方式中,SSD控制器能够使用映射在主机协议LBA与NVM中物理存储地址之间转译。在更多实施方式中,映射的至少一部分用于I/O器件的私有存储(对于计算主机不可见)。例如,不可由计算主机存取的LBA的一部分由I/O器件使用以管理对于日志、统计信息或者其它私有数据的存取。
在一些实施方式中,在NVM中存取不同大小的量(quanta)的压缩数据在一些使用方案中提高了存储效率。例如,SSD控制器从计算主机接收(未压缩)数据(例如,与磁盘写入命令有关),压缩数据,并且将压缩的数据存储到闪存中。回应于来自计算主机的随后请求(例如,与磁盘读取命令有关),SSD控制器从闪存读取压缩的数据,解压缩压缩的数据,并且将解压缩的数据提供给计算主机。压缩数据根据不同大小的量存储于闪存中,量的大小由于例如对于各种数据的压缩算法、操作模式和压缩有效性而变化。SSD控制器部分通过查阅所包含映射表来解压缩数据,以确定(多个)标头存储于闪存中的哪里。SSD控制器解析从闪存获得的(多个)标头以确定相应(压缩)数据是否存储于闪存中。SSD控制器解压缩来自闪存的相应数据以产生待提供给计算主机的解压缩数据。在本申请中,解压缩(及其变体)与去压缩(及其变体)为同义。
在各种实施方式中,SSD控制器包括用于与计算主机连接的主机接口、用于与NVM(诸如闪存)连接的接口和用于控制该接口且进行(和/或控制进行的各方面)压缩和解压缩以及低级冗余和/或纠错、高级冗余和/或纠错,以及通过独立硅元件进行动态高级冗余模式管理的电路。
根据各种实施方式,一些主机接口与USB接口标准、CF接口标准、MMC接口标准、eMMC接口标准、Thunderbolt接口标准、UFS接口标准、SD接口标准、记忆棒接口标准、xD图形卡接口标准、IDE接口标准、SATA接口标准、SCSI接口标准、SAS接口标准和PCIe接口标准中的一个或多个兼容。根据各种实施方式,计算主机为计算机、工作站计算机、服务器计算机、存储服务器、SAN、NAS器件、DAS器件、存储设备、PC、膝上型计算机、笔记本计算机、上网本计算机、平板器件或者计算机、超极本计算机、电子读取器件(诸如电子阅读器)、PDA、导航系统、(手持式)GPS器件、汽车控制系统、汽车媒体控制系统或者计算机、打印机、复印机或传真机或者一体机、POS器件、收银机、媒体播放器、电视机、媒体记录器、DVR、数字相机、蜂窝手机、无绳手持电话机和电子游戏机中全部或者任何部分。在一些实施方式中,接口主机(诸如SAS/SATA网桥)操作为计算主机和/或到计算主机的网桥。
在各种实施方式中,SSD控制器包括一个或多个处理器。处理器执行固件以控制和/或进行SSD控制器操作。SSD控制器与计算主机进行通信以发送和接收命令和/或状态以及数据。计算主机执行操作系统、驱动程序和应用程序中的一个或多个。计算主机与SSD控制器的通信可选地和/或选择性地经由驱动程序和/或经由应用程序。在第一示例中,到SSD控制器的所有通信为经由驱动程序,并且应用程序将高级命令提供给驱动程序,驱动程序将高级命令转译为SSD控制器的特定命令。在第二示例中,驱动程序实施绕过模式,并且应用程序能够经由驱动程序将特定命令发送到SSD控制器。在第三示例中,PCIe SSD控制器支持一个或多个虚拟功能(VF),使应用程序一旦配置就能够与SSD控制器直接进行通信,绕过驱动程序。
根据各种实施方式,一些SSD与由磁性和/或光学非易失性存储器(诸如HDD、CD驱动和DVD驱动)使用的形状因数、电气接口和/或协议兼容。在各种实施方式中,SSD使用零个以上的奇偶校验码、零个以上的RS码、零个以上的BCH码、零个以上的维特比(Viterbi)码或其它trellis码和零个以上的LDPC码的各种组合。
图1A示出SSD101的所选细节,SSD101包括SSD控制器100,SSD控制器100测量单元损伤以便进行非易失性存储器(NVM)元件(例如,闪存)的耗损均衡。SSD控制器100经由一个或多个外部接口110通信地耦接到主机(未示出),诸如图1B中主机102。根据各种实施方式,外部接口110为以下的一项或多项:SATA接口;SAS接口;PCIe接口;光纤信道接口;以太网接口(诸如10GB以太网);前述接口中任一个的非标准版本;定制接口;或者用于互连存储器和/或通信和/或计算器件的任何其它类型接口。例如,在一些实施方式中,SSD控制器100包括SATA接口和PCIe接口。
SSD控制器100还经由一个或多个器件接口190通信地耦接到包括一个或多个存储器件的NVM199,诸如闪存器件192的一个或多个实例。根据各种实施方式,器件接口190为以下的一项或多项:异步接口;同步接口;单倍数据速率(SDR)接口;双倍数据速率(DDR)接口;DRAM兼容DDR或DDR2同步接口;ONFI兼容接口,诸如ONFI2.2或ONFI3.0兼容接口;触发模式兼容闪存接口;前述接口中任一个的非标准版本;定制接口;或者用于连接到存储器件的任何其它类型接口。
在一些实施方式中,每个闪存器件192具有一个或多个单独闪存芯片194。根据特定闪存器件192的类型,特定闪存器件192中多个闪存芯片194可选地和/或选择性地并行存取。闪存器件192仅代表能够通信地耦接到SSD控制器100的一种类型存储器件。在各种实施方式中,可使用任何类型存储器件,诸如SLC NAND闪存、MLC NAND闪存、NOR闪存、使用基于多晶硅或氮化硅技术的电荷存储单元的闪存、基于二维或三维技术的闪存、只读存储器、静态随机存取存储器、动态随机存取存储器、铁磁存储器、相变存储器、赛道存储器、ReRAM或者任何其它类型的存储器器件或存储介质。
根据各种实施方式,器件接口190被组织为:一个或多个总线,每个总线具有闪存器件192的一个以上的实例;一组以上的总线,每个总线具有闪存器件192的一个以上的实例,其具有一般并行存取的组中的总线;或者闪存器件192的一个以上的实例到器件接口190上的任何其它组织。
继续图1A,SSD控制器100具有一个或多个模块,诸如主机接口111、数据处理器件121、缓冲器131、映射141、回收站151、ECC161、器件接口逻辑191和CPU171。图1A所示的特定模块和互连仅代表一个实施方式,并且可以设想这些模块中一些或者全部以及未示出的另外模块的多个结构和互连。在第一示例中,在一些实施方式中,两个以上主机接口111提供双端口。在第二示例中,在一些实施方式中,数据处理器件121和/或ECC161与缓冲器131合并。在第三示例中,在一些实施方式中,主机接口111直接耦接到缓冲器131,并且数据处理器件121可选地和/或选择性地对存储在缓冲器131中的数据进行操作。在第四示例中,在一些实施方式中,器件接口逻辑191直接耦接到缓冲器131,并且ECC161可选地和/或选择性地对存储于缓冲器131中的数据进行操作。
主机接口111经由外部接口110发送并接收命令和/或数据,并且在一些实施方式中,经由标签跟踪113跟踪单独命令的进度。例如,该命令包括指定待读取的地址(诸如LBA)和数据量(诸如LBA数量,例如扇区)的读取命令;作为回应,SSD提供读取状态和/或读取数据。对于另一个示例,该命令包括指定待写入地址(诸如LBA)和数据量(诸如LBA数量,例如扇区)的写入命令;作为回应,SSD提供写入状态和/或请求写入数据并且随后可选地提供写入状态。对于又一个示例,该命令包括指定不再需要分配的一个或多个地址(诸如,一个或多个LBA)的去分配命令(例如,修剪命令);作为回应,SSD控制器相应地修改映射并且可选地提供去分配状态。在一些背景下,ATA兼容修剪命令是典型去分配命令。对于又一个示例,该命令包括超级电容器测试命令或者数据硬化(hardening)成功查询;作为回应,SSD提供相应状态。在一些实施方式中,主机接口111与SATA协议兼容,并且通过使用NCQ命令而能够具有多达32个待定命令,每个待定命令具有表示为从0到31数字的唯一标签。在一些实施方式中,标签跟踪113能够使经由外部接口110接收的命令的外部标签与在由SSD控制器110处理期间用于跟踪命令的内部标签相关联。
根据各种实施方式,进行以下的一项或多项:数据处理器件121可选地和/或选择性地处理在缓冲器131与外部接口110之间发送的一些或者全部数据;以及数据处理器件121可选地和/或选择性地处理存储于缓冲器131中的数据。在一些实施方式中,数据处理器件121使用一个或多个引擎123来进行以下的一项或多项:格式化;重新格式化;转码;以及任何其它数据处理和/或操纵任务。
缓冲器131存储从器件接口190发送到外部接口110的数据/从外部接口110发送到器件接口190的数据。在一些实施方式中,缓冲器131另外存储由SSD控制器100使用的诸如一些或者全部映射表的系统数据,以管理闪存器件192的一个或多个实例。在各种实施方式中,缓冲器131具有以下的一项或多项:存储器137,用于数据的临时存储;DMA133,用于控制数据的到/从缓冲器131的移动;以及ECC-X135,用于提供高级纠错和/或冗余功能;以及其它数据移动和/或操纵功能。高级冗余功能的示例为类似于RAID的能力(例如,RASIE),具有闪存器件级(例如,闪存器件192中多个闪存器件)和/或闪存芯片级(例如,闪存芯片194)而不是磁盘级的冗余。
根据各种实施方式,以下的一项或多项:ECC161可选地和/或选择性地处理在缓冲器131与外部接口190之间发送的一些或者全部数据;以及ECC161可选地和/或选择性地处理存储于缓冲器131中的数据。在一些实施方式中,诸如根据一个或多个ECC技术,ECC161用于提供低级纠错和/或冗余功能。在一些实施方式中,ECC161实施以下的一项或多项:CRC码;海明码;RS码;BCH码;LDPC码;维特比码;trellis码;硬判决码;软判决码;基于擦除的码;任何错误检测和/或校正码;以及前述码的任何组合。在一些实施方式中,ECC161包括一个或多个解码器(诸如LDPC解码器)。
器件接口逻辑191经由器件接口190来控制闪存器件192的实例。器件接口逻辑191能够根据闪存器件192的协议向/从闪存器件192的实例发送数据。器件接口逻辑191包括调度193以经由器件接口190选择性地顺序控制闪存器件192的实例。例如,在一些实施方式中,调度193能够对于闪存器件192的实例的操作排序,并且当闪存器件192(或者闪存芯片194)的实例中的单独的多个可用时,将该操作选择性地发送到闪存器件192(或者闪存芯片194)的实例中的单独的多个。
映射141使用表143在用于外部接口110的数据寻址与用于器件接口190的数据寻址之间转换,以将外部数据地址映射到NVM199中的位置。例如,在一些实施方式中,映射141经由由表143提供的映射将用于外部接口110的LBA转换为瞄准一个或多个闪存芯片194的块和/或页地址。对于自驱动制造或者去分配起就从未写入的LBA,映射指向缺省值,以返回LBA是否被读取。例如,当处理去分配命令时,映射修改为使得与去分配LBA对应的条目指向缺省值之一。在各种实施方式中,有各种缺省值,每个缺省值具有对应指针。多个缺省值能够将一些去分配LBA(诸如在第一范围内)读取为一个缺省值,同时将其它去分配LBA(诸如在第二范围内)读取为另一个缺省值。在各种实施方式中,缺省值由闪存、硬件、固件、命令和/或原始自变量和/或参数、可编程寄存器或者它们的各种组合定义。
在一些实施方式中,映射141使用表143来进行和/或查找介于用于外部接口110的地址与用于器件接口190的数据寻址之间的转译。根据各种实施方式,表143为以下的一项或多项:一级映射;二级映射;多级映射;映射缓存;压缩映射;从一个地址空间到另一个地址空间的任何类型映射;以及前述任何组合。根据各种实施方式,表143包括以下的一项或多项:静态随机存取存储器;动态随机存取存储器;NVM(诸如闪存);缓存存储器;片上存储器;片外存储器;以及前述存储器的任何组合。
在一些实施方式中,回收站151进行垃圾收集。例如,在一些实施方式中,闪存器件192的实例包含在可重新写入块之前必须擦除的块。诸如通过扫描由映射141保持的映射,回收站151能够确定闪存器件192的实例的哪些部分正在激活地使用(例如,分配而不是去分配),并且能够通过擦除闪存器件192的实例的未使用(例如,去分配)部分使未使用部分可用于写入。在更多实施方式中,回收站151能够移动存储于闪存器件192的实例内的数据以使闪存器件192的实例的更大连续部分可用于写入。
在一些实施方式中,闪存器件192的实例选择性和/或动态配置、管理和/或用于使一个或多个带(band)用于存储不同类型和/或属性的数据。带的数量、排列、大小和类型可动态变化。例如,来自计算主机的数据写入到热(活跃)带,而来自回收站151的数据写入到冷(较不活跃)带。在一些使用方案中,如果计算主机写入长、连续流,那么热带大小增加,而如果计算主机进行随机写入或者几乎不写入,那么冷带大小增加。
CPU171控制SSD控制器100的各个部分。CPU171包括CPU核172。根据各种实施方式,CPU核172为一个或多个单核或者多核处理器。在一些实施方式中,CPU核172中单独的处理器核为多线程。CPU核172包括指令和/或数据缓存器和/或存储器。例如,该指令存储器包含使CPU核172能够执行控制SSD控制器100的程序(例如,软件,有时称为固件)的指令。在一些实施方式中,由CPU核172执行的固件中一些或者全部存储于闪存器件192(如示,例如图1B中NVM199的固件106)的实例上。
在各种实施方式中,CPU171还包括:命令管理173,用于在命令进行中时跟踪和控制经由外部接口110接收的命令;缓冲器管理175,用于控制缓冲器131的分配和使用;转译管理177,用于控制映射141;相关性管理179,用于控制数据寻址一致性且避免诸如外部数据存取与回收数据存取之间的冲突;器件管理181,用于控制器件接口逻辑191;身份管理182,用于控制身份信息的修改和通信;以及可选的其它管理单元。根据各种实施方式,由CPU171进行的管理功能中没有、任何或者全部由硬件、软件(诸如在CPU核172上或者在经由外部接口110连接的主机上进行的固件)或者它们任何组合控制和/或管理。
在一些实施方式中,CPU171能够进行其它管理任务,诸如以下的一项或多项:采集和/或报告性能统计信息;实施SMART;控制功率排序,控制和/或监测和/或调整功耗;对于功率故障作出回应;控制和/或监测和/或调整时钟速率;以及其它管理任务。
各种实施方式包括计算主机闪存控制器,该计算主机闪存控制器与SSD控制器100相似且与各种计算主机(诸如经由调适主机接口111和/或外部接口110)的操作兼容。各种计算主机包括计算机、工作站计算机、服务器计算机、存储服务器、SAN、NAS器件、DAS器件、存储设备、PC、膝上型计算机、笔记本计算机、上网本计算机、平板器件或者计算机、超极本计算机、电子读取器件(诸如电子阅读器)、PDA、导航系统、(手持式)GPS器件、汽车控制系统、汽车媒体控制系统或者计算机、打印机、复印机或传真机或者一体机、POS器件、收银机、媒体播放器、电视机、媒体记录器、DVR、数字相机、蜂窝手机、无绳手持电话机和电子游戏机中一个或者任何组合。
在各种实施方式中,SSD控制器(或者计算主机闪存控制器)的全部或者任何部分在单个IC、多芯片IC中单个芯片、多芯片IC中多个芯片或者多个IC上实施。例如,缓冲器131在与SSD控制器100的其它元件相同的芯片上实施。对于另一个示例,缓冲器131在与SSD控制器100的其它元件不同的芯片上实施。
图1B示出包括图1A中SSD的一个或多个实例的系统的各种实施方式的所选细节。SSD101包括SSD控制器100,SSD控制器100经由器件接口190耦接到NVM199。该图示出各类实施方式:单个SSD,直接耦接到主机;多个SSD,每个SSD经由相应外部接口分别直接耦接到主机;以及一个或多个SSD,经由各种互连元件间接耦接到主机。
作为直接耦接到主机的单个SSD的示例性实施方式,SSD101的一个实例经由外部接口110直接耦接到主机102(例如,交换机/光纤/中间控制器103被省略、绕过或者穿过)。作为均经由外部接口的相应实例直接耦接到主机多个SSD的示例性实施方式,SSD101的多个示例中的每个分别经由外部接口110的相应实例直接耦接到主机102(例如,交换机/光纤/中间控制器103被省略、绕过或者穿过)。作为经由各种互连元件间接耦接到主机的一个或多个SSD的示例性实施方式,SSD101的一个或多个实例中的每个分别间接耦接到主机102。每个间接耦接经由耦接到交换机/光纤/中间控制器103的外部接口110以及耦接到主机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器件通信,例如,经由驱动程序107、驱动程序107和应用程序109,经由驱动程序107或者直接作为VF,向/从SSD101的一个或多个实例发送/接收并且来自/去往OS105中的任何一个或多个的数据。
OS105包括驱动程序(由驱动程序107概念性示出)和/或能够以该驱动程序操作以便与SSD连接。各种Windows版本(例如,95、98、ME、NT、XP、2000、Server、Vista和7)、各种Linux版本(例如,Red Hat、Debian和Ubuntu)和各种MacOS版本(例如,8、9和X)是OS105的示例。在各种实施方式中,驱动程序为可以标准接口和/或协议(诸如SATA、AHCI或者快速NVM)操作的标准和/或通用驱动程序(有时称为“缩小包装”或者“预先安装”),或者可选地定制和/或特供以使得能够使用专用于SSD101的命令。一些驱动和/或驱动程序具有直通模式,从而使应用程序级程序(诸如应用程序109)能够经由最佳NAND存取(有时称为ONA)或者直接NAND存取(有时称为DNA)技术将命令直接通信到SSD101,这使得定制的应用程序能够使用专用于SSD101的命令(即使通过通用驱动程序)。ONA技术包括以下的一项或多项:非标准修饰符(提示)使用;特供命令的使用;非标准统计信息的通信,诸如根据压缩性的实际NVM的使用;以及其它技术。DNA技术包括以下的一项或多项:对于NVM提供未映射读取、写入和/或擦除存取的非标准或者特供命令的使用;诸如通过绕过数据格式化(否则I/O器件将进行该数据格式化),对于NVM提供更直接存取的非标准或者特供命令的使用;以及其它技术。驱动程序的示例为不支持ONA或DNA的驱动程序、启用ONA驱动程序、启用DNA驱动程序和启用ONA/DNA驱动程序。驱动程序的此外示例为供应商提供、供应商开发和/或供应商增强的驱动程序,以及客户提供、客户开发和/或客户增强的驱动程序。
应用级程序的示例为不支持ONA或DNA的应用程序、启用ONA的应用程序、启用DNA的应用程序和启用ONA/DNA的应用程序。虚线箭头109D代表应用程序←→I/O器件通信(例如,经由驱动程序来绕过或者经由应用程序的VF来绕过),例如,诸如在没有将OS用作中介的应用程序的情况下,与SSD进行通信的启用ONA的应用程序和启用ONA的驱动程序。虚线箭头109V代表应用程序←→I/O器件通信(例如,经由应用程序的VF来绕过),例如,诸如在没有将OS用作中介的应用程序的情况下,与SSD进行通信的启用DNA的应用程序和启用DNA的驱动程序。
在一些实施方式中,NVM199的一个或多个部分用于固件存储,例如固件106。固件存储包括一个或多个固件图像(或其部分)。例如,固件图像具有例如由SSD控制器100的CPU核172执行的一个或多个固件图像。对于另一个示例,固件图像具有例如在固件执行期间由CPU核引用的常数、参数值和NVM器件信息中的一个或多个图像。固件图像例如对应于当前固件图像和零个以上先前(相对于固件更新)固件图像。在各种实施方式中,固件提供通用、标准、ONA和/或DNA操作模式。在一些实施方式中,一个或多个固件操作模式经由可选地由驱动程序通信和/或提供的密钥或者各种软件技术来启用(例如,一个或多个API被“解锁”)。
在缺乏交换机/光纤/中间控制器的一些实施方式中,SSD经由外部接口110直接耦接到主机。在各种实施方式中,SSD控制器100经由其它控制器(诸如RAID控制器)的一个或多个中间级耦接到主机。在一些实施方式中,SSD101(或其变体)对应于SAS驱动程序或者SATA驱动程序,并且交换机/光纤/中间控制器103对应于转而耦接到发起器的扩展器,或备选地交换机/光纤/中间控制器103对应于网桥,该网桥经由扩展器间接耦接到发起器。在一些实施方式中,交换机/光纤/中间控制器103包括一个或多个PCI交换机和/或光纤。
在各种实施方式中,诸如主机102作为计算主机(例如,计算机、工作站计算机、服务器计算机、存储服务器、SAN、NAS器件、DAS器件、存储设备、PC、膝上型计算机、笔记本计算机和/或上网本计算机)的实施方式中的一些中,计算主机可选地能够与一个或多个本地和/或远程服务器(例如,可选的服务器118)进行通信(例如,经由可选的I/O&存储器件/资源117和可选的LAN/WAN119)。例如,通信使得能够本地和/或远程存取、管理和/或使用SSD101元件中任何一个或多个元件。在一些实施方式中,通信全部或者部分经由以太网。在一些实施方式中,通信全部或者部分经由光纤信道。在各种实施方式中,LAN/WAN119代表一个或多个局域网和/或广域网,诸如服务器场中的网络、耦接服务器场的网络、城域网和互联网中的任何一个或多个。
在各种实施方式中,与一个或多个NVM组合的SSD控制器和/或计算主机闪存控制器实施为非易失性存储组件,诸如USB存储组件、CF存储组件、MMC存储组件、eMMC存储组件、Thunderbolt存储组件、UFS存储组件、SD存储组件、记忆棒存储组件和xD图像卡存储组件。
在各种实施方式中,SSD控制器(或者计算主机闪存控制器)的全部或者任何部分或其功能在与该控制器耦接的主机(例如,图1B中主机102)中实施。在各种实施方式中,SSD控制器(或者计算主机闪存控制器)的全部或者任何部分或其功能经由硬件(例如逻辑电路)、软件和/或固件(例如,驱动程序软件和/或SSD控制固件)或者它们任何组合实施。例如,ECC单元(诸如,类似于图1A中的ECC161和/或ECC-X135)的功能或者与ECC单元(诸如,类似于图1A中的ECC161和/或ECC-X135)相关联的功能部分地经由主机上软件且部分地经由SSD控制器中固件和硬件的组合来实施。对于另一个示例,回收站单元(诸如,类似于图1A中的回收站151)的功能或者与回收站单元(诸如,类似于图1A中的回收站151)相关联的功能部分地经由主机上的软件且部分地经由计算主机闪存控制器中的硬件来实施。
单元损伤测量
图2A和图2B在概念上示出与单元损伤测量有关的器件阈值电压分布。为了这个讨论的目的,每个山状凸起是表示NVM的读取单位大小部分的相应状态的器件阈值电压概率分布的独立类高斯曲线的抽象。器件阈值电压轴随着正电压增加移动到右边。绝对比例并不打算提供,并且未标明基准点,使得该图更普遍地适用于更大数量的NVM。图2A和图2B在概念上示出利用特定编码方案每单元存储两位的4LC存储器。有四个阈值电压分布(E200、D1201、D2202和D3203),该四个阈值电压分布编码四个状态(分别为11、01、00、10)。
图2A针对下页,而图2B针对上页。MLC下页阈值211左侧的单元具有下页值“1”,而MLC下页阈值右侧的单元具有下页值“0”。在各种实施方式和/或使用方案中,单元错误由在编程期间的电压过冲引起。在所示编码方案中,单元错误使单元从MLC下页状态211单向移位到移位的MLC下页状态231且从值“1”(例如,D1)变为值“0”(例如,D2)。对于图2A所示的编码,当电荷从单元泄漏时,下页保留错误将在相反方向上引起移位(例如,从D2到D1)。
在图2B中,MLC上页第一阈值210左侧的单元以及MLC上页第二阈值212右侧的单元具有上页值“1”。MLC第一上页阈值与MLC第二上页阈值之间的单元具有值“0”。在这个编码方案中,单元错误也引起器件阈值电压单向移位。例如,单元错误引起MLC上页第一状态220单向移位到移位的MLC上页第一状态230且从值“1”(E)变为值“0”(D1)。单元错误引起MLC上页第二状态222单向移位到移位的MLC上页第二状态232且从值“0”(D2)变为值“1”(D3)。对于图2B所示的编码,上页保留错误将分别在相反方向上引起单向移位(例如,从D1到E或者从D3到D2)。
单元损伤以各种方式体现,包括单元未能完全擦除(擦除后未完全返回到E200)、未能正确编程(编程后未达到或者超过D1201、D2202和D3203中的确定的一个)、无法保持电荷(例如,过多泄漏)、物理故障(诸如短路或者开路)和其它原因。
单元损伤测量功能
图3提供图1A和图1B中SSD101、SSD控制器100和NVM199的备选示图,其重新绘制所选逻辑块的边界以强调特定功能。SSD101在顶层包括外部接口110、SSD控制器100、NVM199和器件接口190。
外部接口110耦接到主机(诸如图1B中的主机102),并且支持包括主机源存储相关命令和写入数据以及控制器源读取数据的高级存储协议(诸如SATA),并且如上图1A详细讨论的。如图1A详细讨论的,器件接口190支持低级NVM I/O交易。NVM199包括NVM阵列332、可编程读取电压电路334、控制/状态寄存器336和I/O338。SSD控制器100起到主机接口111、扰乱器310、ECC编码器320、器件接口逻辑191、缓冲器131、ECC解码器360、解扰器370和单元损伤计数器380的作用。如上所述,主机接口111经由外部接口110与主机耦接,将写入数据306提供给扰乱器310,并且从缓冲器131接收读取数据351。
写入路径和功能如下。扰乱器310对于写入数据306进行操作以产生到ECC编码器320的扰乱的写入数据311。扰乱器310以可逆方式扰乱写入数据306且使得扰乱的写入数据311具有存储状态的已知统计分布。包括扰乱的数据的块示例是包括扰乱的写入数据311的块。例如,包括扰乱的数据的SLC块包括在统计上相等数量的‘0’和‘1’值,并且包括扰乱的数据的4LC块包括在统计上相等数量的‘00’、‘01’、‘10’和‘11’状态。统计上相等是指当将大量样本平均时,结果将等同于对于均匀分布的状态所期望的。例如,抛硬币一百万次产生在统计上相等数量的正反面,但是在任何一个样本中实际正反面数不可能在数值上相等。
在一些实施方式中,扰乱器310诸如经由AES编码器进行加密,AES编码器将数据随机化为加密副产品。在一些实施方式中,扰乱器310使用线性反馈移位寄存器(LFSR)使数据随机化(在没有任何数据安全意图的情况下)。ECC编码器320处理扰乱的写入数据311以添加另外ECC位,产生ECC编码的写入数据321,ECC编码写入数据321提供给器件接口逻辑191,以便经由器件接口190存储到NVM199中。
基本读取路径和功能如下。经由器件接口190从NVM199接收包括未校正且扰乱的(原)读取数据359的NVM页。继续图3,每个读取单位名义上包括由扰乱器301加扰的数据以及由ECC编码器320产生的另外ECC位,但是由于NVM存储和检索操作而一般被无意地改变。读取单位经由缓冲器131提供给ECC解码器360。ECC解码器360处理读取单位,利用所包括的另外ECC位来大体上校正可能在任何点和时间出现的任何错误(因为数据首先ECC编码),产生提供给解扰器370的校正读取数据361。解扰器370操作校正读取数据361,使由扰乱器310进行的加扰反向,产生解扰的读取数据371,解扰的读取数据371作为读取数据351经由缓冲器131提供给主机接口111。
在各种实施方式中,单元损伤计数器380与读取路径和写入路径交互以跟踪NVM页和/或块的单元损伤。具体地,当SSD控制器检测到错误由单元损伤引起时,ECC解码器发送单元损伤更新362以更新单元损伤计数器的一个或多个值。在一些实施方式中,至少部分基于单元损伤计数器的一个或多个值,指示对NVM块进行写入。在各种实施方式中,单元损伤计数器的值跟踪NVM页和/或NVM块中的一个或多个中的损伤单元数。在一些实施方式中,单元损伤计数器的值通过将块包括的NVM页中损伤单元数相加来跟踪NVM块中的损伤单元数。
图3示出在主机操作为写入到NVM199和从NVM199读取的数据的源和接受器(sink)的情况下的单元损伤测量功能。在各种实施方式(诸如图1A和图1B所示)中,一个或多个其它代理操作为写入到NVM199和从NVM199读取的数据的源和接受器。其它代理的示例为图1A中的回收站151,如本文其它处描述的,回收站151将数据从NVM199中的一个位置移动到另一个位置。
在各种实施方式中,至少部分使用数据处理121和ECC161(图1A中数据处理和ECC)中的一个或多个,实施与扰乱器310、ECC编码器320、ECC解码器360和解扰器370中任何一个或多个相关联的功能的任何或者全部部分。
单元损伤测量控制流
图4示出图1A、图1B和图3中SSD的实施方式的所选控制流,提供与单元损伤测量有关的特定细节。讨论重点在于测量对于NVM下页的单元损伤。然而,可以设想测量对于NVM任何(例如上)页的单元损伤其它实施方式。
在一些情况下,当读取NVM页时发生错误。当检测到页读取错误时,SSD控制器应用FEC解码(例如,通过ECC解码器的ECC解码或者LDPC解码)以校正错误。一旦FEC解码成功401,就确定错误类型。如果错误满足条件402,那么错误可能已由单元损伤引起。在一些实施方式中,条件为页中所有不正确单元单向偏离正确值(例如,所有不正确单元从“1”移位到“0”)。在其它实施方式中,条件为页中不正确单元单向偏离正确值(例如,50%以上不正确单元从“1”移位到“0”)。在其它实施方式中,条件为页中至少一个不正确单元单向偏离正确值(例如,不正确单元之一从“1”移位到“0”)。在其它实施方式中,条件为不正确单元数和/或在特定方向上偏离正确值的不正确单元数超过阈值,阈值至少部分基于从页被编程起的持续时间。
如果错误不满足条件,那么处理结束。如果错误确实满足条件,那么在一些情况下,错误由单元损伤或者保留引起。为了检测错误是否由单元损伤引起,页进行擦除和/或重新编程且立即回读403。在回读期间,ECC解码器将检测任何随后错误404。如果未检测到随后错误(例如,如果擦除和/或重新编程页修正错误),那么页读取错误由保留故障407引起(例如,由于单元泄漏),并且处理结束,因为未检测到单元损伤。
然而,如果在回读期间检测到随后错误(例如,通过ECC解码器),那么随后错误指示页读取错误是单元损伤错误405。使用单元损伤计数器,记录单元损伤错误。更新与具有随后错误的NVM页和/或块相关联的单元损伤计数器的(多个)值406。在一些实施方式中,与NVM页和/或块相关联的单元损伤计数器的值增加了损伤单元数(例如,如果页/块中四个单元损伤,那么相关联计数器增加了四)。一旦单元损伤计数器更新,单元损伤测量就完成。在一些实施方式中,跟踪损伤单元的一个或多个位置,使得一个或多个位置中的重复错误不会引起单元损伤计数器的重复增加。
单元损伤测量和耗损均衡
在一些实施方式和/或使用方案中,耗损均衡技术通过减少单元损伤来提高NVM可靠性、寿命和/或性能。在一些实施方式中,耗损均衡跨NVM块均匀地分布P/E周期以避免过早磨损(例如,引起单元损伤)任何单独块。
然而,NVM块的P/E周期数为不完善的单元损伤估计。许多其它因素(例如,PVT或者停留时间)影响单元损伤且在NVM和/或SSD之间是非均匀的。因此,在不同温度下的两个NVM块可能在极其不同的P/E周期计数时出现故障(例如,由于单元损伤)。在各种实施方式和/或使用方案中,测量单元损伤使更加准确的耗损均衡成为可能(例如,通过隐性地考虑NVM块和/或芯片之间的温度变化)。
图5在概念上示出基于测量单元损伤的耗损均衡的所选细节。NVM504的块耐久度502被监测。不同于将耐久度测量为P/E周期数,图5中每个块表示NVM504中相应块的单元损伤计数器的单元损伤值507。因此,耐久度502对应于实际块耗损而不是块P/E周期。
在各种实施方式中,单元损伤阈值506用于优化耗损均衡。单元损伤计数器值超过单元损伤阈值的块出现故障的风险更高,并且诸如通过用于存储已知或者更可能较不频繁写入的数据而更不频繁地写入。单元损伤计数器值未超过单元损伤阈值的块出现故障的风险更低,并且诸如通过用于存储已知或者更可能更频繁写入的数据而被更频繁地写入。在各种实施方式中,单元损伤阈值是可编程的且随着时间推移进行调整。通过更频繁选择单元损伤较小的块,耗损均衡技术在所有块之间均衡单元损伤,从而减少故障可能性且提高性能和/或可靠性。
其它实施方式信息
在各种实施方式中,图4所示的一个或多个操作(或其部分)由SSD控制器(诸如图1A中SSD控制器100)或其元件进行和/或管理。例如,在一些实施方式中,图4所示的一个或多个操作由由图1A中CPU核172进行的固件实施和/或管理。在各种实施方式中,图4所示的一个或多个操作(或其部分)由图3所示的一个或多个元件进行和/或管理。例如,在一些实施方式中,后续错误检测(例如,如由检测到错误?404的一些实施方式进行的)至少部分由图3中ECC解码器360进行。
示例性实施技术
在一些实施方式中,由测量非易失性存储器(例如,闪存)中单元耗损均衡损伤的SSD、计算机主机闪存控制器和/或SSD控制器(诸如图1A中SSD控制器100)以及处理器、微处理器、片上系统、专用集成电路、硬件加速器或者提供上述全部或者部分操作的其它电路进行的全部操作或者部分操作的各种组合由与计算机系统的处理兼容的规范指定。该规范为根据各种描述,诸如硬件描述语言、电路描述、网络表描述、掩码描述或者布局描述。示例性描述包括:Verilog、VHDL、SPICE、SPICE变体(诸如PSpice)、IBIS、LEF、DEF、GDS-II、OASIS或者其它描述。在各种实施方式中,该处理包括解译、编译、模拟和合成的任何组合以产生、验证或者指定适合包括在一个或多个集成电路上的逻辑器件和/或电路。根据各种实施方式,每个集成电路可根据各种技术设计和/或制造。技术包括可编程技术(诸如现场可编程门阵列集成电路或者掩码可编程门阵列集成电路)、半定制技术(诸如全部或者部分基于单元的集成电路)和全定制技术(诸如基本上特定的集成电路)、它们任何组合或者与集成电路设计和/或制造兼容的任何其它技术。
在一些实施方式中,如由存储一组指令的计算机可读介质描述的全部操作或者部分操作的各种组合通过进行和/或解译一个或多个程序指令、通过解译和/或编译一个或多个源和/或脚本语言语句或者通过进行二进制指令来进行,二进制指令通过编译、转译和/或解译在编程和/或脚本语言语句中表达的信息来产生。语句与任何标准编程或者脚本语言(诸如C、C++、Fortran、Pascal、Ada、Java、VBscript和Shell)兼容。程序指令、语言语句或者二进制指令中的一个或多个可选地存储于一个或多个计算机可读存储介质元件上。在各种实施方式中,程序指令中一些、全部或者各个部分实现为一个或多个功能、例程、子例程、串联例程、程序、宏或者它们一部分。
结论
描述书中已经作出的某些选择仅为了便于准备文本和附图,并且除非另有描述,该选择本质上不应解释为传达与该实施方式的结构或者操作有关的另外信息。选择的示例包括:用于附图编号的指定组织或者分配以及用于识别和参考实施方式的特征和要素的要素标识符(例如,标注或者数值指示符)组织或者分配。
单词“包括(includes)”或者“包括(including)”旨在特定解释为描述开放式范围的逻辑组的抽象概念且并不意味着传达实际限制,除非随后单词“在…内(within)”明确指出。
虽然为了描述和理解的清晰而以某些细节描述前述实施方式,但是本发明并不限于所提供的细节。本发明有许多实施方式。所公开的实施方式为示例性而非限制性的。
应当理解,许多结构、排列和使用变化可能与描述相一致且在公开的专利的权利要求范围内。例如,根据各种实施方式,互连和功能单元的位宽、时钟速度和所使用技术类型在每个组件块中为可变的。给予互连和逻辑的名称仅为示例性且不应解释为限制该概念。根据各种实施方式,流程图和流程图处理、动作和功能元件的顺序和排列为可变。同样,除非另有明确指出,否则所指定的值范围、所使用的最大和最小值或者其它特定规格(诸如闪存技术类型;以及寄存器和缓冲器中条目数或者级数)仅为描述的实施方式中的那些,被期望跟随实施技术的改良和变化,并且不应解释为限制。
可采用本领域中已知的功能等效技术,而不是描述为实施各种组件、子系统、操作、功能、例程、子例程、串联例程、程序、宏或者它们一部分的技术。也应当理解,实施方式的许多功能方面选择性地可在硬件(例如,大体上专用电路)或者软件中实现(例如,经由编程控制器或者处理器的某个方式),随着取决于实施方式的设计约束以及更快处理器(有利于先前在硬件中的功能迁移到软件)和更高集成密度(有利于先前在软件中的功能迁移到硬件)技术发展趋势而变化。各种实施方式中特定变化包括但不限于:分区差异;形式因数和配置差异;不同操作系统和其它系统软件的使用;不同接口标准、网络协议或通信链路的使用;以及当根据特定应用的唯一工程和商业约束来实施本文所述的概念时期望的其它变化。
通过远超实施方式的多方面的最小实施所需的细节和环境背景,详细描述了实施方式。本领域的一般技术人员应当理解,一些实施方式省略所公开的组件或者特征,而未改变其余元件之间的基本协作。因此,应当理解,许多公开的细节对于实施描述的实施方式的各方面是不需要的。在剩余元件与现有技术可区分的程度上,省略的组件和特征并不限制本文描述的概念。
通过由实施方式传达的教学下,所有这些设计变化都是非实质变化。也应当理解,本文描述的实施方式具有对于其它计算和联网应用的广泛适用性,并且并不限于所描述的实施方式的特定应用或产业。因此,本发明应当解释为包括涵盖在提出的专利的权利要求范围内的所有可能的修改和变化。

Claims (8)

1.一种用于耗损均衡的方法,包括:
在包括一个或多个部分的非易失性存储器(NVM)中,从所述一个或多个部分的一个特定部分的至少一个或多个单元中检测初始错误,所述一个或多个部分的每一者包括一个或多个单元;
确定所述初始错误是否为特定错误状态;
响应于确定所述初始错误为特定错误状态,重新编程至少所述特定部分的子部分并且回读所述单元中的所述至少一个,并且所述子部分包括所述单元的所述至少一个;
检测经重新编程和经回读的所述单元中的所述至少一个是否包括后续错误;以及
响应于检测所述单元中的所述至少一个是否包括后续错误,将所述特定错误状态记录为第一类型错误状态。
2.根据权利要求1所述的方法,其中,所述第一类型错误状态为编程故障和擦除故障中的一个或多个。
3.根据权利要求1所述的方法,其中,所述确定包括将正向纠错解码应用于所述特定部分的子部分,所述子部分包括所述单元中的所述至少一个。
4.根据权利要求1所述的方法,其中,所述检测所述后续错误包括重新编程和/或擦除至少所述特定部分的子部分并且回读所述单元中的所述至少一个,并且所述子部分包括所述单元中的所述至少一个。
5.一种用于耗损均衡的装置,包括:
非易失性存储器(NVM),包括一个或多个部分;所述一个或多个部分的每一者包括一个或多个单元;
测量硬件逻辑电路,能够检测所述单元中的一个或多个的初始错误,以及确定来自所述一个或多个部分的一个特定部分的所述一个或多个单元的至少一个中的所述初始错误是否为特定错误状态;
重试硬件逻辑电路,能够响应于所述测量硬件逻辑电路确定所述初始错误是否为特定错误状态,重新编程至少所述特定部分的子部分并且回读所述单元中的所述至少一个,并且所述子部分包括所述单元的所述至少一个;以及
故障检测硬件逻辑电路,能够检测经重新编程和经回读的所述单元中的所述至少一个是否包括后续错误,以及响应于检测所述单元中的所述至少一个是否包括后续错误,将所述特定错误状态记录为第一类型错误状态。
6.根据权利要求5所述的装置,其中,所述第一类型错误状态为编程故障和擦除故障中的一个或多个。
7.根据权利要求5所述的装置,其中,所述测量硬件逻辑电路包括:
确定硬件逻辑电路,能够确定从所述部分中的一个特定部分的所述单元中的至少一个读取的错误是单元损伤和单元泄漏中的一个或多个导致的;以及
损伤检测硬件逻辑电路,能够检测所述错误是损伤单元导致的。
8.根据权利要求7所述的装置,其中,所述确定硬件逻辑电路包括解码硬件逻辑电路,所述解码硬件逻辑电路将正向纠错解码应用于所述特定部分的子部分,所述子部分包括所述单元中的所述至少一个。
CN201310418813.8A 2012-09-15 2013-09-13 为了非易失性存储器中的耗损均衡测量单元损伤 Active CN103678146B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/620,982 US9329948B2 (en) 2012-09-15 2012-09-15 Measuring cell damage for wear leveling in a non-volatile memory
US13/620,982 2012-09-15

Publications (2)

Publication Number Publication Date
CN103678146A CN103678146A (zh) 2014-03-26
CN103678146B true CN103678146B (zh) 2018-09-28

Family

ID=49165578

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310418813.8A Active CN103678146B (zh) 2012-09-15 2013-09-13 为了非易失性存储器中的耗损均衡测量单元损伤

Country Status (6)

Country Link
US (1) US9329948B2 (zh)
EP (1) EP2709110A1 (zh)
JP (1) JP6452278B2 (zh)
KR (1) KR20140037768A (zh)
CN (1) CN103678146B (zh)
TW (1) TW201415468A (zh)

Families Citing this family (78)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9699263B1 (en) 2012-08-17 2017-07-04 Sandisk Technologies Llc. Automatic read and write acceleration of data accessed by virtual machines
US9135112B2 (en) * 2012-12-11 2015-09-15 Seagate Technology Llc Policy for read operations addressing on-the-fly decoding failure in non-volatile memory
US9612948B2 (en) 2012-12-27 2017-04-04 Sandisk Technologies Llc Reads and writes between a contiguous data block and noncontiguous sets of logical address blocks in a persistent storage device
US9454420B1 (en) 2012-12-31 2016-09-27 Sandisk Technologies Llc Method and system of reading threshold voltage equalization
US9870830B1 (en) 2013-03-14 2018-01-16 Sandisk Technologies Llc Optimal multilevel sensing for reading data from a storage medium
US9235468B2 (en) * 2013-04-12 2016-01-12 Qualcomm Incorporated Systems and methods to improve the reliability and lifespan of flash memory
US9092321B2 (en) * 2013-07-24 2015-07-28 NXGN Data, Inc. System and method for performing efficient searches and queries in a storage node
US9021189B2 (en) 2013-07-24 2015-04-28 NXGN Data, Inc. System and method for performing efficient processing of data stored in a storage node
US9524235B1 (en) 2013-07-25 2016-12-20 Sandisk Technologies Llc Local hash value generation in non-volatile data storage systems
US9715424B1 (en) * 2013-08-23 2017-07-25 Rambus Inc. Memory device and repair method with column-based error code tracking
US9639463B1 (en) 2013-08-26 2017-05-02 Sandisk Technologies Llc Heuristic aware garbage collection scheme in storage systems
US9436831B2 (en) * 2013-10-30 2016-09-06 Sandisk Technologies Llc Secure erase in a memory device
US9244785B2 (en) 2013-11-13 2016-01-26 Sandisk Enterprise Ip Llc Simulated power failure and data hardening
US9703816B2 (en) 2013-11-19 2017-07-11 Sandisk Technologies Llc Method and system for forward reference logging in a persistent datastore
US9520197B2 (en) 2013-11-22 2016-12-13 Sandisk Technologies Llc Adaptive erase of a storage device
US9582058B2 (en) 2013-11-29 2017-02-28 Sandisk Technologies Llc Power inrush management of storage devices
US9671973B2 (en) * 2013-12-20 2017-06-06 Empire Technology Development Llc Data storage in degraded solid state memory
US9703636B2 (en) 2014-03-01 2017-07-11 Sandisk Technologies Llc Firmware reversion trigger and control
US9626400B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Compaction of information in tiered data structure
US9626399B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Conditional updates for reducing frequency of data modification operations
US9697267B2 (en) 2014-04-03 2017-07-04 Sandisk Technologies Llc Methods and systems for performing efficient snapshots in tiered data structures
TWI502348B (zh) * 2014-05-02 2015-10-01 Via Tech Inc 延伸唯讀記憶體管理系統、方法及其管理主機
US10162748B2 (en) 2014-05-30 2018-12-25 Sandisk Technologies Llc Prioritizing garbage collection and block allocation based on I/O history for logical address regions
US10656840B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Real-time I/O pattern recognition to enhance performance and endurance of a storage device
US10146448B2 (en) 2014-05-30 2018-12-04 Sandisk Technologies Llc Using history of I/O sequences to trigger cached read ahead in a non-volatile storage device
US10656842B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Using history of I/O sizes and I/O sequences to trigger coalesced writes in a non-volatile storage device
US10372613B2 (en) 2014-05-30 2019-08-06 Sandisk Technologies Llc Using sub-region I/O history to cache repeatedly accessed sub-regions in a non-volatile storage device
US9703491B2 (en) 2014-05-30 2017-07-11 Sandisk Technologies Llc Using history of unaligned writes to cache data and avoid read-modify-writes in a non-volatile storage device
US10114557B2 (en) 2014-05-30 2018-10-30 Sandisk Technologies Llc Identification of hot regions to enhance performance and endurance of a non-volatile storage device
US9652381B2 (en) 2014-06-19 2017-05-16 Sandisk Technologies Llc Sub-block garbage collection
WO2015195141A1 (en) 2014-06-20 2015-12-23 Hewlett-Packard Development Company, L. P. Memristive memory cell resistance switch monitoring
US10084479B2 (en) * 2014-07-07 2018-09-25 Toshiba Memory Corporation Low BER hard-decision LDPC decoder
KR102219293B1 (ko) 2014-07-28 2021-02-23 삼성전자 주식회사 메모리 장치, 메모리 시스템, 상기 메모리 장치의 동작 방법 및 상기 메모리 시스템의 동작 방법
KR102188061B1 (ko) 2014-07-29 2020-12-07 삼성전자 주식회사 메모리 장치, 메모리 시스템 및 메모리 장치의 동작방법
US9594615B2 (en) * 2014-09-30 2017-03-14 Apple Inc. Estimating flash quality using selective error emphasis
TWI537966B (zh) * 2014-10-03 2016-06-11 群聯電子股份有限公司 錯誤處理方法、記憶體儲存裝置及記憶體控制電路單元
DE102014115885B4 (de) * 2014-10-31 2018-03-08 Infineon Technologies Ag Funktionstüchtigkeitszustand von nicht-flüchtigem Speicher
US9565269B2 (en) 2014-11-04 2017-02-07 Pavilion Data Systems, Inc. Non-volatile memory express over ethernet
US9712619B2 (en) 2014-11-04 2017-07-18 Pavilion Data Systems, Inc. Virtual non-volatile memory express drive
KR102295208B1 (ko) * 2014-12-19 2021-09-01 삼성전자주식회사 프로그램 영역을 동적으로 할당하는 저장 장치 및 그것의 프로그램 방법
US9678665B2 (en) * 2015-03-06 2017-06-13 Western Digital Technologies, Inc. Methods and systems for memory page allocation
CN106155812A (zh) 2015-04-28 2016-11-23 阿里巴巴集团控股有限公司 一种对虚拟主机的资源管理的方法、装置、系统及电子设备
KR102403253B1 (ko) 2015-07-06 2022-05-30 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 스토리지 장치
KR102381218B1 (ko) * 2015-09-25 2022-04-01 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US9858009B2 (en) * 2015-10-26 2018-01-02 Sandisk Technologies Llc Data folding in 3D nonvolatile memory
US10063258B2 (en) * 2016-03-04 2018-08-28 Sandisk Technologies Llc Method and data storage device to estimate a number of errors using convolutional low-density parity-check coding
KR20170143084A (ko) 2016-06-17 2017-12-29 에스케이하이닉스 주식회사 반도체장치 및 반도체시스템
KR102643916B1 (ko) * 2016-10-18 2024-03-08 삼성전자주식회사 스토리지 장치, 메모리 시스템, 및 그것의 읽기 전압 결정 방법
US10685710B2 (en) * 2016-11-17 2020-06-16 Toshiba Memory Corporation Memory controller
US9881682B1 (en) * 2016-11-23 2018-01-30 Seagate Technology Llc Fine grained data retention monitoring in solid state drives
US10379769B2 (en) 2016-12-30 2019-08-13 Western Digital Technologies, Inc. Continuous adaptive calibration for flash memory devices
FR3062268B1 (fr) 2017-01-26 2019-03-22 Sagemcom Broadband Sas Procede d'enregistrement adaptatif au taux d'usure du support de stockage
US9837153B1 (en) 2017-03-24 2017-12-05 Western Digital Technologies, Inc. Selecting reversible resistance memory cells based on initial resistance switching
US20180285562A1 (en) * 2017-03-31 2018-10-04 Intel Corporation Computing system with protection against memory wear out attacks
CN108958961B (zh) 2017-05-22 2021-11-30 上海宝存信息科技有限公司 数据储存装置以及数据错误管理方法
CN109378027A (zh) * 2017-08-09 2019-02-22 光宝科技股份有限公司 固态储存装置的控制方法
US10388351B2 (en) * 2017-08-30 2019-08-20 Micron Technology, Inc. Wear leveling for random access and ferroelectric memory
US10447301B2 (en) * 2017-09-13 2019-10-15 Toshiba Memory Corporation Optimal LDPC bit flip decision
TWI662410B (zh) 2017-12-18 2019-06-11 慧榮科技股份有限公司 資料儲存裝置與記憶體裝置之資料處理方法
US10354736B1 (en) * 2018-04-30 2019-07-16 Western Digital Technologies, Inc. Memory failure detection and resource allocation
US11631465B2 (en) 2018-07-03 2023-04-18 Samsung Electronics Co., Ltd. Non-volatile memory device
KR102601213B1 (ko) * 2018-07-03 2023-11-10 삼성전자주식회사 비휘발성 메모리 장치 및 비휘발성 메모리 장치의 제조 방법
US11164638B2 (en) 2018-07-03 2021-11-02 Samsung Electronics Co., Ltd. Non-volatile memory device
US10817430B2 (en) * 2018-10-02 2020-10-27 Micron Technology, Inc. Access unit and management segment memory operations
KR102610821B1 (ko) * 2018-11-15 2023-12-06 삼성전자주식회사 내구성 저하를 판단하는 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작방법
CN109558263B (zh) * 2018-12-03 2021-10-29 郑州云海信息技术有限公司 一种固态硬盘数据读取错误的处理方法及相关装置
US11316687B2 (en) * 2019-03-04 2022-04-26 Cypress Semiconductor Corporation Encrypted gang programming
CN110057306B (zh) * 2019-06-03 2024-06-07 呜啦啦(广州)科技有限公司 周径传感器的驱动装置及其自动归零初始化方法
TWI766194B (zh) * 2019-06-17 2022-06-01 慧榮科技股份有限公司 資料儲存裝置以及非揮發式記憶體控制方法
CN112099985B (zh) 2019-06-17 2023-09-12 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法
CN112100087B (zh) 2019-06-17 2024-04-02 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法
US10783978B1 (en) * 2019-08-27 2020-09-22 Micron Technology, Inc. Read voltage-assisted manufacturing tests of memory sub-system
JP7418105B2 (ja) * 2019-08-30 2024-01-19 キヤノン株式会社 記録装置、制御方法、及びプログラム
US11061768B1 (en) * 2020-02-14 2021-07-13 Western Digital Technologies, Inc. Storage device with increased endurance
WO2021198406A1 (en) * 2020-04-03 2021-10-07 Continental Teves Ag & Co. Ohg Method of discrete digital signal recovery in noisy overloaded wireless communication systems in the presence of hardware impairments
US11328778B2 (en) 2020-07-09 2022-05-10 Stmicroelectronics S.R.L. Methods and devices for wear leveling
KR20220065296A (ko) 2020-11-13 2022-05-20 삼성전자주식회사 비휘발성 메모리 장치의 블록 내구성 측정 방법 및 이를 이용한 스토리지 장치의 웨어 레벨링 방법
US20230015697A1 (en) * 2021-07-13 2023-01-19 Citrix Systems, Inc. Application programming interface (api) authorization

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102449613A (zh) * 2009-06-03 2012-05-09 美光科技公司 固态装置中的面向对象的存储器

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61131050A (ja) * 1984-11-29 1986-06-18 Fujitsu Ltd メモリエラ−処理方式
TW261687B (zh) 1991-11-26 1995-11-01 Hitachi Seisakusyo Kk
US6347051B2 (en) 1991-11-26 2002-02-12 Hitachi, Ltd. Storage device employing a flash memory
US5341339A (en) 1992-10-30 1994-08-23 Intel Corporation Method for wear leveling in a flash EEPROM memory
US5586285A (en) 1993-02-19 1996-12-17 Intel Corporation Method and circuitry for increasing reserve memory in a solid state memory disk
US20080071973A1 (en) 2000-01-06 2008-03-20 Chow David Q Electronic data flash card with various flash memory cells
US8341332B2 (en) 2003-12-02 2012-12-25 Super Talent Electronics, Inc. Multi-level controller with smart storage transfer manager for interleaving multiple single-chip flash memory devices
US20080082736A1 (en) 2004-03-11 2008-04-03 Chow David Q Managing bad blocks in various flash memory cells for electronic data flash card
US7441067B2 (en) 2004-11-15 2008-10-21 Sandisk Corporation Cyclic flash memory wear leveling
US7386655B2 (en) 2004-12-16 2008-06-10 Sandisk Corporation Non-volatile memory and method with improved indexing for scratch pad and update blocks
US7552271B2 (en) 2005-08-03 2009-06-23 Sandisk Corporation Nonvolatile memory with block management
US20070180186A1 (en) 2006-01-27 2007-08-02 Cornwell Michael J Non-volatile memory management
US7653778B2 (en) 2006-05-08 2010-01-26 Siliconsystems, Inc. Systems and methods for measuring the useful life of solid-state storage devices
US20080168215A1 (en) * 2007-01-05 2008-07-10 Anxiao Jiang Storing Information in a Memory
US7656706B2 (en) * 2007-01-05 2010-02-02 The Texas A&M University System Storing information in a memory
US20080294813A1 (en) 2007-05-24 2008-11-27 Sergey Anatolievich Gorobets Managing Housekeeping Operations in Flash Memory
US20090063895A1 (en) 2007-09-04 2009-03-05 Kurt Smith Scaleable and maintainable solid state drive
TWI373772B (en) 2007-10-04 2012-10-01 Phison Electronics Corp Wear leveling method and controller using the same
US7849275B2 (en) * 2007-11-19 2010-12-07 Sandforce, Inc. System, method and a computer program product for writing data to different storage devices based on write frequency
US7903486B2 (en) * 2007-11-19 2011-03-08 Sandforce, Inc. System, method, and computer program product for increasing a lifetime of a plurality of blocks of memory
KR101406279B1 (ko) * 2007-12-20 2014-06-13 삼성전자주식회사 반도체 메모리 장치 및 그것의 읽기 페일 분석 방법
US20100017650A1 (en) 2008-07-19 2010-01-21 Nanostar Corporation, U.S.A Non-volatile memory data storage system with reliability management
US7864579B2 (en) 2008-07-24 2011-01-04 Qimonda Ag Integrated circuits having a controller to control a read operation and methods for operating the same
US8327066B2 (en) * 2008-09-30 2012-12-04 Samsung Electronics Co., Ltd. Method of managing a solid state drive, associated systems and implementations
US8291131B2 (en) 2009-07-06 2012-10-16 Micron Technology, Inc. Data transfer management
US8370712B2 (en) 2009-07-23 2013-02-05 International Business Machines Corporation Memory management in a non-volatile solid state memory device
US20110041039A1 (en) * 2009-08-11 2011-02-17 Eliyahou Harari Controller and Method for Interfacing Between a Host Controller in a Host and a Flash Memory Device
JP2011059907A (ja) * 2009-09-09 2011-03-24 Nec Corp 端末装置及びそれに用いる不揮発メモリ管理方法並びにそのプログラム
KR101662273B1 (ko) 2009-11-27 2016-10-05 삼성전자주식회사 비휘발성 메모리 장치, 그것을 포함한 메모리 시스템 및 그것의 마모도 관리 방법
US8164967B2 (en) * 2010-03-24 2012-04-24 Apple Inc. Systems and methods for refreshing non-volatile memory
US8503257B2 (en) 2010-07-30 2013-08-06 Apple Inc. Read disturb scorecard
US8364888B2 (en) * 2011-02-03 2013-01-29 Stec, Inc. Erase-suspend system and method
US10079068B2 (en) 2011-02-23 2018-09-18 Avago Technologies General Ip (Singapore) Pte. Ltd. Devices and method for wear estimation based memory management
JP2012212312A (ja) * 2011-03-31 2012-11-01 Pioneer Electronic Corp メモリ制御装置及びメモリ制御方法
US20130262942A1 (en) * 2012-03-27 2013-10-03 Yung-Chiang Chu Flash memory lifetime evaluation method

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102449613A (zh) * 2009-06-03 2012-05-09 美光科技公司 固态装置中的面向对象的存储器

Also Published As

Publication number Publication date
JP2014059946A (ja) 2014-04-03
US20140082459A1 (en) 2014-03-20
JP6452278B2 (ja) 2019-01-16
US9329948B2 (en) 2016-05-03
CN103678146A (zh) 2014-03-26
KR20140037768A (ko) 2014-03-27
EP2709110A1 (en) 2014-03-19
TW201415468A (zh) 2014-04-16

Similar Documents

Publication Publication Date Title
CN103678146B (zh) 为了非易失性存储器中的耗损均衡测量单元损伤
US11449252B2 (en) Method of writing and reading data in an NVM using Lpage identification headers
KR102155191B1 (ko) 비휘발성 메모리에 대한 기록들의 관리 및 그 기록들의 영역 선택
CN103902403B (zh) 经由冗余阵列的非易失性存储器编程故障恢复
CN103348330B (zh) 采用独立硅元件的动态较高级冗余模式管理
TWI612524B (zh) 控制一記憶體裝置之方法、用於耦合至一外部非揮發性記憶體之裝置及非暫時性電腦可讀媒體
CN103329103B (zh) 使用用于基于闪存的数据存储的自适应ecc技术的方法和设备
CN103415844B (zh) 用于高级冗余信息计算的系统和方法
TWI591644B (zh) 以保持漂移歷史為基礎之非揮發性記憶體讀取臨限最佳化
US9201785B2 (en) Data writing method, memory controller and memory storage apparatus
CN102985975B (zh) 闪存的低密度奇偶校验擦除译码
CN102985975A (zh) 闪存的低密度奇偶校验擦除译码

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20160226

Address after: California, USA

Applicant after: Seagate Technology LLC

Address before: California, USA

Applicant before: LSI Corp.

GR01 Patent grant
GR01 Patent grant