CN110045915A - 使用存储装置中的***时间戳的后台数据刷新 - Google Patents

使用存储装置中的***时间戳的后台数据刷新 Download PDF

Info

Publication number
CN110045915A
CN110045915A CN201811352939.9A CN201811352939A CN110045915A CN 110045915 A CN110045915 A CN 110045915A CN 201811352939 A CN201811352939 A CN 201811352939A CN 110045915 A CN110045915 A CN 110045915A
Authority
CN
China
Prior art keywords
ssd
data
timestamp
host
storage device
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
CN201811352939.9A
Other languages
English (en)
Inventor
S.纳塔拉詹
武宁
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 CN110045915A publication Critical patent/CN110045915A/zh
Pending legal-status Critical Current

Links

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/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/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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/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/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

描述了使用来自主机的时间戳来执行存储装置的后台刷新的技术。在一个示例中,方法涉及从主机接收时间戳,将时间戳存储在存储装置中,以及基于相对于指示数据被写到一个或多个块的时间的第二时间戳的时间戳来确定存储在存储装置的一个或多个块中的数据的保留时间。响应于确定保留时间超过阈值,存储装置将数据移动到存储装置的一个或多个其它块,这可以包括将来自主机的活动与刷新写交织。

Description

使用存储装置中的***时间戳的后台数据刷新
技术领域
本描述一般涉及诸如固态驱动器的存储装置,并且更具体的描述涉及使用存储装置的***时间戳的后台数据刷新的技术。
背景技术
存在跨移动、客户端和企业段的***使用固态驱动器(SSD)以用于数据存储的趋势。固态驱动器(诸如NAND SSD)包括非易失性存储设备。非易失性存储设备指即使到装置的功率被中断其状态也是确定的存储装置。然而,即使非易失性存储设备具有有限的数据保留能力,并且可要求刷新存储在非易失性存储设备中的数据。刷新数据的失败可引起存储在非易失性存储设备上的数据的丢失。
附图说明
以下描述包括对具有作为本发明实施例的实现的示例给出的说明的附图的讨论。附图应该作为示例而不是作为限制来理解。如本文所使用的,对一个或多个“实施例”或“示例”的参考要被理解为描述包括在本发明的至少一个实现中的具体特征、结构和/或特性。因此,本文出现的诸如“在一个实施例中”或“在一个示例中”的短语描述了本发明的各种实施例和实现,并且不一定全部指相同的实施例。然而,它们也不一定是相互排斥的。
图1示出根据一个示例的具有SSD(其中可以实现后台数据刷新)的***的框图。
图2是示出从主机到SSD的***时钟信息的传递的示例的框图。
图3A示出SSD的超级块的示例。
图3B是示出SSD可以存储以使能准确数据刷新的信息的示例的表。
图4A示出识别控制器数据结构的示例,其可用于识别哪些特征由给定存储装置支持,包括存储装置是否可以接受***时钟信息。
图4B是示出可以如何经由设置特征命令将***时钟信息从主机发送到存储装置的示例的表。
图5是示出用于使用***时间戳执行后台刷新的方法的示例的流程图。
图6是示出由存储装置执行以使用***时间戳执行后台刷新的方法的示例的流程图。
图7是示出由主机执行以提供***时间戳来使能后台刷新的方法的示例的流程图。
图8是用于设置后台刷新速率的伪代码的示例。
图9是根据一个示例的具有SSD(其中可以实现后台数据刷新)的计算装置的示例的框图。
图10是根据一个示例的具有SSD(其中可以实现后台数据刷新)的移动装置的示例的框图。
接着描述某些细节和实现,包括附图的描述,其可描绘下面描述的一些或所有实施例,以及讨论本文呈现的发明概念的其它潜在的实施例或实现。
具体实施方式
本文描述用于非易失性存储设备(例如固态驱动器(SSD))的后台数据刷新的技术。后台数据刷新涉及刷新存储在存储装置中的“冷数据”以避免保留相关的错误或故障。冷数据是存储在存储装置上且不经常访问的数据。冷数据可以存储在存储装置上,而不会在接近或超过存储装置的最大保留能力的一段时间被访问。刷新数据涉及将数据写到另一位置(或将数据重写到相同位置),这可以防止数据丢失。
诸如服务器中使用的SSD的企业固态驱动器(SSD)实现依赖于内部时间时钟的刷新技术。企业SSD通常始终通电并维持数据被写到SSD块的时间的时间时钟。然而,移动或其它消费者装置中使用的SSD不持续通电,并且经常进入低功率状态以减少功耗并保持电池寿命。当断电或处于最低功率模式时,存储装置的大多数组件掉电,包括用于维持时间时钟的组件。因此,用于刷新存储在SSD中的数据的现有技术对于移动和其它消费者SSD是无效的。
使用***时钟而不是依赖于内部时钟的用于后台数据刷新的技术可以使能刷新存储在存储装置上的冷数据(即使存储装置已经掉电或处于低功率状态)。在一个示例中,存储装置维持用于存储数据的每个超级块(或每个块、页或其它粒度)的时间戳信息以指示数据被写到超级块的时间。当存储装置掉电或进入低功率状态时,存储装置将时间戳信息保存到非易失性媒体(NVM)。在存储装置加电或退出低功率状态之后,存储装置从非易失性存储设备加载时间戳信息,并且还从主机接收指示当前时间的时间戳。与现有技术相比,存储装置可以使用从主机接收的当前时间戳来准确地确定在存储数据的每个超级块的数据的保留时间,即使装置掉电或处于低功率状态一段时间。如果保留时间超过阈值,则存储装置可以刷新数据。在一个示例中,存储装置通过将那些超级块放入队列中来刷新数据,并且将来自队列的写与主机业务交织。因此,使用来自主机的***时钟的刷新技术可以使能移动和其它消费者装置中的保留时间的准确确定并减少数据丢失。
图1示出根据一个示例的具有SSD(其中可以实现后台数据刷新)的***的框图。***100包括与主机110耦合的固态驱动器(SSD)102。
主机110表示连接到SSD 102的主机硬件平台。主机110包括CPU(中央处理单元)120或作为主机处理器的其它处理器。CPU 120表示任何主机处理器,其生成访问存储在SSD102上的数据或读取数据或将数据写到存储装置122的请求。此类处理器可包括单个或多核处理器,用于计算装置的主处理器,图形处理器,***处理器,或补充或辅助处理器,或组合。主机110包括芯片组114,芯片组114表示可以控制或管理CPU 120与***100的其它组件(包括SSD 102)之间的数据流的硬件组件。例如,芯片组114可以包括互连电路和逻辑以使能对SSD 102的访问。在一个示例中,芯片组114包括存储控制器,其是与SSD 102内的控制器130分开的主机侧控制器。尽管图1示出了主机中的芯片组,其包括控制对SSD的访问的逻辑,在其它示例中,主机110可以不包括芯片组,或者如果它确实包括芯片组,则存储控制器可以独立于芯片组。在一个示例中,芯片组、存储控制器或两者与CPU 120集成。主机110还包括时钟生成器132以生成***时钟。在一个示例中,时钟生成器132包括诸如谐振电路和放大器的电路,以产生用于同步平台100的操作的定时信号。
主机还包括在硬件上执行的固件和软件,诸如操作***112、文件***124、基础输入/输出***(BIOS)118、驱动器116,以及其它固件和软件。当***通电时,BIOS 118通常负责初始化硬件和加载操作***112。操作***112通常负责***100上的活动的管理、协调和调度以及共享***资源。文件***124与软件、固件或两者交互以访问SSD 102。例如,主机110可以包括SSD驱动器,操作***112和文件***124可以经由SSD驱动器访问SSD。SSD驱动器的一个示例是Intel®快速存储技术(RST)驱动器。尽管***100示出为具有主机操作***和用于存储数据的SSD的计算机***,***100可以备选地包括连接到SPI总线的存储装置或SPI(串行***接口)存储装置,基于LSM(基于对数结构合并)的关键值解决方案,基于三维交叉点存储器的解决方案或其它存储***。
SSD 102表示固态驱动器,其包括用于存储数据的非易失性存储设备122(其也可以称为非易失性媒体(NVM))。SSD 102可以是基于闪存的驱动器,其使用PCI Express(PCIe)、串行高级技术附连(ATA)、并行ATA和/或通用串行总线(USB)接口连接到处理器。存储装置122可以包括以下中的一个或多个:NAND、NOR闪存、相变存储器(PCM)、具有开关的相变存储器(PCMS)、电阻存储器或其它非易失性存储媒体。数据可以存储在单层单元(SLC)、三级单元(TLC)、四级单元(QLC)和/或多级单元(MLC)格式中。TLC、QLC和/或MLC单元或块通常用于存储用户数据。SLC单元或块(通常以减少存储密度为代价具有更快的访问速度)通常不存储用户数据并且通常不可由主机访问。SSD可以使用SLC单元或块来存储与SSD的操作相关的“***数据”。
除了非易失性存储设备122之外,SSD 102还可以包括DRAM 108(或其它易失性存储器)。DRAM 108包括易失性存储器,其可以在固态驱动器102通电(例如,操作的)时存储数据。DRAM 108可以包括例如LPDDR3(低功率双数据速率版本3(由JEDEC(联合电子装置工程委员会)最初发行),JESD209-3B,JEDEC 2013年8月),LPDDR4(低功率双数据速率(LPDDR))版本4,JESD209-4,由JEDEC于2014年8月最初发布,或其它类型的DRAM。DRAM可以符合由联合电子装置工程委员会(JEDEC)颁布的标准,例如用于DDR双数据速率(DDR)SDRAM的JESD79F,用于DDR2 SDRAM的JESD79-2F,用于DDR3 SDRAM的JESD79-3F或用于DDR4 SDRAM的JESD79-4A(这些标准可在www.jedec.org获得)。可以使用其它易失性存储器。一些SSD不包括DRAM(例如,“无DRAM”SSD)。在一个此类示例中,SSD可以包括SSD控制器存储器(未示出),其通常是SRAM。DRAM 108可以用于存储与SSD 102的操作相关的数据,例如逻辑到物理间接表或其它此类信息。
SSD 102还包括控制器130以控制对存储装置122的访问。在一个示例中,控制器130包括到存储装置122的接口,并且包括到主机110的接口。控制器130包括硬件逻辑以控制到存储装置122的写和从存储装置122的读取。控制器130可以是连接到诸如串行ATA或集成驱动器电子控制器的接口的专用集成电路控制器(ASIC)装置。在另一示例中,控制器130包括处理器或其它处理电路(未示出)。在一个示例中,控制器130可以包括在到单个集成电路芯片上的片上***(SoC)中。
SSD 102还包括固件104。固件104可以执行各种功能,例如转换、垃圾收集、耗损均衡以及用于SSD 102的操作和优化的其它功能。在一个示例中,固件104可以包括闪存转换层(FTL),其包括提供间接性以识别逻辑地址的物理地址空间的逻辑,例如从文件***124接收的请求的逻辑块地址(LBA)。
在示出的示例中,固件104包括刷新逻辑140以执行后台刷新来确保存储在存储装置122中的数据不丢失或损坏。用于刷新SSD中的数据的现有技术通常依赖于SSD“通电时间”或SSD内部的时钟(诸如控制器130的ASIC时间时钟)来确定刷新哪些数据。此类现有技术对于确定刷新一些***(例如移动装置)的数据的时间是无效的,其中SSD经常断电或被放入低功率状态。例如,SSD“通电时间”是存储在SSD上的计数(例如,在SSD上的寄存器中,或者在SSD上的另一位置中,例如在不可由主机访问的SSD的块中),其指示SSD已处于通电状态多长时间。依赖于SSD“通电时间”的刷新技术不考虑数据在存储装置122中保留的时间,但是装置或者掉电或者处于低功率状态。因此,此类技术可能引起数据刷新频率不足和数据丢失。类似地,依赖于位于SSD 102上的时间时钟的刷新技术也可能不够准确,因为当SSD 102断电或处于最低功率状态时,包括时钟的电路断电。
然而,与现有技术不同,SSD固件104可以通过维持关于数据被写到每个超级块的时间的信息并基于来自主机的当前时间戳来准确地跟踪存储在SSD存储装置122中的数据的保留时间。通过准确地跟踪保留时间,SSD固件104可以更准确地确定需要刷新数据的时间以避免数据丢失。例如,图2是示出从主机到SSD的***时钟信息的传递的示例的框图。图2示出与SSD 204耦合的SSD驱动器202。SSD驱动器可以与图1中所示的主机110的SSD驱动器128相同或类似,并且SSD 204可以与图1的SSD 102相同或类似。块206、208和210表示将时间戳从主机传递到SSD的方法中的操作。在所示示例中,操作206、208和210在通电或从低功率状态退出之后发生。低功率状态可以是“睡眠状态”。在一个示例中,低功率状态是SSD204的大多数组件(包括SSD控制器、DRAM、NVM和板上的其它分立组件)关闭的状态(例如,非易失性存储器Express(NVMe)协议中的PS4和PCI Express(PCIe)协议中的L1或L1.2)。NVMe协议可以指2017年5月1日发布的NVMe规范版本1.3或NVMe规范的另一版本中描述的协议。PCIe协议可以指2010年11月10日发布的PCI Express®基础规范版本3.0或PCI Express®基础规范的另一版本中描述的协议。
在SSD 204通电之后或在SSD 204退出低功率状态之后,在框206,SSD 204通知SSD驱动器202 SSD初始化并准备好接受主机命令。在一个示例中,在第一I / O命令时候(例如,紧接在第一I / O命令之后)(在操作208),在操作210,SSD驱动器202将***时钟信息(例如,以时间戳的形式)发送到SSD 204。在另一示例中,SSD驱动器202可以在第一I / O命令之前将***时钟信息发送到SSD。在一个示例中,在完成用于装置(SSD)准备好的PCIe /NVMe协议握手时,由存储驱动器触发命令(经由该命令发送***时钟信息)。一旦SSD 204从主机接收***时钟信息,SSD可以使用来自主机的***时钟信息来准确地确定保留时间并刷新由于超过阈值而处于丢失或损坏的风险的数据。例如,SSD可以存储指示数据被写到给定超级块的时间的时间戳。基于相对于来自主机的当前时间戳的指示数据被写到给定超级块的时间的时间戳,SSD还可以确定并存储超级块的保留时间。在一个示例中,在SSD操作时(例如,在SSD的DRAM通电并且操作的状态下)SSD可以将时间戳信息和保留时间存储在SSD的易失性存储器中。
如上面简要提到的,SSD可以在超级块粒度上(例如,对于已被写到的每个超级块)跟踪此类信息。超级块(也称为带)是跨所有平面跨所有管芯的块。图3A示出了四平面(4NAND管芯SSD)的超级块的示例。在图3A中所示的示例中,SSD具有四个不同的管芯(例如,管芯0、1、2和3),每个管芯具有四个平面(例如,0、1、2和3),并且每个平面具有块(例如,块0-n)。因此,在所示示例中,超级块0包括每个管芯的每个平面中的块0。相应地,在一个示例中,SSD可以跟踪每个超级块(例如,超级块0-n)的时间戳和保留时间。图3B是示出SSD可以存储以使能准确数据刷新的信息的表。图3B的表中所示的信息(例如,时间戳和保留时间)可以在SSD操作时存储在易失性存储器中,并且当SSD掉电或者处于低功率模式时(例如,DRAM不操作的低功率模式)存储在非易失性存储设备中。例如,参考图1,SSD 102的DRAM108可以在SSD操作时存储时间戳和保留时间信息。在无DRAM的SSD中,时间戳和保留时间信息可以存储在另一位置,例如SSD控制器存储器中。然后,在进入低功率模式或掉电之前,SSD 102可以将时间戳和保留时间信息存储到SSD存储装置122。在一个此类示例中,SSD102将时间戳和保留时间信息存储到SSD存储装置122的SLC块(例如,预留或“***”SLC块(通常不可由主机直接访问))。再次参考图3B,注意尽管时间戳和保留时间以秒为单位,但是可以使用其它时间粒度(例如,分钟、小时、天或其它时间单位)。类似地,尽管图3B中的表示出存储每个超级块的时间戳的示例,但是可以使用其它粒度。例如,SSD可以存储每个块的时间戳信息,或者仅存储已被写到的块或超级块的时间戳信息,或者其它粒度的时间戳信息。
在所示示例中,表的每个条目包括指示超级块被写到的时间的写时间戳。SSD还基于主机上的时间时钟存储当前时间戳。在参考图2描述的示例中,主机响应于从SSD接收到SSD被初始化并准备好接受命令的通知而将当前时间戳发送到SSD(例如,在加电或从低功率模式退出之后)。注意,尽管图3B的表多次示出当前时间戳(对于每个超级块),SSD可以仅存储当前时间戳一次(而不是对于每个超级块)。在一个示例中,SSD还存储每个超级块的数据保留时间。在一个示例中,通过从当前时间戳减去写时间戳来计算数据保留时间。
再次参考当前时间戳,在一个示例中,建立用于从主机到SSD的当前时间戳的传递的协议。通过具有SSD固件和SSD驱动器两者均符合的协议,SSD驱动器可以提供与SSD期望的时间戳一致的时间戳,并且SSD可以正确地解释从主机接收的时间戳。图4A和4B示出了用于将时间戳从主机传递到SSD的协议的一些特征的示例。
图4A示出了识别控制器数据结构的示例,其可用于识别哪些特征由给定存储装置支持,包括存储装置是否可以接受***时钟信息。数据结构400A可以用在诸如非易失性存储器Express(NVMe)或其它存储协议的协议中。NVMe定义了识别命令,主机将所述命令发送到存储装置以识别哪些能力和设置适用于存储控制器(例如,图1的SSD控制器130)。响应于接收到识别命令,存储装置将返回包括关于一个或多个特征的信息的数据结构(例如,识别控制器数据结构400A)。在数据结构400A中,为供应方特定特征预留字节范围。在所示的示例中,字节4095:3072被预留用于供应方特定的特征,包括用于识别存储装置是否支持接受***时钟信息的特征的一个字节。通过将字节3072的位0设置为逻辑1,存储装置指示支持所述特征,并且通过将所述位设置为逻辑0,存储装置指示不支持所述特征。也可以使用相反的约定(例如,逻辑0可以指示支持所述特征)。尽管所述字节示出为强制的(如由'O / M'列中的'M'指示的),但在其它示例中,所述字节可以是可选的。
如果存储装置确实支持接受***时钟信息的特征(例如,如由数据结构400A中的字节3072指示的),则主机可以在一些预定时间(例如在加电后或在从低功率状态退出后)将***时钟信息传递到存储装置。例如,主机可以经由供应方唯一的设置特征命令来传递***时钟信息。
图4B是示出可以如何经由设置特征命令将***时钟信息从主机发送到存储装置的示例的表。例如,表400B示出了NVMe设置特征命令的特征标识符。在主机将设置特征命令发送到存储装置之前,主机(例如,经由诸如SSD驱动器128的存储驱动器)设置特征标识符C0h以反映如由***时钟指示的当前时间。当前时间戳可以定义为自从预定日期和时间起经过的秒(或毫秒(ms)、分钟、小时或其它时间粒度)的数量。只要格式由协议定义并且由主机和存储装置两者遵循,其它时间戳格式是可能的。在所示示例中,***时钟信息特征在供应方特定特征中(例如,供应方特定特征标识符包括所示示例中的字节C0h-FFh)。然而,可以使用其它特征标识符或其它命令。然后,主机将包括特征标识符的命令发送到存储装置。存储装置可以存储当前时间戳以用于确定数据保留时间,如上面描述并且下面更详细地描述的。
图5-7是示出用于使用***时间戳执行后台刷新的方法的示例的流程图。图5是从***角度的流程图,包括由主机和存储装置两者执行的操作。图6是从存储装置角度的流程图。图7是从主机角度的流程图。如上面提到的,用于刷新非易失性媒体中的数据的现有技术对于经常掉电或放入低功率状态的存储装置可能是无效的。在图5-7的方法中,来自主机的时间戳用于更准确地确定数据保留时间,并且因此可以使能改进的数据刷新。
参考图5,在操作502,方法500通过SSD通电开始。备选地,方法500可以通过SSD退出低功率状态(例如,唤醒或进入更高功率状态)开始。SSD可以与图1的SSD 102相同或类似。然后,在操作504,SSD固件将时间戳表从非易失性存储设备加载到DRAM。例如,参考图1,SSD固件104可以将时间戳表从SSD存储装置122加载到DRAM 108。在SSD不包括DRAM的一个示例中,SSD固件可以将时间戳表从SSD存储装置122加载到SSD控制器存储器。加载时间戳表可以包括从SSD存储装置122加载一个或多个超级块(或其它粒度)的写时间戳。然后,在操作506,主机侧的SSD驱动器在第一主机I / O命令上发送当前时间戳。例如,SSD驱动器128可以经由供应方唯一的设置特征命令发送时间戳,例如图4B中所示的。在一个此类示例中,SSD驱动器紧接着第一主机I / O命令之后(例如,在第一写、读取或其它I / O命令之后)经由供应方唯一的设置特征命令发送时间戳。在一个示例中,主机紧接着第一I / O命令之后发送时间戳信息(例如,在第一I / O命令和供应方唯一的设置特征命令之间没有中间命令)以使能确定性行为。在另一示例中,SSD驱动器可以在第一I / O命令之前发送时间戳,或者如果在第一写命令之后发送时间戳,则在第一I / O和供应方唯一的设置特征命令之间可以存在一个或多个中间命令。可以使用除供应方唯一的设置特征命令之外的其它命令。
然后,在操作508,SSD固件通过表中的每个超级块的保留时间来更新时间戳表。例如,SSD固件104可以通过从当前时间戳减去写时间戳来计算每个超级块的数据保留时间。在一个示例中,SSD固件存储每个超级块的计算数据保留时间。
在确定一个或多个超级块的保留时间之后,在操作510,SSD固件然后可以检查以查看保留时间是否超过阈值。阈值可以是取决于SSD的特性的预定数量。阈值可以是静态的(例如,整个SSD寿命期使用相同的阈值)或动态的(例如,当随着时间使用SSD时可以更新阈值)。如果保留时间已经超过阈值(510“是”分支),则在操作512,SSD固件将超级块移动到后台数据刷新(BDR)队列,并为超级块设置标志(例如,BDR标志)以指示应移动数据。队列可以用固件、硬件或组合来实现。在一个示例中,将超级块移动到BDR队列可以涉及为超级块设置BDR标志。所述标志可以包括一个位或多个位,并且设置所述标志以指示在给定超级块的数据要被移动可以涉及将所述标志设置为逻辑1或逻辑0,或者另一值以指示在超级块的数据应当被移动。在另一示例中,将超级块移动到BDR队列还可以或备选地涉及存储一些信息以将超级块识别到队列数据结构。如果设置了BDR标志(例如,设置为指示要移动数据的值)(514“是”分支),则在516,SSD固件将主机活动与BDR写交织,以将有效数据从BDR队列中的超级块移动到新的超级块。可以通过垃圾收集例程来执行一个或多个操作,垃圾收集例程通常是SSD固件(例如,图1的固件104的一部分)的例程。例如,主机活动与BDR写的交织和BDR写的执行可以由垃圾收集例程执行。
如果给定超级块的保留时间未超过阈值(510“否”分支),则超级块未放置在队列中,未设置BDR标志(514“否”分支),并且在操作518,SSD继续处理正进行的主机活动。因此,在一个示例中,在每一个功率周期,SSD固件扫描每个超级块的数据保留时间。如果保留时间超过保留时间阈值,则超级块被放入BDR队列以由垃圾收集例程拾取来移动数据,并且BDR标志由固件设置。固件检查BDR标志,并且如果设置,固件触发垃圾收集例程,并且BDR队列中的块可以优先化以用于垃圾收集。当SSD将进入低功率状态或将掉电时,SSD固件将时间戳信息存储到SSD存储装置122,以便在SSD唤醒或加电时可以检索信息。
图6还是根据一个示例的使用来自主机的时间戳执行后台刷新的方法的流程图。图6的方法600由存储装置执行(例如,由SSD固件(例如图1的固件104)执行)。在操作602,方法600通过从主机(例如,图1的主机110)接收时间戳开始。例如,固件可以接收命令,例如供应方唯一的设置特征命令,其包括来自主机的时间戳。然后,在操作604,SSD固件将时间戳存储在存储装置中。例如,固件可以将时间戳存储在SSD的DRAM中(例如,图1的SSD 102的DRAM 108)。在从主机接收到时间戳之后,在操作606,固件基于相对于写时间戳的时间戳来确定存储在存储装置的一个或多个块中的数据的保留时间。写时间戳指示数据被写到一个或多个块(例如,块、超级块或存储空间的其它粒度)的时间。固件还可以将一个或多个块的保留时间存储到DRAM。如果保留时间超过阈值,则在操作608,固件将数据移动到存储装置的一个或多个其它块。例如,固件(例如,图1的刷新逻辑140)可以交织刷新写与主机活动以在主机活动的后台刷新数据。
图7是根据一个示例的基于***时钟将当前时间戳传送到存储装置的方法的流程图。图7的方法700可以由主机(例如,图1的主机110的SSD驱动器128)执行。在操作702,方法700通过主机从存储装置(例如,图1的SSD 102)接收指示存储装置准备好接收命令的通知。在操作704,主机然后基于主机的***时钟经由供应方唯一的设置特征命令将当前时间戳信息发送到存储装置。例如,主机可以经由如图4B中指定的命令发送时间戳。然而,其它命令也可用于向存储装置提供时间戳。存储装置存储当前时间戳,并且可以基于当前时间戳来确定存储在存储装置的块中的数据的保留时间。
因此,图5-7的方法示出了用于将当前时间戳从主机传送到存储装置的方法,使用当前时间戳确定存储在存储装置上的数据的保留时间,以及基于保留时间执行后台刷新的方法。如上面简要提到的,刷新数据可以在刷新活动可以与主机活动交织的意义上在后台中完成。然而,由于刷新以及主机活动而需要执行的写的量可以显著变化。因此,在一个示例中,存储装置(例如,SSD固件)可以动态地确定刷新写对主机活动的比率。例如,交织刷新写和主机活动的比率可以基于以下中的一个或多个:队列中块的保留时间,来自主机的命令的数量,要刷新的块的数量以及用于执行刷新的可用空间(例如,空块的数量)。
图8是用于设置后台刷新速率的伪代码800的示例。在伪代码800中,用于刷新的后台写的速率将基于以下变量而变化:从源块移动的有效单元的百分比,以及可用于目的地的空块的百分比。从源块移动的有效单元的百分比由以下给出:块中的有效单元除以块中的总单元(其中总单元包括有效和无效块)。空块的百分比由当前空块除以总分配的空块给出。如果有效单元的百分比小于25%或者如果空块的百分比大于75%(在行802),则其是存在较少数据要写或较多空间可用于写的指示,因此主机活动对后台写活动比率可以设置为相对高的比率,例如4:1,在行804-810。如果有效单元的百分比小于50%或空块的百分比大于50%(在行812),则固件可以将主机活动对后台写活动的比率设置为2:1(在行814-818)。如果有效单元的百分比小于75%或者如果空块的百分比大于25%(在行820),则主机活动对后台写活动的比率可以设置为1:2(在行822-826)。否则(在行828),主机活动对后台写活动的比率可以设置为1:4(在行830-834)。这些比率是示例,并且其它比率可用于执行后台刷新以实现性能目标并防止数据损坏。例如,可以使用高于4:1的比率(例如,8:1、16:1、32:1或更高的比率),或者可以使用低于1:4的比率(例如,1:8、1:16、1:32,或更低比率)。
图9是包括实现后台数据刷新技术的非易失性存储设备的计算***的示例的框图。***900表示根据本文任何示例的计算装置,并且可以是膝上型计算机、桌上型计算机、平板计算机、服务器、游戏或娱乐控制***、智能电话或其它电子装置。
***900包括处理器910,其为***900提供处理、操作管理和指令的执行。处理器910可包括任何类型的微处理器、中央处理单元(CPU)、图形处理单元(GPU)、处理核或为***900提供处理的其它处理硬件、或处理器的组合。处理器910控制***900的整体操作,并且可以是或包括一个或多个可编程通用或专用微处理器、数字信号处理器(DSP)、可编程控制器、专用集成电路(ASIC)、可编程逻辑装置(PLD)等等,或此类装置的组合。
在一个示例中,***900包括耦合到处理器910的接口912,其可以表示需要更高带宽连接的***组件的更高速接口或高吞吐量接口,例如存储器子***920或图形接口组件940。接口912表示接口电路,其可以是独立组件或集成在处理器管芯上。接口912可以集成为到处理器管芯上的电路或集成为片上***上的组件。在存在的情况下,图形接口940与图形组件对接,以用于向***900的用户提供视觉显示。图形接口940可以是独立组件或集成到处理器管芯或片上***上。在一个示例中,图形接口940可以驱动向用户提供输出的高清(HD)显示器。在一个示例中,显示器可包括触摸屏显示器。
存储器子***920表示***900的主存储器,并且为要由处理器910执行的代码或要在执行例程中使用的数据值提供存储。存储器子***920可以包括一个或多个存储器装置930,诸如只读存储器(ROM)、闪存、诸如DRAM的一种或多种随机存取存储器(RAM)或其它存储器装置,或此类装置的组合。存储器930存储和托管(除其它事情以外)操作***(OS)932以提供用于在***900中执行指令的软件平台。此外,应用934可以在来自存储器930的OS 932的软件平台上执行。应用934表示具有其自己的操作逻辑来执行一个或多个功能的执行的程序。过程936表示向OS 932或一个或多个应用934或组合提供辅助功能的代理或例程。在一个示例中,存储器子***920包括存储器控制器922,其是用于生成并将命令发出到存储器930的存储器控制器。将理解,存储器控制器922可以是处理器910的物理部分或接口912的物理部分。例如,存储器控制器922可以是集成存储器控制器(集成到具有处理器910的电路上),例如集成到处理器管芯或片上***上。
虽然没有具体示出,但是将理解,***900可以包括装置之间的一个或多个总线或总线***,例如存储器总线、图形总线、接口总线等等。总线或其它信号线可以将组件通信地或电地耦合在一起,或者均通信地和电地耦合组件。总线可以包括物理通信线、点对点连接、桥接器、适配器、控制器或其它电路或组合。总线可以包括以下中的一个或多个:例如***总线、***组件互连(PCI)总线、PCI Express (PCIe)、HyperTransport或工业标准架构(ISA)总线、小型计算机***接口(SCSI)总线、通用串行总线(USB)或电气和电子工程师协会(IEEE)标准994总线。
在一个示例中,***900包括接口914,其可以耦合到接口912。接口914可以是比接口912速度低的接口。在一个示例中,接口914表示接口电路,其可以包括独立组件和集成电路。在一个示例中,多个用户界面组件或***组件或两者耦合到接口914。网络接口950为***900提供通过一个或多个网络与远程装置(例如,服务器或其它计算装置)通信的能力。网络接口950可以包括以太网适配器、无线互连组件、蜂窝网络互连组件、USB(通用串行总线)或基于其它有线或无线标准或专有接口。
在一个示例中,***900包括一个或多个输入/输出(I/O)接口960。I/O接口960可以包括用户通过其与***900交互的一个或多个接口组件(例如,音频、字母数字、触觉/触摸或其它对接)。***接口970可以包括上面没有具体提到的任何硬件接口。***一般指从属地连接到***900的装置。从属连接是***900提供操作在其上执行(并且用户与其交互)的软件平台或硬件平台或两者的连接。***900还包括功率源902,其提供功率到***900的组件。更具体地,功率源902通常对接到***902中的一个或多个功率供应904以提供功率到***900的组件。
在一个示例中,***900包括存储子***980来以非易失性方式存储数据。在一个示例中,在某些***实现中,存储装置980的至少某些组件可以与存储器子***920的组件重叠。存储子***980包括一个或多个存储装置981,其包括非易失性存储设备984。非易失性存储设备984可以是用于以非易失性方式(例如一个或多个磁性、固态或基于光的盘或其组合)存储大量数据的任何常规介质。存储装置984保持代码或指令和数据986处于持久状态(即,尽管中断到***900的功率,仍保留所述值)。存储装置984通常可以被认为是“存储器”,尽管存储器930通常是执行或操作存储器以向处理器910提供指令。而存储装置984是非易失性的,存储器930可以包括易失性存储器(即,如果对***900中断功率,则数据的值或状态是不确定的)。在一个示例中,存储子***980包括与存储装置981对接的主机侧控制器982以及与主机对接的存储装置侧控制器985。在一个示例中,控制器982是接口914或处理器910的物理部分,或者可以包括处理器910和接口914两者中的电路或逻辑。存储装置981还包括固件983,其可以执行各种功能,例如上面相对于图1的固件104描述的。在一个示例中,存储装置981可以与图1的SSD 102相同或类似。在一个此类示例中,存储装置981使用来自主机的时间戳执行改进的后台刷新技术,如本文所描述的。
图10是包括实现后台数据刷新技术的非易失性存储装置的移动装置的示例的框图。装置1000表示移动计算装置,诸如计算平板、移动电话或智能电话、无线使能的e-阅读器或其它移动装置。将理解,一般示出了某些组件,并且在装置1000中未示出此类装置的所有组件。
装置1000包括处理器1010,其执行装置1000的主要处理操作。处理器1010可包括一个或多个物理装置,诸如微处理器、应用处理器、微控制器、可编程逻辑装置或其它处理部件。由处理器1010执行的处理操作包括操作平台或操作***(在其上执行应用和装置功能)的执行。处理操作包括同与人类用户或与其它装置的I/O(输入/输出)相关的操作、与功率管理相关的操作、与将装置1000连接到另一装置相关的操作、或组合。处理操作还可包括与音频I/O、显示I/O或其它对接、或组合相关的操作。处理器1010可以执行存储在存储器中的数据。处理器1010可以写或编辑存储在存储器中的数据。
在一个示例中,***1000包括一个或多个传感器1012。传感器1012表示到外部传感器的接口或嵌入式传感器、或组合。传感器1012使能***1000监视或检测在其中实现***1000的环境或装置的一个或多个条件。在一个示例中,一个或多个传感器1012经由与处理器1010集成的前端电路耦合到处理器1010。在一个示例中,一个或多个传感器1012经由***1000的另一组件耦合到处理器1010。
在一个示例中,装置1000包括音频子***1020,其表示与向计算装置提供音频功能关联的硬件(例如音频硬件和音频电路)和软件(例如驱动器、编解码器)组件。音频功能可包括扬声器或耳麦输出,以及麦克风输入。用于此类功能的装置可被集成到装置1000中,或连接到装置1000。在一个示例中,用户通过提供由处理器1010接收和处理的音频命令与装置1000交互。
显示子***1030表示将用于呈现的视觉显示提供到用户的硬件组件(例如显示装置)和软件组件(例如驱动器)。在一个示例中,显示器包括触摸组件或触摸屏元件以用于用户与计算装置交互。显示子***1030包括显示接口1032,其包括用于向用户提供显示的具体屏幕或硬件装置。在一个示例中,显示接口1032包括与处理器1010(例如图形处理器)分开的逻辑,以执行与显示相关的至少某一处理。在一个示例中,显示子***1030包括向用户提供输出和输入两者的触摸屏装置。
I/O控制器1040表示同与用户的交互相关的硬件装置和软件组件。I/O控制器1040可操作以管理是音频子***1020或显示子***1030或两者的一部分的硬件。此外,I/O控制器1040示出了连接到装置1000的附加装置的连接点,通过所述连接点用户可能与***交互。例如,可附连到装置1000的装置可包括麦克风装置、扬声器或立体声***、视频***或其它显示装置、键盘或键区装置或用于供特定应用使用的其它I/O装置(诸如读卡器或其它装置)。
在一个示例中,装置1000包括管理电池功率使用,电池充电以及与功率节省操作相关的特征的功率管理1050。功率管理1050管理来自功率源1052的功率,功率源1052向***1000的组件提供功率。
存储器子***1060包括用于将信息存储在装置1000中的一个或多个存储器装置1062。存储器子***1060可包括非易失性(如果到存储器装置的功率被中断则状态不改变)或易失性(如果到存储器装置的功率被中断则状态不确定)存储器装置或组合。存储器1060可存储应用数据、用户数据、音乐、照片、文档或其它数据,以及与***1000的应用和功能的执行相关的***数据(不管是长期的还是暂时的)。在一个示例中,存储器子***1060包括存储器控制器1064(其也可被认为是***1000的控制的部分,并且可潜在地被认为是处理器1010的部分)。存储器控制器1064包括调度器以生成并发出命令来控制对存储器装置1062的访问。
连接性1070包括硬件装置(例如无线或有线连接器和通信硬件或有线和无线硬件的组合)以及软件组件(例如驱动器、协议栈),以使能装置1000与外部装置通信。外部装置可以是单独装置,诸如其它计算装置、无线接入点或基站以及诸如耳麦、打印机或其它装置的***设备。在一个示例中,***1000与外部装置交换数据以用于存储在存储器中或用于在显示装置上显示。交换的数据可以包括要存储在存储器中的数据,或者已经存储在存储器中的数据,以读取、写或编辑数据。
连接性1070可包括多个不同类型连接性。概括地说,装置1000被示出具有蜂窝连接性1072和无线连接性1074。蜂窝连接性1072一般指由无线载波提供的蜂窝网络连接性,诸如经由GSM(全球移动通信***)或变形或衍生、CDMA(码分多址)或变形或衍生、TDM(时分复用)或变形或衍生、LTE(长期演进-也称为“4G”)或其它蜂窝服务标准提供的。无线连接性1074指非蜂窝的无线连接性,并且可包括个域网(诸如蓝牙)、局域网(诸如WiFi)或广域网(诸如WiMax)或其它无线通信或组合。无线通信指通过非固态介质通过使用调制电磁辐射传输数据。有线通信通过固态通信介质发生。
***连接1080包括硬件接口和连接器以及软件组件(例如驱动器、协议栈)以进行***连接。将理解,装置1000可能是到其它计算装置的***装置(“到”1082),以及具有连接到它的***装置(“从”1084)。装置1000通常具有“船坞式(docking)”连接器以连接到其它计算装置,为了诸如管理(例如下载、上载、改变、同步)装置1000上内容的目的。此外,船坞式连接器可允许装置1000连接到某些***设备,所述***设备允许装置1000控制例如到视听***或其它***的内容输出。
除了专有船坞式连接器或其它专有连接硬件,装置1000可经由公共连接器或基于标准的连接器进行***连接1080。公共类型可包括通用串行总线(USB)连接器(其可包括任何数量的不同硬件接口)、包括迷你显示端口(MDP)的显示端口、高清多媒体接口(HDMI)、火线、或其它类型。
装置1000还包括固态驱动器(SSD)1011,其提供装置1000的非易失性存储设备。SSD 1011可以与图1的SSD 102相同或类似。在一个此类示例中,SSD 1011使用来自主机的时间戳执行改进的后台刷新技术,诸如本文所描述的。
接着是用于实现后台刷新技术的方法、设备和***的示例。在一个示例中,方法涉及从主机接收时间戳;将所述时间戳存储在存储装置中;基于相对于指示所述数据被写到所述存储装置的一个或多个块的时间的第二时间戳的所述时间戳来确定存储在所述一个或多个块中的数据的保留时间;以及响应于确定所述保留时间超过阈值,将所述数据移动到所述存储装置的一个或多个其它块。在一个示例中,从所述主机接收所述时间戳响应于对所述存储装置通电或所述存储装置退出低功率状态。在一个示例中,从所述主机接收所述时间戳还响应于在对所述存储装置通电之后或在退出所述低功率状态之后的第一写命令。在一个示例中,所述方法还涉及:对于多个超级块中的每个,存储指示数据被写到给定超级块的时间的时间戳以及写到所述给定超级块的所述数据的所述保留时间;响应于对所述存储装置通电或所述存储装置退出低功率状态,扫描所述多个超级块的数据保留时间;以及响应于确定所述多个超级块中的一个或多个的所述保留时间超过阈值,将所述数据从所述多个超级块中的所述一个或多个移动到一个或多个其它超级块。
在一个示例中,所述方法涉及:响应于进入低功率状态或对所述存储装置断电,将所述多个超级块中的每个的所述时间戳和保留时间存储在非易失性存储器中;以及响应于退出所述较低功率状态或对所述存储装置通电,加载来自所述非易失性存储器的所述多个超级块中的每个的所述时间戳和保留时间。在一个示例中,存储所述多个超级块中的每个的所述时间戳和保留时间涉及将所述多个超级块中的每个的所述时间戳和保留时间存储在所述存储装置的一个或多个单层单元(SLC)超级块中。在一个示例中,移动所述数据涉及将所述一个或多个块放置在队列中以指示存储在所述一个或多个块中的数据的保留时间已超过所述阈值;以及交织来自所述主机的访问与来自所述队列的写。在一个示例中,将所述一个或多个块放置在所述队列中涉及设置标志以识别所述一个或多个块并指示存储在所述一个或多个块中的数据的保留时间已超过所述阈值。在一个示例中,所述方法涉及调整交织来自所述主机的所述访问与来自所述队列的所述写的比率;其中交织的所述比率基于以下中的一个或多个:所述队列中块的保留时间、来自所述主机的命令的数量、要刷新的块的数量、以及用于执行刷新的可用空间。在一个示例中,接收所述时间戳涉及经由供应方唯一命令从所述主机接收所述时间戳。
在一个示例中,固态存储装置(SSD)包括:固态存储设备以存储数据;以及逻辑以:从主机接收时间戳、将所述时间戳存储在所述固态存储设备中、基于相对于指示所述数据被写到所述一个或多个块的时间的第二时间戳的所述时间戳,确定存储在所述固态存储装置的一个或多个块中的数据的保留时间、以及响应于所述保留时间超过阈值的确定,将所述数据移动到所述存储装置的一个或多个其它块。在一个示例中,从所述主机的所述时间戳的所述接收响应于对所述SSD通电或所述SSD退出低功率状态。在一个示例中,从所述主机的所述时间戳的接收还响应于在对所述SSD通电之后或者在退出所述SSD之后的第一写命令。在一个示例中,所述逻辑还要:对于多个超级块中的每个,存储指示数据被写到给定超级块的时间的时间戳和写到所述给定超级块的所述数据的所述保留时间。
在一个示例中,所述逻辑还要:响应于对所述存储装置通电或所述存储装置退出低功率状态,扫描所述多个超级块的数据保留时间;以及响应于确定所述多个超级块中的一个或多个的所述保留时间超过阈值,将所述数据从所述多个超级块中的所述一个或多个移动到一个或多个其它超级块。在一个示例中,所述SSD还包括:易失性存储器;其中响应于进入低功率状态或对所述SSD断电,所述逻辑要将所述多个超级块中的每个的所述时间戳和保留时间存储在所述非易失性存储设备中;以及其中响应于退出所述较低功率状态或对所述SSD通电,所述逻辑要将所述多个超级块中的每个的所述时间戳和保留时间从所述非易失性存储设备加载到所述易失性存储器。在一个示例中,响应于进入所述低功率状态或对所述SSD断电,所述逻辑要将所述多个超级块中的每个的所述时间戳和保留时间存储在所述存储装置的一个或多个单层单元(SLC)超级块中。在一个示例中,移动该数据的逻辑要:将所述一个或多个块放置在队列中以指示存储在所述一个或多个块中的数据的保留时间已超过所述阈值;以及交织来自所述主机的访问与来自所述队列的写。在一个示例中,将所述一个或多个块放置在所述队列中的逻辑要:设置标志以识别所述一个或多个块并指示存储在所述一个或多个块中的数据的保留时间已超过所述阈值。在一个示例中,所述逻辑要:调整交织来自所述主机的所述访问与来自所述队列的所述写的比率;其中交织的所述比率基于以下中的一个或多个:所述队列中块的保留时间、来自所述主机的命令的数量、要刷新的块的数量,以及用于执行刷新的可用空间。在一个示例中,所述逻辑要经由供应方唯一命令从主机接收所述时间戳。在一个示例中,所述逻辑包括用于所述SSD的固件。
在一个示例中,***包括处理器和与所述处理器耦合的非易失性存储装置,所述非易失性存储装置包括本文描述的特征。在一个示例中,固态存储装置(SSD)包括:非易失性存储设备以存储数据;以及部件以:从主机接收时间戳、将所述时间戳存储在所述非易失性存储设备中、基于相对于指示所述数据被写到所述一个或多个块的时间的第二时间戳的所述时间戳,确定存储在所述非易失性存储设备的一个或多个块中的数据的保留时间、以及响应于所述保留时间超过阈值的确定,将所述数据移动到所述非易失性存储设备的一个或多个其它块。
在一个示例中,从所述主机的所述时间戳的所述接收响应于对所述SSD通电或所述SSD退出低功率状态。在一个示例中,从所述主机的所述时间戳的所述接收还响应于在对所述SSD通电之后或者在退出所述低功率状态之后的第一输入/输出(I/O)命令。在一个示例中,SSD包括部件以:对于多个超级块中的每个,存储指示数据被写到给定超级块的时间的时间戳和写到所述给定超级块的所述数据的所述保留时间。在一个示例中,SSD包括部件以:响应于对所述SSD通电或所述SSD装置退出低功率状态,扫描所述多个超级块的数据保留时间;以及响应于确定所述多个超级块中的一个或多个的所述保留时间超过阈值,将所述数据从所述多个超级块中的所述一个或多个移动到一个或多个其它超级块。在一个示例中,所述SSD还包括:易失性存储器;以及部件以响应于进入低功率状态或对所述SSD断电,将所述多个超级块中的每个的所述时间戳和保留时间存储在所述非易失性存储设备中,以及响应于退出所述较低功率状态或对所述存储装置通电,将所述多个超级块中的每个的所述时间戳和保留时间从所述非易失性存储设备加载到所述易失性存储器。在一个示例中,所述SSD还包括部件以:响应于进入低功率状态或对所述SSD断电,将所述多个超级块中的每个的所述时间戳和保留时间存储在所述SSD的一个或多个单层单元(SLC)超级块中。在一个示例中,移动该数据的部件要:将所述一个或多个块放置在队列中以指示存储在所述一个或多个块中的数据的保留时间已超过所述阈值;以及交织来自所述主机的访问与来自所述队列的写。在一个示例中,将所述一个或多个块放置在所述队列中的所述部件要:设置标志以识别所述一个或多个块并指示存储在所述一个或多个块中的数据的保留时间已超过所述阈值。在一个示例中,所述SSD包括部件以调整交织来自所述主机的所述访问与来自所述队列的所述写的比率;其中交织的所述比率基于以下中的一个或多个:所述队列中块的保留时间、来自所述主机的命令的数量、要刷新的块的数量、以及用于执行刷新的可用空间。在一个示例中,SSD包括部件以经由供应方唯一命令从主机接收所述时间戳。在一个示例中,一种制品包括计算机可读存储介质,所述计算机可读存储介质具有存储在其上的内容,所述内容在被访问时引起操作的所述执行来执行用于执行如本文描述的后台刷新的方法。
如本文所示出的流程图提供了各种过程动作序列的示例。流程图可指示要由软件或固件例程执行的操作以及物理操作。在一个示例中,流程图可示出有限状态机(FSM)的状态,其可用硬件和/或软件或组合实现。尽管按具体序列或顺序示出,但是除非以其它方式规定,否则可以修改动作的顺序。因此,所示出的实施例应当仅作为示例理解,并且过程可按不同顺序执行,并且一些动作可并行执行。此外,在各种示例中可省略一个或多个动作;因此,并不是在每一个实施例中都要求所有动作。其它过程流是可能的。
在本文描述各种操作或功能的程度上,它们可描述或者定义为软件代码、指令、配置、数据或组合。内容可以是直接可执行的(“对象”或“可执行”形式)、源代码或差异代码(“Δ”或“补丁”代码)。本文描述的实施例的软件内容可经由制品(具有存储在其上的内容)或经由操作通信接口以经由通信接口发送数据的方法提供。机器可读存储介质可使机器执行所描述的功能或操作,并且包括存储以可由机器(例如计算装置、电子***等)访问形式的信息的任何机制,诸如可记录/不可记录媒体(例如只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储媒体、光存储媒体、闪存装置等)。通信接口包括与任何硬连线、无线、光等介质对接以与另一装置(诸如存储器总线接口、处理器总线接口、因特网连接、盘控制器等)通信的任何机制。通信接口可通过提供配置参数或发送信号或两者来配置以准备通信接口来提供描述软件内容的数据信号。通信接口可经由发送到通信接口的一个或多个命令或信号来访问。
本文描述的各种组件可以是用于执行所描述的操作或功能的部件。本文描述的每个组件包括软件、硬件或这些的组合。组件可实现为软件模块、硬件模块、专用硬件(例如专用硬件、专用集成电路(ASIC)、数字信号处理器(DSP)等)、嵌入式控制器、硬连线电路等。
除了本文所描述的内容,可对所公开的本发明的实施例和实现进行各种修改,而不背离它们的范围。因此,本文的说明和示例应当以说明性的而非约束性意义来解释。本发明的范围应当仅参考跟着的权利要求进行度量。
本申请还公开了一组技术方案,如下:
1. 一种方法,包括:
从主机接收时间戳;
将所述时间戳存储在存储装置中;
基于相对于指示所述数据被写到所述存储装置的一个或多个块的时间的第二时间戳的所述时间戳来确定存储在所述一个或多个块中的数据的保留时间;以及
响应于确定所述保留时间超过阈值,将所述数据移动到所述存储装置的一个或多个其它块。
2. 如技术方案1所述的方法,其中从所述主机接收所述时间戳响应于对所述存储装置通电或所述存储装置退出低功率状态。
3. 如技术方案2所述的方法,其中从所述主机接收所述时间戳还响应于在对所述存储装置通电之后或在退出所述低功率状态之后的第一输入/输出(I/O)命令。
4. 如技术方案1所述的方法,还包括:
对于多个超级块中的每个,存储指示数据被写到给定超级块的时间的时间戳以及写到所述给定超级块的所述数据的所述保留时间。
5. 如技术方案4所述的方法,还包括:
响应于对所述存储装置通电或所述存储装置退出低功率状态,扫描所述多个超级块的数据保留时间;以及
响应于确定所述多个超级块中的一个或多个的所述保留时间超过阈值,将所述数据从所述多个超级块中的所述一个或多个移动到一个或多个其它超级块。
6. 如技术方案4所述的方法,还包括:
响应于进入低功率状态或对所述存储装置断电,将所述多个超级块中的每个的所述时间戳和保留时间存储在所述存储装置的非易失性存储设备中;以及
响应于退出所述较低功率状态或对所述存储装置通电,将所述多个超级块中的每个的所述时间戳和保留时间从所述非易失性存储设备加载到所述存储装置的易失性存储器。
7. 如技术方案6所述的方法,其中将所述多个超级块中的每个的所述时间戳和保留时间存储在所述非易失性存储设备中包括:
将所述多个超级块中的每个的所述时间戳和保留时间存储在所述存储装置的一个或多个单层单元(SLC)超级块中。
8. 如技术方案1所述的方法,其中移动所述数据包括:
将所述一个或多个块放置在队列中以指示存储在所述一个或多个块中的数据的保留时间超过所述阈值;以及
交织来自所述主机的访问与来自所述队列的写。
9. 如技术方案8所述的方法,其中将所述一个或多个块放置在所述队列中包括设置标志以识别所述一个或多个块并指示存储在所述一个或多个块中的数据的保留时间已超过所述阈值。
10. 如技术方案9所述的方法,还包括:
调整交织来自所述主机的所述访问与来自所述队列的所述写的比率;
其中交织的所述比率基于以下中的一个或多个:所述队列中块的保留时间、来自所述主机的命令的数量、要刷新的块的数量,以及用于执行刷新的可用空间。
11. 如技术方案1所述的方法,其中接收所述时间戳包括:
经由供应方唯一命令从所述主机接收所述时间戳。
12. 一种固态存储装置(SSD),包括:
非易失性存储设备以存储数据;以及
逻辑以:
从主机接收时间戳;
将所述时间戳存储在所述非易失性存储设备中;
基于相对于指示所述数据被写到所述一个或多个块的时间的第二时间戳的所述时间戳,确定存储在所述非易失性存储设备的一个或多个块中的数据的保留时间;以及
响应于所述保留时间超过阈值的确定,将所述数据移动到所述非易失性存储设备的一个或多个其它块。
13. 如技术方案12所述的SSD,其中从所述主机的所述时间戳的所述接收响应于对所述SSD通电或所述SSD退出低功率状态。
14. 如技术方案12所述的SSD,其中从所述主机的所述时间戳的所述接收还响应于在对所述SSD通电之后或者在由所述SSD退出低功率状态之后的第一输入/输出(I/O)命令。
15. 如技术方案12所述的SSD,其中所述逻辑还要:
对于多个超级块中的每个,存储指示数据被写到给定超级块的时间的时间戳和写到所述给定超级块的所述数据的所述保留时间。
16. 如技术方案15所述的SSD,其中所述逻辑还要:
响应于对所述SSD通电或所述SSD退出低功率状态,扫描所述多个超级块的数据保留时间;以及
响应于确定所述多个超级块中的一个或多个的所述保留时间超过阈值,将所述数据从所述多个超级块中的所述一个或多个移动到一个或多个其它超级块。
17. 如技术方案15所述的SSD,还包括:
易失性存储器;
其中响应于进入低功率状态或对所述SSD断电,所述逻辑要将所述多个超级块中的每个的所述时间戳和保留时间存储在所述非易失性存储器中;以及
其中响应于退出所述较低功率状态或对所述SSD通电,所述逻辑要将所述多个超级块中的每个的所述时间戳和保留时间从所述非易失性存储设备加载到所述易失性存储器。
18. 如技术方案12所述的SSD,其中所述逻辑包括用于所述SSD的固件。
19. 一种制品,包括计算机可读存储介质,所述计算机可读存储介质具有存储在其上的内容,所述内容在被访问时引起操作的所述执行来执行包括以下操作的方法:
从主机接收时间戳;
将所述时间戳存储在存储装置中;
基于相对于指示所述数据被写到所述一个或多个块的时间的第二时间戳的所述时间戳来确定存储在所述存储装置的一个或多个块中的数据的保留时间;以及
响应于确定所述保留时间超过阈值,将所述数据移动到所述存储装置的一个或多个其它块。
20. 如技术方案19所述的制品,其中从所述主机接收所述时间戳响应于对所述存储装置通电或所述存储装置退出低功率状态。

Claims (25)

1.一种方法,包括:
从主机接收时间戳;
将所述时间戳存储在存储装置中;
基于相对于指示所述数据被写到所述存储装置的一个或多个块的时间的第二时间戳的所述时间戳来确定存储在所述一个或多个块中的数据的保留时间;以及
响应于确定所述保留时间超过阈值,将所述数据移动到所述存储装置的一个或多个其它块。
2.如权利要求1所述的方法,其中从所述主机接收所述时间戳响应于对所述存储装置通电或所述存储装置退出低功率状态。
3.如权利要求2所述的方法,其中从所述主机接收所述时间戳还响应于在对所述存储装置通电之后或在退出所述低功率状态之后的第一输入/输出(I/O)命令。
4.如权利要求1所述的方法,还包括:
对于多个超级块中的每个,存储指示数据被写到给定超级块的时间的时间戳以及写到所述给定超级块的所述数据的所述保留时间。
5. 如权利要求4所述的方法,还包括:
响应于对所述存储装置通电或所述存储装置退出低功率状态,扫描所述多个超级块的数据保留时间;以及
响应于确定所述多个超级块中的一个或多个的所述保留时间超过阈值,将所述数据从所述多个超级块中的所述一个或多个移动到一个或多个其它超级块。
6. 如权利要求4所述的方法,还包括:
响应于进入低功率状态或对所述存储装置断电,将所述多个超级块中的每个的所述时间戳和保留时间存储在所述存储装置的非易失性存储设备中;以及
响应于退出所述较低功率状态或对所述存储装置通电,将所述多个超级块中的每个的所述时间戳和保留时间从所述非易失性存储设备加载到所述存储装置的易失性存储器。
7.如权利要求6所述的方法,其中将所述多个超级块中的每个的所述时间戳和保留时间存储在所述非易失性存储设备中包括:
将所述多个超级块中的每个的所述时间戳和保留时间存储在所述存储装置的一个或多个单层单元(SLC)超级块中。
8. 如权利要求1所述的方法,其中移动所述数据包括:
将所述一个或多个块放置在队列中以指示存储在所述一个或多个块中的数据的保留时间超过所述阈值;以及
交织来自所述主机的访问与来自所述队列的写。
9.如权利要求8所述的方法,其中将所述一个或多个块放置在所述队列中包括设置标志以识别所述一个或多个块并指示存储在所述一个或多个块中的数据的保留时间已超过所述阈值。
10.如权利要求9所述的方法,还包括:
调整交织来自所述主机的所述访问与来自所述队列的所述写的比率;
其中交织的所述比率基于以下中的一个或多个:所述队列中块的保留时间、来自所述主机的命令的数量、要刷新的块的数量,以及用于执行刷新的可用空间。
11.如权利要求1所述的方法,其中接收所述时间戳包括:
经由供应方唯一命令从所述主机接收所述时间戳。
12. 一种固态存储装置(SSD),包括:
非易失性存储设备以存储数据;以及
逻辑以:
从主机接收时间戳;
将所述时间戳存储在所述非易失性存储设备中;
基于相对于指示所述数据被写到所述一个或多个块的时间的第二时间戳的所述时间戳,确定存储在所述非易失性存储设备的一个或多个块中的数据的保留时间;以及
响应于所述保留时间超过阈值的确定,将所述数据移动到所述非易失性存储设备的一个或多个其它块。
13.如权利要求12所述的SSD,其中从所述主机的所述时间戳的所述接收响应于对所述SSD通电或所述SSD退出低功率状态。
14.如权利要求12所述的SSD,其中从所述主机的所述时间戳的所述接收还响应于在对所述SSD通电之后或者在由所述SSD退出低功率状态之后的第一输入/输出(I/O)命令。
15.如权利要求12所述的SSD,其中所述逻辑还要:
对于多个超级块中的每个,存储指示数据被写到给定超级块的时间的时间戳和写到所述给定超级块的所述数据的所述保留时间。
16. 如权利要求15所述的SSD,其中所述逻辑还要:
响应于对所述SSD通电或所述SSD退出低功率状态,扫描所述多个超级块的数据保留时间;以及
响应于确定所述多个超级块中的一个或多个的所述保留时间超过阈值,将所述数据从所述多个超级块中的所述一个或多个移动到一个或多个其它超级块。
17.如权利要求15所述的SSD,还包括:
易失性存储器;
其中响应于进入低功率状态或对所述SSD断电,所述逻辑要将所述多个超级块中的每个的所述时间戳和保留时间存储在所述非易失性存储器中;以及
其中响应于退出所述较低功率状态或对所述SSD通电,所述逻辑要将所述多个超级块中的每个的所述时间戳和保留时间从所述非易失性存储设备加载到所述易失性存储器。
18.如权利要求17所述的SSD,其中:
响应于进入所述低功率状态或对所述SSD断电,所述逻辑要将所述多个超级块中的每个的所述时间戳和保留时间存储在所述存储装置的一个或多个单层单元(SLC)超级块中。
19. 如权利要求15所述的SSD,其中移动该数据的逻辑要:
将所述一个或多个块放置在队列中以指示存储在所述一个或多个块中的数据的保留时间已超过所述阈值;以及
交织来自所述主机的访问与来自所述队列的写。
20.如权利要求19所述的SSD,其中将所述一个或多个块放置在所述队列中的所述逻辑要:
设置标志以识别所述一个或多个块并指示存储在所述一个或多个块中的数据的保留时间已超过所述阈值。
21.如权利要求9所述的SSD,其中所述逻辑要:
调整交织来自所述主机的所述访问与来自所述队列的所述写的比率;
其中交织的所述比率基于以下中的一个或多个:所述队列中块的保留时间、来自所述主机的命令的数量、要刷新的块的数量、以及用于执行刷新的可用空间。
22.如权利要求12所述的SSD,其中所述逻辑要经由供应方唯一命令从所述主机接收所述时间戳。
23.如权利要求12所述的SSD,其中所述逻辑包括用于所述SSD的固件。
24. 一种固态存储装置(SSD),包括:
非易失性存储设备以存储数据;以及
部件以:
从主机接收时间戳;
将所述时间戳存储在所述非易失性存储设备中;
基于相对于指示所述数据被写到所述一个或多个块的时间的第二时间戳的所述时间戳,确定存储在所述非易失性存储设备的一个或多个块中的数据的保留时间;以及
响应于所述保留时间超过阈值的确定,将所述数据移动到所述非易失性存储设备的一个或多个其它块。
25.如权利要求24所述的SSD,其中从所述主机的所述时间戳的所述接收响应于对所述SSD通电或所述SSD退出低功率状态。
CN201811352939.9A 2017-12-14 2018-11-14 使用存储装置中的***时间戳的后台数据刷新 Pending CN110045915A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/842,799 US11099760B2 (en) 2017-12-14 2017-12-14 Background data refresh using a system timestamp in storage devices
US15/842799 2017-12-14

Publications (1)

Publication Number Publication Date
CN110045915A true CN110045915A (zh) 2019-07-23

Family

ID=65137937

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811352939.9A Pending CN110045915A (zh) 2017-12-14 2018-11-14 使用存储装置中的***时间戳的后台数据刷新

Country Status (5)

Country Link
US (1) US11099760B2 (zh)
JP (1) JP7235226B2 (zh)
KR (1) KR20190071582A (zh)
CN (1) CN110045915A (zh)
DE (1) DE102018128601A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113515416A (zh) * 2021-04-26 2021-10-19 深圳忆联信息***有限公司 Ssd后台扫描的控制方法、装置、计算机设备及存储介质
CN113672450A (zh) * 2021-07-19 2021-11-19 荣耀终端有限公司 固态硬盘的处理方法和装置
CN114168077A (zh) * 2021-12-07 2022-03-11 深圳忆联信息***有限公司 固态硬盘的时间戳管理方法、装置、计算机设备及存储介质

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10855754B1 (en) 2018-07-16 2020-12-01 Amazon Technologies, Inc. Isolated read channel categories at streaming data service
US10768830B1 (en) * 2018-07-16 2020-09-08 Amazon Technologies, Inc. Streaming data service with isolated read channels
US10798140B1 (en) 2018-07-16 2020-10-06 Amazon Technologies, Inc. Stream data record reads using push-mode persistent connections
CN113383387A (zh) * 2019-01-29 2021-09-10 美光科技公司 存储器装置及其管理方法
US11899576B2 (en) * 2019-06-11 2024-02-13 Micron Technology, Inc. Dynamically modifying garbage collection rates for a memory subsystem in a closed-loop system
JP7321851B2 (ja) * 2019-09-09 2023-08-07 キオクシア株式会社 メモリシステムおよびガベッジコレクション制御方法
US11231863B2 (en) * 2019-12-19 2022-01-25 Micron Technology, Inc. Block family-based error avoidance for memory devices
TWI712045B (zh) * 2020-01-16 2020-12-01 慧榮科技股份有限公司 資料儲存裝置修復方法
JP2021121901A (ja) * 2020-01-31 2021-08-26 キオクシア株式会社 メモリシステムおよび制御方法
US11562792B2 (en) 2020-03-18 2023-01-24 Kioxia Corporation Memory system having a non-volatile memory and a controller configured to switch a mode for controlling an access operation to the non-volatile memory
JP2021149549A (ja) 2020-03-19 2021-09-27 キオクシア株式会社 ストレージ装置およびアドレス変換テーブルのキャッシュ制御方法
US11556257B2 (en) * 2020-08-14 2023-01-17 Micron Technology, Inc. Selectable wear life indicator based on data retention
US11422825B2 (en) * 2020-12-30 2022-08-23 Kioxia Corporation Determination of power-off duration of NVMe SSD
US11698751B2 (en) * 2021-06-07 2023-07-11 Western Digital Technologies, Inc. Data storage device and method for low-latency power state transitions by having power islanding in a host memory buffer
US11543993B1 (en) * 2021-06-17 2023-01-03 Western Digital Technologies, Inc. Fast garbage collection in zoned namespaces SSDs

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6493772B1 (en) * 1999-08-23 2002-12-10 International Business Machines Corporation System and method with guaranteed maximum command response time
US6513074B1 (en) * 2000-01-06 2003-01-28 International Business Machines Corporation SCSI bus intelligent listening device and method
EP1910928A2 (en) * 2005-08-03 2008-04-16 SanDisk Corporation Non-volatile memory with scheduled reclaim operations
US7984084B2 (en) * 2005-08-03 2011-07-19 SanDisk Technologies, Inc. Non-volatile memory with scheduled reclaim operations
US9727473B2 (en) * 2008-09-30 2017-08-08 Intel Corporation Methods to communicate a timestamp to a storage system
US8411519B2 (en) * 2010-06-04 2013-04-02 Apple Inc. Selective retirement of blocks
US8650353B2 (en) * 2011-07-01 2014-02-11 Intel Corporation Apparatus, system, and method for refreshing non-volatile memory
KR101596606B1 (ko) * 2011-08-19 2016-03-07 가부시끼가이샤 도시바 정보 프로세싱 장치, 정보 프로세싱 장치를 제어하는 방법, 제어 도구를 저장하는 비일시적 기록 매체, 호스트 디바이스, 성능 평가 도구를 저장하는 비일시적 기록 매체, 및 외부 메모리 디바이스를 위한 성능 평가 방법
JP2013047913A (ja) * 2011-08-29 2013-03-07 Toshiba Corp 情報処理装置、情報処理装置の制御方法、制御ツール、及びホスト装置
US8966343B2 (en) * 2012-08-21 2015-02-24 Western Digital Technologies, Inc. Solid-state drive retention monitor using reference blocks
US8898548B1 (en) * 2012-08-24 2014-11-25 Western Digital Technologies, Inc. Methods, data storage devices and systems having variable size ECC page size
JP2015001909A (ja) * 2013-06-17 2015-01-05 富士通株式会社 情報処理装置、制御回路、制御プログラム、および制御方法
US9165668B1 (en) * 2013-07-29 2015-10-20 Western Digital Technologies, Inc. Data retention monitoring using temperature history in solid state drives
DE112015000378T5 (de) * 2014-01-09 2016-09-22 Sandisk Technologies Inc. Selektives Rückkopieren für einen auf einem Chipplättchen gepufferten nichtflüchtigen Speicher
US9811457B2 (en) * 2014-01-16 2017-11-07 Pure Storage, Inc. Data placement based on data retention in a tiered storage device system
US20160093397A1 (en) * 2014-09-30 2016-03-31 Emc Corporation Method and system for improving flash storage utilization using read-threshold tables
US9547440B2 (en) * 2014-11-07 2017-01-17 International Business Machines Corporation Managing a set of blocks in a storage system
US9852799B2 (en) * 2014-11-19 2017-12-26 Sandisk Technologies Llc Configuration parameter management for non-volatile data storage
US9916237B2 (en) * 2014-12-12 2018-03-13 Sandisk Technologies Llc Model based configuration parameter management
US10048898B2 (en) * 2015-06-15 2018-08-14 Sandisk Technologies Llc Data retention in a memory block based on local heating
US20170062023A1 (en) * 2015-08-26 2017-03-02 Intel Corporation Systems and methods to rejuvenate nonvolatile memory using timestamps
KR102529696B1 (ko) * 2016-07-14 2023-05-10 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US10255179B2 (en) * 2016-12-30 2019-04-09 Western Digital Technologies, Inc. Garbage collection read throttling
US10824376B2 (en) * 2017-12-08 2020-11-03 Sandisk Technologies Llc Microcontroller architecture for non-volatile memory

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113515416A (zh) * 2021-04-26 2021-10-19 深圳忆联信息***有限公司 Ssd后台扫描的控制方法、装置、计算机设备及存储介质
CN113672450A (zh) * 2021-07-19 2021-11-19 荣耀终端有限公司 固态硬盘的处理方法和装置
CN114168077A (zh) * 2021-12-07 2022-03-11 深圳忆联信息***有限公司 固态硬盘的时间戳管理方法、装置、计算机设备及存储介质

Also Published As

Publication number Publication date
DE102018128601A1 (de) 2019-06-19
KR20190071582A (ko) 2019-06-24
JP7235226B2 (ja) 2023-03-08
JP2019106174A (ja) 2019-06-27
US11099760B2 (en) 2021-08-24
US20190034114A1 (en) 2019-01-31

Similar Documents

Publication Publication Date Title
CN110045915A (zh) 使用存储装置中的***时间戳的后台数据刷新
US11797180B2 (en) Apparatus and method to provide cache move with non-volatile mass memory system
CN104050114B (zh) 同步端口进入低功率状态的***、方法和设备
CN104063290B (zh) 处理超时的***、方法和装置
CN105653202B (zh) 一种用于逻辑存储管理的多级方案
US9727267B1 (en) Power management and monitoring for storage devices
US20180004659A1 (en) Cribbing cache implementing highly compressible data indication
CN108701108A (zh) 具有窄带宽中继器通道的存储器子***
CN109313617A (zh) 负载减少的非易失性存储器接口
CN107408099A (zh) 基于检测传感器数据的阻抗补偿
CN104052621A (zh) 用于跨快速***组件互连(pcie)段的平台管理消息的方法和***
CN107409056A (zh) 使用中继器选择性启用第一通信路径和第二通信路径
CN103377695A (zh) 存储***、存储器件、存储控制器及操作其的方法
CN104956347A (zh) 将一种互连协议的枚举和/或配置机制用于不同的互连协议
CN103810112A (zh) 一种非易失性内存***及其管理方法
CN104781885A (zh) 用于对行敲击事件进行响应的方法、装置和***
CN103455129A (zh) 计算机可读介质和计算处理装置
CN105849669A (zh) 用于单个通道内的dram空间联合的方法和装置
CN107408018A (zh) 用于在固态驱动器中适应垃圾收集资源分配的机制
US10095432B2 (en) Power management and monitoring for storage devices
CN110377224A (zh) 具有主机启动缓存区刷新的大容量存储设备
CN104781794A (zh) 用于非易失性存储器中的数据结构的暂时和持久状态之间的原地改变
CN104011689A (zh) 非易失性存储器损耗管理
US11150821B2 (en) Memory devices with multiple sets of latencies and methods for operating the same
CN107066068A (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