CN110658982A - 针对ssd的选择性后台数据刷新 - Google Patents

针对ssd的选择性后台数据刷新 Download PDF

Info

Publication number
CN110658982A
CN110658982A CN201910451090.9A CN201910451090A CN110658982A CN 110658982 A CN110658982 A CN 110658982A CN 201910451090 A CN201910451090 A CN 201910451090A CN 110658982 A CN110658982 A CN 110658982A
Authority
CN
China
Prior art keywords
host
persistent storage
storage medium
flags
information
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.)
Pending
Application number
CN201910451090.9A
Other languages
English (en)
Inventor
M·梅尼耶
K·卡尔克拉
P·维索茨基
J·休斯
B·瓦特
S·特丽卡
A·拉玛林嘉姆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN110658982A publication Critical patent/CN110658982A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays

Landscapes

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

Abstract

本文公开了针对SSD的选择性后台数据刷新。半导体装置的实施例可以包括这样的技术:至少部分地基于主机提供的信息来选择性地确定用于后台刷新的数据集,并且作为后台操作在持久存储介质上刷新所确定的数据集。公开并要求保护其他实施例。

Description

针对SSD的选择性后台数据刷新
技术领域
实施例总体上涉及存储系统。更具体地,实施例涉及针对固态驱动器(SSD)的选择性后台数据刷新。
背景技术
诸如SSD之类的存储设备可以包括非易失性存储器(NVM)介质。对于一些NVM介质,与读取操作相比,写入操作可能花费更多时间和/或消耗更多能量。一些NVM介质可能具有可以对每个位置执行的有限数量的写入操作。可以利用诸如发布于2017年5月的NVMEXPRESS(NVMe),修订版1.3(nvmexpress.org)之类的协议来支持对一些SSD设备的内容的访问。
附图说明
通过阅读以下说明书和所附权利要求,并且通过参考以下附图,实施例的各种优点将对于本领域技术人员变得显而易见,其中:
图1是根据实施例的电子存储系统的示例的框图;
图2是根据实施例的半导体装置的示例的框图;
图3A至图3B是根据实施例的控制存储的方法的示例的流程图;
图4是根据实施例的SSD的示例的框图;以及
图5是根据实施例的电子处理系统的示例的框图。
具体实施方式
本文描述的各种实施例可以包括存储器组件和/或与存储器组件的接口。这样的存储器组件可以包括易失性存储器和/或非易失性存储器。非易失性存储器可以是不要求电力来维持由介质存储的数据的状态的存储介质。在一个实施例中,存储器设备可以包括区块可寻址存储器设备,例如,基于NAND或NOR技术的那些设备。存储器设备还可以包括下一代非易失性设备,例如,三维(3D)交叉点存储器设备,或其他字节可寻址的就地写入非易失性存储器设备。在一个实施例中,存储器设备可以是或可以包括使用硫属化合物玻璃的存储器设备、多阈值级别NAND闪速存储器、NOR闪速存储器、单级或多级相变存储器(PCM)、电阻式存储器、纳米线存储器、铁电晶体管随机存取存储器(FeTRAM)、反铁电存储器、结合忆阻器技术的磁阻随机存取存储器(MRAM)存储器、电阻式存储器(包括金属氧化物基、氧空位基和导电桥随机存取存储器(CB-RAM))、或自旋移矩(STT)-MRAM、基于自旋电子磁结存储器的设备、基于磁性隧道结(MTJ)的设备、基于DW(畴壁)和SOT(自旋轨道转移)的设备、基于晶闸管的存储器设备,或上述设备中的任何设备的组合,或其他存储器。存储器设备可以指代管芯本身和/或指代封装的存储器产品。在特定实施例中,具有非易失性存储器的存储器组件可以符合由联合电子器件工程委员会(JEDEC)颁布的一个或多个标准,例如,JESD218、JESD219、JESD220-1、JESD223B、JESD223-1或其他合适的标准(本文引用的JEDEC标准可以在jedec.org处获得)。
易失性存储器可以是要求电力来维持由介质存储的数据的状态的存储介质。易失性存储器的非限制性示例可以包括各种类型的RAM,例如,动态随机存取存储器(DRAM)或静态随机存取存储器(SRAM)。可以在存储器模块中使用的一种特定类型的DRAM是同步动态随机存取存储器(SDRAM)。在特定实施例中,存储器组件的DRAM可以符合由JEDEC颁布的标准,例如,用于DDR SDRAM的JESD79F、用于DDR2 SDRAM的JESD79-2F、用于DDR3 SDRAM的JESD79-3F、用于DDR4 SDRAM的JESD79-4A、用于低功率DDR(LPDDR)的JESD209、用于LPDDR2的JESD209-2、用于LPDDR3的JESD209-3以及用于LPDDR4的JESD209-4(这些标准可以在www.jedec.org处获得)。此类标准(以及类似标准)可以称为基于DDR的标准,并且实现此类标准的存储设备的通信接口可以称为基于DDR的接口。
现在转到图1,电子存储系统10的实施例可以包括持久存储介质11以及通信地耦合到持久存储介质11的控制器12。控制器12可以包括逻辑13,该逻辑13用于至少部分地基于主机提供的信息来选择性地确定用于后台刷新的数据集,并且作为后台操作在持久存储介质11上刷新所确定的数据集。在不限于操作理论的情况下,一些实施例可以有利地减少双重清理(例如,如下面更详细地解释的)。例如,主机提供的信息可以包括与由主机清理的(例如,先前清理过的或将要清理的)在持久存储介质11上的数据相关的信息。在一些实施例中,逻辑13可以被配置为基于与主机发起的写入操作相关联的信息(例如,基于与写入操作相关联的流信息、队列信息等)来标识主机提供的信息。在一些实施例中,逻辑13还可以被配置为基于主机提供的信息对一个或多个标志进行置位,其中一个或多个标志分别与持久存储介质11中的一个或多个区域相关联,并且基于对应的一个或多个标志的相应状态来禁用针对持久存储介质11中的一个或多个区域的后台数据刷新(BDR)。例如,一个或多个标志中的每个标志可以对应于持久存储介质11中的位,并且一个或多个区域中的每个区域可以对应于持久存储介质11中的回收单元。在本文实施例中的任一实施例中,持久存储介质11可以包括SSD。在一些实施例中,逻辑13可以位于包括控制器12在内的各种组件中,或者可以与包括控制器12在内的各种组件共置一处(例如,在同一管芯上)。
上述持久存储介质11、控制器12、逻辑13以及其他系统组件中的每一个的实施例可以以硬件、软件或其任何合适的组合来实现。例如,硬件实现方式可以包括诸如可编程逻辑阵列(PLA)、现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD)之类的可配置逻辑,或使用诸如专用集成电路(ASIC)技术、互补金属氧化物半导体(CMOS)技术或晶体管-晶体管逻辑(TTL)技术之类的电路技术的固定功能逻辑硬件,或其任何组合。控制器12的实施例可以包括通用控制器、专用控制器(例如,存储器控制器、存储装置控制器、NVM控制器等)、微控制器、处理器、中央处理器单元(CPU)、微处理器等。
可替代地或另外地,这些组件的全部或部分可以在一个或多个模块中实现为存储在诸如随机存取存储器(RAM)、只读存储器(ROM)、可编程ROM(PROM)、固件、闪速存储器等之类的机器或计算机可读存储介质中以由处理器或计算设备执行的一组逻辑指令。例如,用于执行组件的操作的计算机程序代码可以以一种或多种操作系统(OS)适用的/适当的编程语言的任何组合来编写,包括诸如PYTHON、PERL、JAVA、SMALLTALK、C++、C#等之类的面向对象的编程语言,以及诸如“C”编程语言或类似的编程语言之类的常规过程编程语言。例如,持久存储介质11或其他系统存储器可以存储一组指令,该组指令当由控制器12执行时,使得系统10实现系统10的一个或多个组件、特征或方面(例如,逻辑13,其基于主机提供的信息来选择性地确定用于后台刷新的数据集,作为后台操作刷新所确定的数据集等)。
现在转到图2,半导体装置20的实施例可以包括一个或多个衬底21,以及耦合到一个或多个衬底21的逻辑22,其中逻辑22至少部分地以可配置逻辑和固定功能硬件逻辑中的一个或多个来实现。耦合到一个或多个衬底21的逻辑22可以被配置为至少部分地基于主机提供的信息来选择性地确定用于后台刷新的数据集,并且作为后台操作在持久存储介质上刷新所确定的数据集。例如,主机提供的信息可以包括与由主机清理的在持久存储介质上的数据相关的信息。在一些实施例中,逻辑22可以被配置为基于与主机发起的写入操作相关联的信息(例如,基于与写入操作相关联的流信息、队列信息等)来标识主机提供的信息。在一些实施例中,逻辑22还可以被配置为基于主机提供的信息对一个或多个标志进行置位,其中一个或多个标志分别与持久存储介质中的一个或多个区域相关联,并且基于对应的一个或多个标志的相应状态来禁用针对持久存储介质中的一个或多个区域的BDR。例如,一个或多个标志中的每个标志可以对应于持久存储介质中的位,并且一个或多个区域中的每个区域可以对应于持久存储介质中的回收单元。在本文实施例中的任一实施例中,持久存储介质可以包括SSD。在一些实施例中,耦合到一个或多个衬底21的逻辑22可以包括位于一个或多个衬底21内的晶体管沟道区。
逻辑22和装置20的其他组件的实施例可以以硬件、软件或其任何组合实现,包括至少一部分以硬件实现。例如,硬件实现方式可以包括诸如PLA、FPGA、CPLD之类的可配置逻辑,或使用诸如ASIC技术、CMOS技术或TTL技术之类的电路技术的固定功能逻辑硬件,或其任何组合。另外地,这些组件的部分可以在一个或多个模块中实现为存储在诸如RAM、ROM、PROM、固件、闪速存储器等之类的机器或计算机可读存储介质中以由处理器或计算设备执行的一组逻辑指令。例如,用于执行组件的操作的计算机程序代码可以以一种或多种OS适用的/适当的编程语言的任何组合来编写,包括诸如PYTHON、PERL、JAVA、SMALLTALK、C++、C#等之类的面向对象的编程语言,以及诸如“C”编程语言或类似的编程语言之类的常规过程编程语言。
装置20可以实现方法30(图3A至图3B)的一个或多个方面,或者本文讨论的实施例中的任一实施例。在一些实施例中,示出的装置20可以包括一个或多个衬底21(例如,硅、蓝宝石、砷化镓)以及耦合到(多个)衬底21的逻辑22(例如,晶体管阵列以及其他集成电路/IC组件)。逻辑22可以至少部分地以可配置逻辑或固定功能逻辑硬件实现。在一个示例中,逻辑22可以包括位于(例如,嵌入)(多个)衬底21内的晶体管沟道区。因此,在逻辑22与(多个)衬底21之间的接口可能不是突变结。逻辑22还可以被认为包括在(多个)衬底21的初始晶片上生长的外延层。
现在转到图3A至图3B,控制存储的方法30的实施例可以包括:在框31处至少部分地基于主机提供的信息来选择性地确定用于后台刷新的数据集,并且在框32处作为后台操作在持久存储介质上刷新所确定的数据集。例如,在框33处,主机提供的信息可以包括与由主机清理的在持久存储介质上的数据相关的信息。方法30的一些实施例可以包括:在框34处基于与主机发起的写入操作相关联的信息(例如,基于与写入操作相关联的流信息、队列信息等)来标识主机提供的信息。方法30的一些实施例还可以包括:在框35处基于主机提供的信息对一个或多个标志进行置位,其中一个或多个标志分别与持久存储介质中的一个或多个区域相关联,并且在框36处基于对应的一个或多个标志的相应状态来禁用针对持久存储介质中的一个或多个区域的BDR。例如,在框37处,一个或多个标志中的每个标志可以对应于持久存储介质中的位,并且在框38处,一个或多个区域中的每个区域可以对应于持久存储介质中的回收单元。在本文实施例中的任一实施例中,在框39处持久存储介质可以包括SSD。
方法30的实施例可以例如以系统、装置、计算机、设备等实现,例如,本文描述的那些。更具体地,方法30的硬件实现方式可以包括诸如PLA、FPGA、CPLD之类的可配置逻辑,或者以使用诸如ASIC技术、CMOS技术或TTL技术之类的电路技术的固定功能逻辑硬件的形式,或其任何组合。可替代地或另外地,方法30可以在一个或多个模块中实现为存储在诸如RAM、ROM、PROM、固件、闪速存储器等之类的机器或计算机可读存储介质中以由处理器或计算设备执行的一组逻辑指令。例如,用于执行组件的操作的计算机程序代码可以以一种或多种OS适用的/适当的编程语言的任何组合来编写,包括诸如PYTHON、PERL、JAVA、SMALLTALK、C++、C#等之类的面向对象的编程语言,以及诸如“C”编程语言或类似的编程语言之类的常规过程编程语言。
例如,方法30可以在计算机可读介质上实现,如结合下面的示例20至示例25描述的。方法30的实施例或部分可以以固件、应用(例如,通过应用编程接口(API))或者在操作系统(OS)上运行的驱动软件实现。另外地,逻辑指令可以包括汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、状态设置数据、集成电路的配置数据、使电子电路和/或对硬件(例如,主机处理器、中央处理单元/CPU、微控制器等)而言在本地的其他结构组件个性化的状态信息。
现在转到图4,SSD 40的实施例可以包括NVM控制器42和NVM介质44(例如,基于NAND的介质、PCM介质、INTEL 3D XPOINT存储器等)。例如,NVM控制器42可以包括使得SSD40与NVMe兼容的逻辑和技术。NVM控制器42还可以被配置为至少部分地基于主机提供的信息来选择性地确定用于后台刷新的数据集,并且作为后台操作在NVM介质44上刷新所确定的数据集。例如,主机提供的信息可以包括与由主机清理的在NVM介质44上的数据相关的信息。在一些实施例中,NVM控制器42可以被配置为基于与主机发起的写入操作相关联的信息(例如,基于与写入操作相关联的流标识符(ID)、队列ID等)来标识主机提供的信息。在一些实施例中,NVM控制器42还可以被配置为基于主机提供的信息对一个或多个标志进行置位,其中一个或多个标志分别与NVM介质44中的一个或多个区域相关联,并且基于对应的一个或多个标志的相应状态来禁用针对NVM介质44中的一个或多个区域的BDR。例如,一个或多个标志中的每个标志可以对应于NVM介质44中的位,并且一个或多个区域中的每个区域可以对应于NVM介质44中的回收单元。
NVM控制器42、NVM介质44和SSD 40的其他组件的实施例可以以硬件、软件或其任何组合来实现,包括至少部分以硬件实现。例如,硬件实现方式可以包括诸如PLA、FPGA、CPLD之类的可配置逻辑,或使用诸如ASIC技术、CMOS技术或TTL技术之类的电路技术的固定功能逻辑硬件,或其任何组合。另外地,这些组件的部分可以在一个或多个模块中实现为存储在诸如RAM、ROM、PROM、固件、闪速存储器等之类的机器或计算机可读存储介质中以由处理器或计算设备执行的一组逻辑指令。例如,用于执行组件的操作的计算机程序代码可以以一种或多种OS适用的/适当的编程语言的任何组合来编写,包括诸如PYTHON、PERL、JAVA、SMALLTALK、C++、C#等之类的面向对象的编程语言,以及诸如“C”编程语言或类似的编程语言之类的常规过程编程语言。
一些实施例可以有利地为SSD提供选择性BDR。在不限于操作理论或特定实现方式的情况下,当数据存储在一些存储系统中时,可以计算完整性检查(例如,校验和或摘要)并将其连同数据一起存储,以检测任何未来的数据损坏。磁盘清理可以指代通过读回数据、重新计算校验和/摘要并且将结果与原始数据进行比较来检查数据的完整性的过程。常见的完整性检查可以包括CRC-32C校验和以及MD5散列。当在对象存储(例如,CEPH、HDFS、SWIFT等)的上下文中使用时,某些其他的SSD可能遭受对用户数据的双重清理。例如,用户数据可能由SSD“清理”一次(例如,还称为后台数据刷新,或BDR)并且还由主机软件(SW)清理第二次(例如,也称为磁盘清理)。
双重清理可能对用户数据造成两倍多的清理相关的业务,导致更多的读取干扰、数据随机化、额外写入以及对前台输入/输出(I/O)的干扰,影响性能、耐用性(例如,额外写入放大)以及服务质量(QoS)。例如,SSD可以执行BDR以便保护静态数据,而主机SW可以执行清理,例如,以防止存储栈(硬件(HW)和SW两者)中的故障。即使SSD可以保证SSD内的数据不会被损坏,但是主机SW仍然可能在数据到达SSD之前执行清理以检测栈中可能发生的错误(例如,OS、设备驱动程序中的故障等)。一些对象存储系统可以旨在降低错误率,甚至低于单个SSD的错误率。例如,某种对象存储系统可能采取额外动作来主动地查找并解决潜在的问题。在许多情况下,主机SW可能能够从丢失的用户数据进行恢复(例如,经由擦除编码的副本和复制的副本),并且SSD级别的恢复可能是冗余且不必要的。有利地,一些实施例可以减少或消除这种双重清理并且改进存储系统性能中的一个或多个性能(例如,速度、功率使用等)、耐用性和/或QoS。
一些实施例可以为SSD设备提供主机辅助的选择性刷新。在选择性刷新的情况下,主机SW可以指示哪些页已经由主机SW清理。例如,主机SW可以提供向SSD指示标识的页不需要由SSD刷新的信息或提示(例如,作为建议而不是指令)。可以经由在SSD中的正常刷新过程(例如,BDR)来刷新未由主机SW清理的页(例如,文件系统元数据等)。为了确保端到端数据完整性,仍然可以利用主机SW级别的清理,并且可能不会仅由SSD刷新替换主机SW级别的清理(例如,SSD刷新可以检测SSD级别的损坏而不是在网络或SW栈中的任何损坏)。有利地,一些实施例可以仅通过主机SW清理用户数据一次,并且用户数据刷新(例如,BDR)可以在SSD中禁用。主机SW仍然可以充分地保护系统免于数据故障,以便于实现期望的不可纠正比特错误率(UBER)。选择性BDR的一些实施例可以有利地将清理相关的业务减少多达50%(例如,在数据已经由主机SW清理的情况下),导致更少的读取干扰、更少的数据随机化、更少的写入以及对前台I/O更少的干扰,并且可以显著地改进性能、耐用性和/或QoS。
现在转到图5,电子处理系统50的实施例可以包括主机设备51,其中主机SW 52通信地耦合到利用如本文描述的选择性BDR技术的SSD 54。例如,SSD 54可以类似于存储系统10(图1),可以实现装置20(图2)的特征,可以实现方法30(图3A至图3B)中的一个或多个方面,和/或可以类似于SSD 40(图4)。例如,可以利用合适的硬件和SSD固件(FW)在SSD控制器55中实现选择性BDR技术的方面。
SSD FW可以刷新单独页并且可以跨管芯移动(例如,重新定位)页(例如,以执行BDR)。当页遇到太多读取(例如,读取干扰)或太多读取重试时,可以由SSD FW安排重新定位。可以周期性地(例如,每周一次)刷新(例如,读取)整个驱动器,并且可以根据需要重新定位坏页。对于SSD 54的实施例,当主机SW 52发出写入时,主机设备51可以发送提示,该提示指定写入是否包含应该经由BDR刷新的数据(例如,已经由主机SW 52保护的用户数据可能不要求BDR)。例如,主机设备51可以使用利用某些写入操作或其他机制传递的流、I/O队列、数据集管理(DSM)提示来向SSD 54提供信息。例如,M个流可以用于不会设备刷新数据,并且N个流可以用于待设备刷新数据。当主机SW 52执行其清理时,清理可以对于SSD 54仅表现为按需读取。如果遇到了任何坏页,则可以在SSD 54中标记坏页以用于重新定位。如果SSD 54不执行按需重新定位,则主机SW 52可以指示重新定位请求是清理请求并且应该针对已标识的页安排重新定位。
在一些实施例中,SSD FW可以针对来自主机SW 52的写入请求中的每个页管理持久存储在SSD 54中的信息的额外位。额外位可以指示相关联的页是否包含要由SSD 54刷新的数据。当SSD FW稍后执行其BDR时,SSD FW可以针对每个页对该信息位进行查阅。在一些实施例中,可以对页的集合执行BDR,该页的集合可以称为回收单元。一些实施例可以每个回收单元存储单个位(例如,而不是每个页存储一个位)。单个位可以称为BDR提示标志(例如,因为SSD FW仍然可以基于除BDR提示标志之外的因素/考虑来决定对该单元执行BDR)。例如,如果BDR提示标志被置位为1,则SSD FW可以对回收单元执行定期的BDR。否则,针对相关联的回收单元的BDR可能被禁用。在一些实施例中,可以使用相同的BDR策略(基于BDR提示标志开启或关闭)来处理回收单元内的所有页。一些实施例可以被配置为用于将管理API暴露给上层的基于主机软件的闪存转换层(FTL)实现方式。例如,一些实施例可以允许SW控制/辅助针对每个FTL间接单元的BDR。
参考下面的伪代码可以更好地理解一些实施例,该伪代码可以通过检查所存储的BDR_提示(BDR_hint)标志/位来确定是否应该刷新回收单元:
Figure BDA0002075166720000091
作为主机SW用例的说明性示例,主机SW(例如,CEPH和SWIFT对象存储装置)可以每周清理(例如,读取)整个SSD一次,并且仅对用户数据计算CRC/MD5摘要。主机SW(例如,文件系统代码)可以以4KB页的倍数读取。这些页中的大约5%可能包含文件系统元数据(例如,作为说明性示例),并且这些页中的95%包含用户数据(例如,复制的或擦除编码的)。根据一些实施例,仅元数据(例如,其未被集群复制或擦除编码)可以在SSD中得到BDR保护。存储在SSD中的页的其余95%可能禁用BDR,并且相反,保护可能仅来自以复制或擦除编码形式的集群级别SW。
因为用户数据可能已经由集群软件保护(例如,经由复制或擦除编码),所以用户数据可以在SSD中经受更高的UBER,然而元数据(例如,其未由主机SW保护)可能要求较低的UBER或从较低的UBER中获益。因此,对于大多数应用,主机SW应该执行定期清理操作,以将其用户数据保持在可允许的端到端UBER内。如果主机SW无法执行其定期清理(例如,由于某种原因主机SW清理过程被禁用),则用户数据的读取性能可能受到影响,或者用户数据可能在SSD中失效并且直到遇到按需读取才被检测到,在这种情况下,数据必须即时重建。在一些实施例中,SSD FW可以忽略针对在某个阈值时间段、访问次数等之后尚未由主机清理的页/回收单元的BDR提示(例如,或者SSD FW可以基于定时器、计数器等中的一个或多个来周期性地置位BDR提示以启用针对所有页/回收单元的BDR)。
在一些实施例中,禁用BDR(例如,BDR可能负责在SSD中重新定位故障页)将不会导致在SSD中的过多故障,因为坏页仍然在SSD内重新定位。重新定位仅仅由主机SW读取(例如,清理)触发,而不是由SSD中的定期BDR(例如,基于定时器的)过程触发。具有选择性BDR技术的SSD的实施例仍将能够检测页何时故障(例如,由于对该页的主机SW清理/读取遇到太多次重试),并且如果需要的话SSD将重新定位页。主机SW可以从禁用BDR的区域维持用于预期UBER的变量/参数,使得主机可以相应地设置其清理频率(例如,以便于实现期望的UBER)。可以使用任何合适的技术来发现预期的UBER(例如,规范表可以列出UBER,对驱动器的管理命令可以返回UBER等)。在一些实施例中,主机SW可以为驱动器的区域指定UBER的期望水平,并且SSD可以相应地调整其BDR频率。例如,在一些实施例中,BDR提示标志而不是位(例如,其中对于区域而言BDR仅为开启或关闭)可以支持可以对应于BDR的多于仅仅两个级别的更多值。
附加说明和示例:
示例1可以包括一种电子存储系统,其包括持久存储介质以及通信地耦合到持久存储介质的控制器,该控制器包括用于以下操作的逻辑:至少部分地基于主机提供的信息来选择性地确定用于后台刷新的数据集,以及作为后台操作在持久存储介质上刷新所确定的数据集。
示例2可以包括示例1的系统,其中主机提供的信息包括与由主机清理的在持久存储介质上的数据相关的信息。
示例3可以包括示例2的系统,其中逻辑还用于基于与主机发起的写入操作相关联的信息来标识主机提供的信息。
示例4可以包括示例2的系统,其中逻辑还用于:基于主机提供的信息对一个或多个标志进行置位,其中一个或多个标志分别与持久存储介质中的一个或多个区域相关联;以及基于对应的一个或多个标志的相应状态来禁用针对持久存储介质中的一个或多个区域的后台数据刷新。
示例5可以包括示例4的系统,其中一个或多个标志中的每个标志对应于持久存储介质中的位,并且其中一个或多个区域中的每个区域对应于持久存储介质中的回收单元。
示例6可以包括示例1至5中任一项的系统,其中持久存储介质包括固态驱动器。
示例7可以包括一种半导体装置,其包括一个或多个衬底以及耦合到一个或多个衬底的逻辑,其中该逻辑至少部分地以可配置逻辑和固定功能硬件逻辑中的一个或多个实现,耦合到一个或多个衬底的逻辑用于:至少部分地基于主机提供的信息来选择性地确定用于后台刷新的数据集,并且作为后台操作在持久存储介质上刷新所确定的数据集。
示例8可以包括示例7的装置,其中主机提供的信息包括与由主机清理的在持久存储介质上的数据相关的信息。
示例9可以包括示例8的装置,其中逻辑还用于基于与主机发起的写入操作相关联的信息来标识主机提供的信息。
示例10可以包括示例8的装置,其中逻辑还用于:基于主机提供的信息对一个或多个标志进行置位,其中一个或多个标志分别与持久存储介质中的一个或多个区域相关联;以及基于对应的一个或多个标志的相应状态来禁用针对持久存储介质中的一个或多个区域的后台数据刷新。
示例11可以包括示例10的装置,其中一个或多个标志中的每个标志对应于持久存储介质中的位,并且其中一个或多个区域中的每个区域对应于持久存储介质中的回收单元。
示例12可以包括示例7至11中任一项的装置,其中持久存储介质包括固态驱动器。
示例13可以包括示例7至12中任一项的装置,其中耦合到一个或多个衬底的逻辑包括位于一个或多个衬底内的晶体管沟道区。
示例14可以包括一种控制存储的方法,该方法包括:至少部分地基于主机提供的信息来选择性地确定用于后台刷新的数据集,以及作为后台操作在持久存储介质上刷新所确定的数据集。
示例15可以包括示例14的方法,其中主机提供的信息包括与由主机清理的在持久存储介质上的数据相关的信息。
示例16可以包括示例15的方法,还包括基于与主机发起的写入操作相关联的信息来标识主机提供的信息。
示例17可以包括示例15的方法,还包括:基于主机提供的信息对一个或多个标志进行置位,其中一个或多个标志分别与持久存储介质中的一个或多个区域相关联;以及基于对应的一个或多个标志的相应状态来禁用针对持久存储介质中的一个或多个区域的后台数据刷新。
示例18可以包括示例17的方法,其中一个或多个标志中的每个标志对应于持久存储介质中的位,并且其中一个或多个区域中的每个区域对应于持久存储介质中的回收单元。
示例19可以包括示例14至18中任一项的方法,其中持久存储介质包括固态驱动器。
示例20可以包括至少一种计算机可读存储介质,该计算机可读存储介质包括指令集,该指令集当由计算设备执行时,使得计算设备进行以下操作:至少部分地基于主机提供的信息来选择性地确定用于后台刷新的数据集,以及作为后台操作在持久存储介质上刷新所确定的数据集。
示例21可以包括示例20的至少一种计算机可读存储介质,其中主机提供的信息包括与由主机清理的在持久存储介质上的数据相关的信息。
示例22可以包括示例21的至少一种计算机可读存储介质,该计算机可读存储介质包括另外的指令集,该指令集当由计算设备执行时,使得计算设备基于与主机发起的写入操作相关联的信息来标识主机提供的信息。
示例23可以包括示例21的至少一种计算机可读存储介质,该计算机可读存储介质包括另外的指令集,该指令集当由计算设备执行时,使得计算设备进行以下操作:基于主机提供的信息对一个或多个标志进行置位,其中一个或多个标志分别与持久存储介质中的一个或多个区域相关联;以及基于对应的一个或多个标志的相应状态来禁用针对持久存储介质中的一个或多个区域的后台数据刷新。
示例24可以包括示例23的至少一种计算机可读存储介质,其中一个或多个标志中的每个标志对应于持久存储介质中的位,并且其中一个或多个区域中的每个区域对应于持久存储介质中的回收单元。
示例25可以包括示例20至24中任一项的至少一种计算机可读存储介质,其中持久存储介质包括固态驱动器。
示例26可以包括一种存储控制器装置,其包括:用于至少部分地基于主机提供的信息来选择性地确定用于后台刷新的数据集的模块,以及用于作为后台操作在持久存储介质上刷新所确定的数据集的模块。
示例27可以包括示例26的装置,其中主机提供的信息包括与由主机清理的在持久存储介质上的数据相关的信息。
示例28可以包括示例27的装置,还包括用于基于与主机发起的写入操作相关联的信息来标识主机提供的信息的模块。
示例29可以包括示例27的装置,还包括:用于基于主机提供的信息对一个或多个标志进行置位的模块,其中一个或多个标志分别与持久存储介质中的一个或多个区域相关联;以及用于基于对应的一个或多个标志的相应状态来禁用针对持久存储介质中的一个或多个区域的后台数据刷新的模块。
示例30可以包括示例29的装置,其中一个或多个标志中的每个标志对应于持久存储介质中的位,并且其中一个或多个区域中的每个区域对应于持久存储介质中的回收单元。
示例31可以包括示例26至30中任一项的装置,其中持久存储介质包括固态驱动器。
实施例适用于与所有类型的半导体集成电路(“IC”)芯片一起使用。这些IC芯片的示例包括但不限于处理器、控制器、芯片组组件、可编程逻辑阵列(PLA)、存储器芯片、网络芯片、片上系统(SoC)、SSD/NAND控制器ASIC等。此外,在附图中的一些图中,信号导线用线表示。一些线可能是不同的以指示更多的组成信号路径,一些线具有数字标记以指示若干组成信号路径,和/或一些线在一个或多个端部具有箭头以指示主要信息流方向。然而,这不应该以限制方式解释。而是,这种添加的细节可以结合一个或多个示例性实施例使用,以有助于更容易地理解电路。任何表示的信号线,无论是否具有附加信息,实际上可以包含可以在多个方向上行进的一个或多个信号,并且可以利用任何合适类型的信号方案来实现,例如,利用差分对、光纤线和/或单端线实现的数字或模拟线。
可能已经给出示例尺寸/模型/值/范围,但是实施例不限于此。随着制造技术(例如,光刻)随着时间的推移而成熟,预期可以制造更小尺寸的设备。另外地,为了说明和讨论的简洁,并且为了不模糊实施例的某些方面,图中可能示出或可能不示出与IC芯片和其他组件的公知的电源/接地连接。另外,可以以框图形式示出布置以避免模糊实施例,并且还考虑到关于这种框图布置的实现方式的细节高度依赖于其中要实现实施例的平台的事实,即,这些细节应该很好地在本领域技术人员的知识范围内。在阐述具体细节(例如,电路)以便描述示例实施例的情况下,对于本领域技术人员来说显而易见的是,可以在没有这些具体细节或具有这些具体细节的变型的情况下实践实施例。因此,应将说明书认为是说明性的而非限制性的。
术语“耦合”可以在本文中用于指代讨论中的组件之间的任何类型的关系(直接的或间接的),并且可以应用于电气、机械、流体、光学、电磁、机电或其他连接。另外地,术语“第一”、“第二”等可以在本文中仅用于促进讨论,并且除非另有指示,否则不带有特定时间或时序意义。
如在本申请和权利要求书中使用的,由术语“……中的一个或多个”连接的项目列表可以表示所列术语的任何组合。例如,短语“A,B和C中的一个或多个”以及短语“A,B或C中的一个或多个”两者都可以表示A;B;C;A和B;A和C;B和C;或A,B和C。
本领域技术人员将从前述说明书中认识到,实施例的宽泛技术可以以各种形式实现。因此,虽然已经结合实施例的特定示例描述了实施例,但是实施例的真实范围不应限制于此,因为在研究附图、说明书和所附权利要求书之后,其他修改将对本领域技术人员变得显而易见。

Claims (25)

1.一种电子存储系统,包括:
持久存储介质;以及
通信地耦合到所述持久存储介质的控制器,所述控制器包括用于以下操作的逻辑:
至少部分地基于主机提供的信息来选择性地确定用于后台刷新的数据集,以及
作为后台操作在所述持久存储介质上刷新所确定的数据集。
2.根据权利要求1所述的系统,其中所述主机提供的信息包括与由主机刷新的在所述持久存储介质上的数据相关的信息。
3.根据权利要求2所述的系统,其中所述逻辑还用于:
基于与所述主机发起的写入操作相关联的信息来标识所述主机提供的信息。
4.根据权利要求2所述的系统,其中所述逻辑还用于:
基于所述主机提供的信息对一个或多个标志进行置位,其中所述一个或多个标志分别与所述持久存储介质中的一个或多个区域相关联;以及
基于对应的一个或多个标志的相应状态来禁用针对所述持久存储介质中的所述一个或多个区域的后台数据刷新。
5.根据权利要求4所述的系统,其中所述一个或多个标志中的每个标志对应于所述持久存储介质中的位,并且其中所述一个或多个区域中的每个区域对应于所述持久存储介质中的回收单元。
6.根据权利要求1至5中任一项所述的系统,其中所述持久存储介质包括固态驱动器。
7.一种半导体装置,包括:
一个或多个衬底;以及
耦合到所述一个或多个衬底的逻辑,其中所述逻辑至少部分地以可配置逻辑和固定功能硬件逻辑中的一个或多个来实现,所述逻辑耦合到所述一个或多个衬底以用于:
至少部分地基于主机提供的信息来选择性地确定用于后台刷新的数据集,以及
作为后台操作在持久存储介质上刷新所确定的数据集。
8.根据权利要求7所述的装置,其中所述主机提供的信息包括与由主机刷新的在所述持久存储介质上的数据相关的信息。
9.根据权利要求8所述的装置,其中所述逻辑还用于:
基于与所述主机发起的写入操作相关联的信息来标识所述主机提供的信息。
10.根据权利要求8所述的装置,其中所述逻辑还用于:
基于所述主机提供的信息对一个或多个标志进行置位,其中所述一个或多个标志分别与所述持久存储介质中的一个或多个区域相关联;以及
基于对应的一个或多个标志的相应状态来禁用针对所述持久存储介质中的所述一个或多个区域的后台数据刷新。
11.根据权利要求10所述的装置,其中所述一个或多个标志中的每个标志对应于所述持久存储介质中的位,并且其中所述一个或多个区域中的每个区域对应于所述持久存储介质中的回收单元。
12.根据权利要求7至11中任一项所述的装置,其中所述持久存储介质包括固态驱动器。
13.根据权利要求7至12中任一项所述的装置,其中耦合到所述一个或多个衬底的所述逻辑包括位于所述一个或多个衬底内的晶体管沟道区。
14.一种控制存储的方法,包括:
至少部分地基于主机提供的信息来选择性地确定用于后台刷新的数据集;以及
作为后台操作在持久存储介质上刷新所确定的数据集。
15.根据权利要求14所述的方法,其中所述主机提供的信息包括与由主机刷新的在所述持久存储介质上的数据相关的信息。
16.根据权利要求15所述的方法,还包括:
基于与所述主机发起的写入操作相关联的信息来标识所述主机提供的信息。
17.根据权利要求15所述的方法,还包括:
基于所述主机提供的信息对一个或多个标志进行置位,其中所述一个或多个标志分别与所述持久存储介质中的一个或多个区域相关联;以及
基于对应的一个或多个标志的相应状态来禁用针对所述持久存储介质中的所述一个或多个区域的后台数据刷新。
18.根据权利要求17所述的方法,其中所述一个或多个标志中的每个标志对应于所述持久存储介质中的位,并且其中所述一个或多个区域中的每个区域对应于所述持久存储介质中的回收单元。
19.根据权利要求14至18中任一项所述的方法,其中所述持久存储介质包括固态驱动器。
20.一种存储控制器装置,包括:
用于至少部分地基于主机提供的信息来选择性地确定用于后台刷新的数据集的模块;以及
用于作为后台操作在持久存储介质上刷新所确定的数据集的模块。
21.根据权利要求20所述的装置,其中所述主机提供的信息包括与由主机刷新的在所述持久存储介质上的数据相关的信息。
22.根据权利要求21所述的装置,还包括:
用于基于与所述主机发起的写入操作相关联的信息来标识所述主机提供的信息的模块。
23.根据权利要求21所述的装置,还包括:
用于基于所述主机提供的信息对一个或多个标志进行置位的模块,其中所述一个或多个标志分别与所述持久存储介质中的一个或多个区域相关联;以及
用于基于对应的一个或多个标志的相应状态来禁用针对所述持久存储介质中的所述一个或多个区域的后台数据刷新的模块。
24.根据权利要求23所述的装置,其中所述一个或多个标志中的每个标志对应于所述持久存储介质中的位,并且其中所述一个或多个区域中的每个区域对应于所述持久存储介质中的回收单元。
25.根据权利要求20至24中任一项所述的装置,其中所述持久存储介质包括固态驱动器。
CN201910451090.9A 2018-06-28 2019-05-28 针对ssd的选择性后台数据刷新 Pending CN110658982A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/021,722 2018-06-28
US16/021,722 US11137916B2 (en) 2018-06-28 2018-06-28 Selective background data refresh for SSDs

Publications (1)

Publication Number Publication Date
CN110658982A true CN110658982A (zh) 2020-01-07

Family

ID=65229451

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910451090.9A Pending CN110658982A (zh) 2018-06-28 2019-05-28 针对ssd的选择性后台数据刷新

Country Status (3)

Country Link
US (1) US11137916B2 (zh)
CN (1) CN110658982A (zh)
DE (1) DE102019112751A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11099925B2 (en) * 2018-07-10 2021-08-24 EMC IP Holding Company LLC Datacenter preemptive measures for improving protection using IoT sensors
US11106528B2 (en) 2018-10-10 2021-08-31 EMC IP Holding Company LLC Datacenter IoT-triggered preemptive measures using machine learning
US11334253B2 (en) 2018-12-07 2022-05-17 Intel Corporation Storage system that provides protection levels at stored data item granularity
CN112148377B (zh) * 2020-09-28 2023-02-10 深圳忆联信息系统有限公司 EFI Shell环境下防止SSD异常掉电的方法和装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8046551B1 (en) * 2008-08-14 2011-10-25 Emc Corporation Techniques for processing I/O requests
US8843808B2 (en) * 2011-06-30 2014-09-23 Avago Technologies General Ip (Singapore) Pte. Ltd. System and method to flag a source of data corruption in a storage subsystem using persistent source identifier bits
US8750042B2 (en) * 2011-07-28 2014-06-10 Sandisk Technologies Inc. Combined simultaneous sensing of multiple wordlines in a post-write read (PWR) and detection of NAND failures
US9053808B2 (en) * 2012-06-21 2015-06-09 Sandisk Technologies Inc. Flash memory with targeted read scrub algorithm

Also Published As

Publication number Publication date
DE102019112751A1 (de) 2020-01-02
US20190042114A1 (en) 2019-02-07
US11137916B2 (en) 2021-10-05

Similar Documents

Publication Publication Date Title
CN110658982A (zh) 针对ssd的选择性后台数据刷新
US9619174B2 (en) Write mechanism for storage class memory
TWI424319B (zh) 用於操作一固態驅動器之方法及固態記憶體裝置
KR20170121798A (ko) 반도체 메모리 장치 및 이의 동작 방법
US20190056886A1 (en) Host managed solid state drivecaching using dynamic write acceleration
US10658056B2 (en) Internal copy to handle NAND program fail
US11837314B2 (en) Undo and redo of soft post package repair
US10482010B2 (en) Persistent host memory buffer
US9652415B2 (en) Atomic non-volatile memory data transfer
US20210272636A1 (en) Write operations to mitigate write disturb
US11625167B2 (en) Dynamic memory deduplication to increase effective memory capacity
US20190179554A1 (en) Raid aware drive firmware update
US10146688B2 (en) Safe write-back cache replicating only dirty data
US10776200B2 (en) XOR parity management on a physically addressable solid state drive
CN115966242A (zh) 用于存储器系统的参数表保护
CN117957519A (zh) 管理存储器子系统中的存储器单元的写入干扰
CN115373909A (zh) 存储器系统中的故障管理技术
US11281277B2 (en) Power management for partial cache line information storage between memories
US10879938B2 (en) Erasure coding to mitigate media defects for distributed die ECC
CN114564145A (zh) 存储器系统及其操作方法
JP2010026950A (ja) 記憶装置
US20210141703A1 (en) Persistent data structure to track and manage ssd defects
US20240054037A1 (en) Common rain buffer for multiple cursors
EP4060501A1 (en) Redundant array management techniques
US20240134567A1 (en) Command timer interrupt

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