CN106164841A - 用于数据存储装置的非易失性半导体存储器的寿命延长 - Google Patents
用于数据存储装置的非易失性半导体存储器的寿命延长 Download PDFInfo
- Publication number
- CN106164841A CN106164841A CN201580016181.XA CN201580016181A CN106164841A CN 106164841 A CN106164841 A CN 106164841A CN 201580016181 A CN201580016181 A CN 201580016181A CN 106164841 A CN106164841 A CN 106164841A
- Authority
- CN
- China
- Prior art keywords
- data
- nvsm
- written
- dsd
- data volume
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
- G06F2212/1036—Life time enhancement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/21—Employing a record carrier using a specific recording technology
- G06F2212/217—Hybrid disk, e.g. using both magnetic and solid state storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/50—Control mechanisms for virtual memory, cache or TLB
- G06F2212/502—Control mechanisms for virtual memory, cache or TLB using adaptive policy
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7204—Capacity control, e.g. partitioning, end-of-life degradation
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
用于数据存储装置(DSD)的非易失性半导体存储器(NVSM)的寿命延长包括基于先前写入NVSM的数据量以及先前被请求写入DSD的数据量和先前被请求写入NVSM的数据量中的至少一个来确定写入放大率因子。基于该确定的写入放大率因子,将待写入NVSM的数据量的至少一部分定向或重新定向至磁盘。
Description
背景技术
数据存储装置(DSD)常常用于将数据记录到存储介质上或从存储介质复制数据。一些DSD包括多种类型的存储介质。例如,在固态混合硬盘(SSHD)的情况中,除旋转磁盘外,可以使用非易失性半导体存储器(NVSM)来存储数据,例如固态硬盘(SSD)、闪存、和/或NAND存储器。
主机可以相对频繁地访问SSHD中的NVSM。写入放大率(WA)是与NVSM有关的不良特点,写入到NVSM的物理数据的实际量大于主机将要写入的逻辑量。WA可以归因于各种因素,包括在NVSM中重新写数据和/或不止一次地移动(或重新写)数据之前擦除数据。由于NVSM的实际可使用寿命被限制到有限数量的程序擦除周期(PEC),所以通过在NVSM寿命期间增加所需的写入次数,WA缩短了NVSM的实际寿命。如果主机和/或控制器频繁地访问NVSM和/或WA太高,NVSM可能过早地遭受明显的或突然的性能下降。
附图说明
当结合附图时,本公开的实施例的特点和优点从以下阐述的详细描述中将变得更明显。提供附图和相关描述是为了说明本公开的实施例并且不用于限制要求保护的范围。
图1的方框图描述了根据一个实施例的一种具有数据存储装置(DSD)的系统。
图2的方框图描述了根据一个实施例的图1的DSD。
图3的方框图描述了根据一个实施例的被主机请求写入的数据与物理写入到非易失性半导体存储器(NVSM)的数据之间的关系。
图4的流程图描述了根据一个实施例的用于从NVSM向磁盘组重新定向数据的NVSM寿命延长过程。
图5的流程图描述了根据一个实施例的用于从NVSM向磁盘组重新定向数据的具有多个阶段的NVSM寿命延长过程。
图6的流程图描述了根据一个实施例的基于多个因子的从NVSM向磁盘组重新定向数据的NVSM寿命延长过程。
图7的流程图描述了根据一个实施例的基于数据优先级的从NVSM向磁盘组重新定向数据的NVSM寿命延长过程。
图8的图比较了根据一个实施例使用NVSM寿命延长过程的DSD的归一化性能和现有技术中已知的DSD的归一化性能。
具体实施方式
在以下详细说明中,阐述许多具体细节以提供本公开的全面理解。然而,对本领域普通技术人员之一将明显的是,所公开的不同实施例可以在不具有这些具体细节中的一些的情况下实践。在其他实例中,并未详细示出众所周知的结构和技术,以避免不必要地混淆各种实施例。
图1根据一个实施例示出了系统100,该系统包括主机101、输入装置102、显示装置104和数据存储装置(DSD)106。例如,系统100可以是计算机系统(例如,服务器、台式机、移动式/笔记本电脑、平板电脑、智能手机等)或其他电子装置,例如数字视频录像机(DVR)。就这一点而言,系统100可以是一个独立系统或网络(例如网络50)的一部分,例如该网络可以是局域网或广域网或因特网。
本领域的普通技术人员将认识到的是,系统100能够包括比图1所示的那些元件更多或更少的元件,并且所公开的过程能够在其他环境中实施。
输入装置102能够是键盘、滚轮、或定点装置,它允许系统100的用户向系统100输入信息和命令,或允许用户操纵显示装置104上显示的对象。在其他实施例中,输入装置102和显示装置104可以结合到单一组件中,例如显示对象并接收用户输入的触摸屏。
在图1的实施例中,主机101包括中央处理单元(CPU)108,中央处理单元(CPU)108能够使用用于执行指令的一个或更多个处理器来实施,这些处理器包括微控制器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、硬连线逻辑、模拟电路系统和/或其组合。CPU 108与主机总线112接合。还与主机总线112接合的是随机访问存储器(RAM)110、输入装置102的输入接口114、显示装置104的显示器接口116、只读存储器(ROM)118、网络接口111、以及DSD 106的数据存储接口119。
RAM 110是主机101的易失性存储器,它与主机总线112接合以便在执行软件程序(例如操作系统(OS)10、DSD驱动器12、或应用程序16)中的指令期间向CPU 108提供RAM 110中存储的信息。更具体地,CPU 108首先将计算机可执行指令从DSD 106或另一个DSD加载到RAM 110的区域中。然后CPU 108能够执行来自RAM 110的已存储的过程指令。数据(诸如将要存储在DSD 106中的数据或从DSD 106检索的数据)还能够存储在RAM 110中,这样该数据能够在执行软件程序期间由CPU 108访问,只要这些软件程序需要访问和/或修改数据。
如图1所示,DSD 106能够被配置为存储以下内容的一个或更多个:OS 10、DSD驱动器12、DSD固件14、以及应用程序16。DSD驱动器12在主机101上为DSD 106提供软件接口。DSD固件14包括用于DSD 106的计算机可执行指令,在由DSD 106的控制器(例如图2中的控制器120)执行时,该指令控制DSD 106的操作。
例如,应用程序16能够是由主机101使用的程序,该程序作为工具用于接合DSD106或DSD 106的一部分。在一个实施方式中,应用程序16是用于DSD 106的辅助存储装置的应用程序,该辅助存储装置包括固态存储器(即图2中的非易失性半导体存储器(NVSM)142)和用于固态存储器的控制器(即图2中的控制器120)。在这种实施方式中,应用程序16的使用能够为主机101提供与DSD 106的固态存储器有关的诊断和使用信息。
数据存储接口119被配置为将主机101与DSD 106接合并且根据串行高级技术附件(SATA)标准来接合。在其他实施例中,数据存储接口119能够利用其他标准与DSD 106相接合,例如串行总线(PCI express)(PCIe)或串行附接SCSI(SAS)。
尽管图1描述主机101和DSD 106位于同一处,但在其他实施例中这两者不需要物理上位于同一处。在这种实施例中,DSD 106可以远离主机101并通过网络接口(例如网络接口111)连接至主机101。
图2根据一个实施例示出了电子系统100,该系统包括主机101和与主机101进行通信的数据存储装置(DSD)106。
在图2的实施例中,DSD 106是固态混合硬盘(SSHD),其包括磁性记录介质(例如,磁盘组134中的磁盘)和固态记录介质(例如,用于存储数据的NVSM 142)。在其他实施例中,除了一个或更多个磁盘组134之外,DSD 106能够包括至少一个SSHD。在其他实施例中,磁盘组134的每一个或NVSM 142可以分别由多个硬盘驱动器(HDD)或多个固态硬盘(SSD)替代,因此DSD 106包括HDD和/或SSD池。
尽管本文的描述通常指的是固态存储器,但应当理解的是固态存储器可包括各种类型存储装置中的一个或更多个,例如闪速集成电路、硫系化合物RAM(C-RAM)、相变存储器(PC-RAM或PRAM)、可编程金属化单元RAM(PMC-RAM或PMCm)、相变化记忆体(OUM)、电阻RAM(RRAM)、NAND存储器(例如,单层单元(SLC)存储器、多层单元(MLC)存储器、或其任意组合)、NOR存储器、EEPROM、铁电存储器(FeRAM)、磁阻RAM(MRAM)、其他分立NVM(非易失存储器)芯片、或其任意组合。
DSD 106包括控制器120,该控制器120包括用于执行指令的电路系统(例如一个或更多个处理器),并且能够包括微控制器、DSP、ASIC、FPGA、硬连线逻辑、模拟电路系统和/或其组合。在一个实施方式中,控制器120能够包括片上系统(SoC)。在一个实施例中,可以使用NVSM控制器,该NVSM控制器与控制器120协同操作。
主机接口126被配置为接合DSD 106和主机101并且可以根据例如串行总线(PCIe)、串行高级技术附件(SATA)、或串行附接SCSI(SAS)的标准来连接。如本领域的普通技术人员将会理解的是,主机接口126能够作为控制器120的一部分被包含。尽管图2描述主机101和DSD 106位于同一处,但在其他实施例中这两者不需要物理上位于同一处。在这种实施例中,DSD 106可以远离主机101并通过网络接口连接至主机101。
在图2的示例中,DSD 106包括布置在磁盘组134中的旋转磁盘,该磁盘组由主轴电机(SM)138来转动。DSD 106还包括连接至致动器130的末端的头堆组件(HSA)136,致动器130由音圈电机(VCM)132来转动以便相对于磁盘组134定位(position)HSA 136。控制器120能够包括伺服控制电路系统(未示出)以分别利用VCM控制信号30和SM控制信号34来控制HSA 136的位置和磁盘组134的旋转。DSD 106可以包括存储在磁盘组134和/或NVSM 142上的固件。固件能够包括计算机可读指令,这些计算机可读指令由DSD 106使用以控制DSD106的操作。
磁盘组134包括多个磁盘,它们径向对齐以便围绕SM 138旋转。磁盘组134中的每个磁盘包括用于存储数据的若干径向间隔的、同轴磁道。HSA 136包括多个磁头,每个磁头被排列以从磁盘组134中的相应磁盘表面读取数据并向其写入数据。
数据还可以存储在包括非易失性缓存18的NVSM 142中。在一个实施例中,非易失性缓存18用于存储缓存的数据,缓存数据可以是与磁盘组134上的逻辑块地址(LBA)的所选范围的数据相同的数据或是其最新的备份。缓存数据能够包括仅存储在NVSM 142中的数据和/或是针对具体逻辑地址(诸如LBA)的最新写入的数据版本。这些缓存数据可以称为“脏数据”,通过将脏数据写入针对逻辑地址的磁盘组134,脏数据与磁盘组134周期性地同步。在一个示例中,脏数据可以由延迟的写操作产生,其中将要写入磁盘组134的数据首先存储在NVSM 142中。
DSD 106还可以包括易失性存储器140。易失性存储器140能够包括例如动态随机存取存储器(DRAM),该存储器能够由DSD 106使用以暂时存储数据。易失性存储器140中存储的数据能够包括从非易失性存储器(NVM)(其可以包括磁盘组134和NVSM 142)读取的数据、将要写入到NVM的数据、从固件加载用于由控制器120执行的指令、和/或执行固件时使用的数据。
在操作中,主机接口126通过主机接口126从主机101接收主机读命令和写命令以便从NVM(诸如NVSM 142和磁盘组134)读取数据并向其写入数据。响应于来自主机101的写命令,控制器120可以在易失性存储器140中针对该写命令缓冲将要写入的数据。
对于将要写入磁盘组134的数据,控制器120的读/写信道(未示出)随后可以将缓冲数据编码为写信号32,写信号32被提供给HSA 136的磁头用于磁性地将数据写到磁盘组134的磁盘表面。
响应于对存储在磁盘组134的磁盘表面上的数据的读命令,控制器120控制HSA136的磁头以磁性地读取存储在磁盘组134的表面上的数据并作为读信号32发送读取的数据。然后控制器120的读/写信道124能够解码数据并将其缓冲至易失性存储器140中用于通过主机接口126传输至主机101。
对于在NVSM 142中存储的数据,控制器120从主机接口126接收数据并可以在易失性存储器140中缓冲数据。在一个实施方式中,随后将该数据编码为电荷值,用于对NVSM142的单元(cell)(未示出)进行充电以存储数据。
响应于对存储在NVSM 142中的数据的读命令,在一个实施方式中,控制器120读取NVSM 142中的单元的当前值并将当前值解码为数据,该数据能够传送至主机101。在通过主机接口126向主机101传送该数据之前,该数据可以由控制器120缓冲。
图3的框图根据一个实施例描述在系统300中被主机101请求写入的数据(Ch)与实际写入到NVSM 142的结果数据(Cn)之间的关系。
在一个实施方式中,主机101和/或控制器120可以频繁地访问NVSM 142以读取或写入NVSM 142中存储的被频繁访问的某些文件。主机101可以每天请求将一定平均量的数据(例如,Ch千兆字节(GB)的数据)写入到DSD106。例如,Ch可以依赖于主机的用户请求被写入的数据。控制器120从主机101接收数据写请求。控制器120试图将Chn数据写到NVSM 142以及将Chd数据写入到磁盘组134。实际写入到磁盘组134的数据量是Cd。由于系统写入放大率(SWAF),实际写在NVSM 142上的数据量(例如,物理地写到NVSM 142的数据是Cn GB)大于主机101或控制器120请求写在NVSM 142上的数据量(Chn)。在一个实施例中,可以基于Ch和Cn或基于Chn和Cn适应性地确定写入放大率。
NVSM 142的寿命依赖于写在NVSM 142上的总写入放大率因子(WAFt)。WAFt定义Chn和Cn之间的关系如下:Cn=Chn*WAFt,因此WAFt是Cn/Chn的比率。在其他实施例中,反比例或至少Cn与Chn之间的数学和/或逻辑关系可用于确定WAFt。除了WAFt的写入放大率因子可以影响Cn与Chn或Cn与Chn之间的关系。可替代地,另一个写入放大率因子可以基于Cn与Ch或Cn与Chn之间的关系来确定,该关系可以合并在主机101请求写数据与数据物理写入到NVSM 142之间的不同阶段上的各种因子。例如,写入放大率因子可以考虑WAFt 150、WAFn 148(以下进一步定义)、缓存写入放大率、固件写入放大率因子(即,WAFfm 144,以下进一步定义)、其他放大率参数、和/或它们的组合。
在图3的实施例中,控制器120操作固件用于写一定量的数据(例如,Cf GB的数据)至NVSM 142中。由于操作(诸如修剪指令(Trim Command)、数据迁移、或延期的写入的执行)造成的固件写入放大率,Cf大于将要被写入到NVSM 142的Ch的一部分(例如,Chn)。例如,修剪指令可以允许OS通知NVSM 142数据的哪些区块不再考虑使用并且当在NVSM 142中存储无效或废弃数据时进行标记。然而,在更新NVSM的间接表时,执行这种修剪指令能够带来额外的写开销。在一个实施例中,可以将WAFfm 144定义为Cf/Chn的比率。在其他实施例中,反比例或Cf与Chn或Cf与Chn之间的数学和/或逻辑关系可用于确定WAFfm 144。
部分由于WAFn 148,物理写入到NVSM 142的数据(例如,每天Cn GB的数据)大于Cf。更具体地,可以将WAFn 148定义为Cn/Cf的比率。由此,在Cn、Ch、与写入放大率因子之间可以存在以下关系:
Cn=Cf*WAFn,Cf=Chn*WAFfm,Cn=Chn*WAFfm*WAFn,以及WAFt=WAFfm*WAFn。
在其他实施例中,至少Cn与Cf之间的不同数学和/或逻辑关系可用于分析NVSM 142的写入放大率和/或WAFn 148。
控制器120可以获得与NVSM 142有关的某些信息以确定以上写入放大率因子(例如,WAFt 150)。在一个实施方式中,监控系统用于监控、检测和上报各种可靠性指标,这些指标能够用于预料NVSM 142和/或磁盘组134中的故障。在这种实施方式中,能够从第一参数和第二参数计算WAFn 148(以及因此计算WAFt 150),监控系统可以提供与NVSM 142有关的第一参数和第二参数。这种监控系统可以是定制系统,或可以基于标准化的协议,例如自我监控、分析及报告技术(SMART)。例如,第一参数可以对应于编程擦除周期(PEC)的百分率。例如,第一参数可以是以0.01%为单位的。写入到NVSM 142的总字节数可以被确定为(PEC%)*(NVSM 142的容量)*(PEC规格),其中对于多层单元分区,PEC规格可以是常数,例如1500。如本领域的普通技术人员理解的是,在不同实施方式中能够使用其他参数。
从固件或控制器120的角度看,SMART提供的第二参数可以是例如写入的总LBA。控制器120可以用作主机,以请求写入到NVSM 142的信息。控制器120请求写入的总数据量能够被定义为第二参数乘以扇区大小。
可以基于PEC的阈值数进一步确定NVSM 142的实际寿命。就此而言,当达到PEC的阈值数时,NVSM 142到达了其实际寿命的终点。NVSM 142的寿命可以依赖于以上讨论的写入放大率因子以及如何频繁地访问NVSM 142。例如,一旦PEC的数达到PEC的总数的95%(例如第一参数),NVSM 142就可能到达了寿命模式的终点。在这种实施方式中,NVSM 142的耐用度可以定义为:
耐用度=95%*(NVSM 142的容量)*PEC规格。
在其他实施方式中,可以使用其他阈值、百分率、或值来定义NVSM 142的寿命终点。
例如,如果主机101每天向DSD 106写ChGB的数据,实际上向NVSM 142写入了Cn GB的数据。可以将NVSM 142的寿命(按照天数Z)计算为:
Z=(NVSM耐用度)/Cn=(95%*(NVSM 142容量)*1500)/(Ch*WAFfm*WAFn)。
例如,如果NVSM 142的数据容量是16GB,PEC规格为1500,耐用度可以定义如下:95%*16G*1500=22兆兆字节写入(TBW)。在这种示例中,WAFfm 144可以是0.73,Ch是20GB/天,并且WAFn范围从1.1到2.2。在此示例中,NVSM 142的实际寿命范围可以计算如下:
NVSM 142的实际寿命的上界=(22TB*1024)/(20GB*0.73*1.1)=1402天=3.8年。
NVSM 142的实际寿命的下界=(22TB*1024)/(20GB*0.73*2.2)=701天=1.9年。
如以下更为详细讨论的,通过监控以上讨论的放大率因子并引导被请求写到NVSM142的数据的一部分写到磁盘组134上来延长NVSM 142的寿命,这通常是可能的。在一个实施例中,可以通过改变WAFn 148并由此改变WAFt 150来延长NVSM 142的寿命。
图4的流程图根据一个实施例描述了用于从NVSM向磁盘组重新定向数据的NVSM寿命延长过程。在框402,控制器120从主机101接收写请求以便将数据写到DSD 106,该数据包括被请求写到NVSM 142的数据。在框404,基于先前写入NVSM 142的数据量以及先前被请求写入到DSD 106的数据量和先前被请求写入到NVSM 142的数据量中的至少一个,控制器120确定写入放大率因子。在框406,基于确定的写入放大率因子,控制器120将被请求写到NVSM的数据的至少一部分重新定向至磁盘。在一些实施例中,主机上的处理器可以执行类似的过程,并且可以将DSD 106配置为提供数据,这些数据是支持该处理器所执行动作所必需的。
图5的流程图根据一个实施例描述了控制器120能够执行的NVSM寿命延长过程500。如图5所示,NVSM寿命延长过程500包括用于将数据从NVSM 142重新定向到磁盘组134的多个阶段。换言之,要写入到NVSM 142的数据可以重新定向写到旋转介质,例如磁盘组134。因为数据重新定向至磁盘组134可能影响DSD 106的性能,所以重新定向可以在图5中所示的各种阶段中执行。在图5的实施例中,相比于较早阶段,重新定向数据的量在后面的阶段中逐渐增加。在其他实施例中,重新定向数据的量可以保持不变或相比于较早阶段在后面阶段中降低。例如,在后面阶段中保持或降低重新定向的数据的决定可以是基于确定的写入放大率因子、数据碎片、性能目标、和/或功耗目标的。
如框502所示,NVSM寿命延长过程500可以包括初始阶段,在初始阶段中数据不从NVSM 142重新定向至磁盘组134。在DSD 106最初用于用户和/或主机101写入时可以开始初始阶段。在初始阶段中,NVSM寿命延长过程500采集信息以确定以上针对图5所讨论的写入放大率因子。例如,可以采集信息以确定WAFn 148和/或WAFt 150。
如框504中所示,NVSM寿命延长过程500确定是否请求将一定量的数据x写到DSD106。当该一定量的数据x写到DSD 106时,NVSM寿命延长过程500从初始阶段(即框502)移至第一阶段(即框506)以便将数据从NVSM 142重新定向至磁盘组134。
x的值是设计选择,并且可以是预定的或自适应的。在一个实施例中,在框502中的x对应于写入到NVSM 142的数据量。可以将x的值设置的足够高,这样能够获得足够的信息来计算写入放大率因子。在最初用于解释性能的退化和/或由重新定向数据导致的额外功耗过程中,确定的一个写入放大率因子或更多个写入放大率因子在降低NVSM 142的寿命方面可以不会有太大问题。例如,从NVSM 142向磁盘组134重新定向数据可以增加磁盘组134的总旋转时间,从而在整体上磁盘组134和DSD 106产生较高的功耗。另外,从磁盘组134访问重定向数据可能比从其在NVSM 142中的最初意向位置访问数据要耗费更长时间。因此,如果确定的一个写入放大率因子或更多个写入放大率因子未证明重新定向数据是合理的,就可以在初始阶段避免功耗上不必要的增加和/或性能上的下降。
如图5所示,NVSM寿命延长过程500可以周期地检查数据量x是否已经写到DSD106,并且如果此条件未满足,可以不将数据重定向至磁盘组134。例如,可以将x确定为1兆兆字节(TB),以便写入放大率因子被确定并与目标写入放大率阈值相比较,如果平均日使用是20GB,写入放大率因子大概每51天与目标写入放大率阈值相比较。在图5的实施例中,x可以从主机101的视角来确定(例如,从x的上一次确定之后,根据被主机101请求写入的数据)。在其他实施例中,代替x或除x以外,可以考虑从最初使用DSD 106的时段。例如,NVSM寿命延长过程500可以识别从最初使用DSD 106已经过去了51天,并且可以从最初阶段移至阶段1。仍然在其他实施例中,可以分析x和时段两者以确定NVSM寿命延长过程500是否应该移至下一个阶段。
在框506,一旦框504中的条件满足,NVSM寿命延长过程500进入阶段1。在阶段1,被请求写入到NVSM 142的数据的一部分可以重新定向写入磁盘组134。例如,第一阶段重新定向的部分可以依据被请求写入到NVSM 142的数据的百分比(记为y1%)。例如,当DSD 106位于第一阶段1(框506)时,主机101可以请求15GB的数据写入到NVSM 142。如果y1%被设置在20%,那么就将15GB数据的3GB或20%重新定向写入到磁盘组134。在另一个实施例中,y1%可以是10%。本发明的各种实施例不限于本文描述的百分率值,这些百分率值仅作为示例提供。可以使用基于设计关注的各种其他部分或百分率,例如它们在性能和/或功耗上的预期效果。
在框508,NVSM寿命延长过程500周期地检查当前确定的写入放大率因子是否满足目标写入放大率值。如图5的框508中所示,确定的写入放大率因子例如可以是WAFt 150。在其他实施例中,还可以考虑缓存写入放大率因子和/或其他写入放大率因子,并且如以上针对图3讨论的,将缓存写入放大率因子和/或其他写入放大率因子与目标写入放大率值进行比较。
参考框508,WAFt 150可以与目标写入放大率值进行比较。如果WAFt 150小于目标写入放大率值,NVSM寿命延长过程500保留在当前阶段以防止不必要的性能退化和/或功耗增加。
如以上参考框504讨论的,WAFt 150的确定和/或WAFt 150与目标写入放大率值的比较可以从上一次计算和比较开始有一定量的数据已经写入DSD 106或NVSM 142之后执行。例如,在主机101请求x数据量写入到DSD 106之后,可以从控制器120向NVSM 142(或NVSM 142的控制器)发送请求,并且NVSM 142可以回报自从先前的请求之后实际写入到NVSM 142的数据量。还可以确定自从先前的请求之后被请求写入到NVSM 142的数据量。例如WAFt和/或其他写入放大率因子可以基于以上参考图3所讨论的前述值进行更新。
在其他实施例中,从WAFt 150的先前计算或WAFt 150与目标写入放大率值的先前比较之后,在已经经过预定时间量之后,控制器120可以在框508中重新计算WAFt 150。仍然在其他实施例中,可以分析预定时间和数据量x以确定是否移向下一个阶段。
参考框508,如果确定的当前WAFt 150大于目标写入放大率值,NVSM寿命延长过程500可以移至阶段2以便在未达到目标写入放大率值时重新定向较高百分率的数据。数据的百分率可以是例如y2%,该百分率表示在阶段2中重新定向至磁盘134的期望写入NVSM 142的数据的一部分。如框510中所示,在阶段2中数据的y2%(其大于y1%)被重新定向至磁盘组134。
在以上针对框504讨论的实施例中,在x写入和/或经过预定时间量之后,NVSM寿命延长过程500从初始阶段移至阶段1。在另一个实施例中,类似于以上针对于框508描述的过程,在x写入和/或经过预定时间量之后,如果未达到目标写入放大率值,在x写入和/或经过预定时间量之后NVSM寿命延长过程500从初始阶段移至阶段1。在这种实施例中,如果达到了目标写入放大率值,NVSM寿命延长过程500保留在初始阶段中。
在框512,可以如以上针对框508所讨论的来确定WAFt 150或其他写入放大率因子。目标写入放大率值对于阶段1和2可以是相同的。在另一个实施例中,基于设计参数,例如性能和功耗目标(其在阶段1和2之间可能存在差异),对于阶段2目标写入放大率值可以是不同的。
如图5中所示,框516中的阶段N是NVSM寿命延长过程500的最后阶段。在图5的实施例中,在每个阶段上重新定向的百分率逐渐增加,直到到达最后一个阶段,其中在该最后阶段中yn%=100%,所有的数据都重新定向到磁盘组134。在另一个实施例中,yn%可以小于数据的100%,这样NVSM 142仍然可操作用于写数据。
尽管以上讨论了控制器120进行的数据重新定向,但相反在其他实施例中,数据可以由主机101重新定向至磁盘组134以延长NVSM 142的寿命。
NVSM寿命延长过程500的各种参数可以提前确定或基于DSD 106的操作自适应地调整。例如,可以基于当前性能和/或功耗调整各种参数。在初始阶段(例如,框502),将数据重新定向至磁盘之前,NVSM 142和磁盘组134可能消耗一定量的功率。由于更多的数据定向至磁盘组134,操作磁盘组134所消耗的功率可能增加,因为例如SM 138必须消耗较高的能量以旋转磁盘组134从而写入额外的重定向数据。在某个阶段(例如,框516的阶段N),写操作可以完全转移到磁盘。另外,可以基于功耗和性能目标来调整x或写入放大率因子决定之间的时间量。
如图5中所示,NVSM寿命延长过程500只是在一个方向上向后面的阶段进行。在另一个实施例中,如果确定当前阶段从NVSM 142向磁盘组134重新定向了太多数据,NVSM寿命延长过程可以移至先前阶段。例如,移至先前阶段的决定可以基于确定的写入放大率因子、数据碎片、性能目标、和/或功耗目标。
图6的流程图根据一个实施例描述了基于多个因子(f1、f2、...fn)的用于从NVSM142向磁盘组134重新定向数据的NVSM寿命延长过程600。
在框652,对DSD 106供电以便读和/或写数据至DSD 106。在框654,控制器120和/或主机101可以加载与NVSM寿命延长过程600有关的设置。加载的设置可以包括存储的统计数据和先前存储到DSD 106的信息。例如,可以加载当前阶段和确定的写入放大率因子。
类似于框508,框608可以确定是否达到了目标写入放大率值。例如,在框660,如以上针对图5所讨论的,NVSM寿命延长过程600确定是否已经写入数据量x。如果是,NVSM寿命延长过程600移至框662。在框662,如果当前确定的WAFt 150大于目标或期望的写入放大率值,NVSM寿命延长过程600移至框610。
在框610,可以考虑并分析各种因子(f1、f2、...、fn)以确定应该从NVSM 142重新定向什么类型的数据和多少数据量至磁盘组134。例如,如果数据的y%将在给定阶段重新定向,可以考虑因子f1、f2、...、fn来明确地确定哪些数据应当重新定向至磁盘组134。例如,除了或替代以下针对图5所讨论的优先级信息,可以考虑数据使用的频率来确定重新定向至磁盘组134的数据的类型。
重新定向数据的量和/或类型还可以是基于NVSM 142的延迟需求。当从磁盘组134而非从NVSM 142访问数据时,访问数据的延迟可能增加。例如,通过确定当前电源模式,数据的重新定向还可以是基于NVSM 142和/或磁盘组134的功率要求。例如,如果磁盘当前不旋转,可以不从NVSM 142重新定向以节约电能。
重新定向数据的量和/或类型还可以是基于命令的空间位置的。例如,数据可以不重新定向至磁盘组134以避免碎片和/或其他不良的效果。数据的重新定向可以依赖于各种其他因素,例如缓存算法和策略。
在框672,在DSD 106断电之前,更新或保存NVM设置的统计数据和信息。这些设置可以涉及例如确定的f1、f2、...、fn和/或先前重新定向的数据的数量或类型的特征。例如,可以更新并保存以上针对框652讨论的加载信息以备当DSD 106再次供电时用于将来使用。
图7的流程图根据一个实施例描述了基于数据优先级的用于从NVSM 142向磁盘组134重新定向数据的NVSM寿命延长过程700。如以上针对图5和6讨论的,数据的优先级可以从主机101(例如通过驱动器)发送至控制器120。如图7中所示,NVSM寿命延长过程700基于优先级信息来确定在每个阶段中被重新定向的数据的类型。因为数据被重新定向到磁盘组134,DSD 106的性能或功耗最初作为延长NVSM 142的寿命的交换可能受到负面影响。
通过首先将较低优先级数据重新定向到磁盘组134,相比于不考虑优先级信息而重新定向数据,NVSM寿命延长过程700能够提高性能和/或降低功耗。
在框752,例如,如以上针对图6的框652所讨论的,为DSD 106供电。在框754,例如,如以上针对图6的框654所讨论的,加载NVSM寿命延长过程700的设置和参数。这些设置和参数可以包括先前存储的优先级信息。
类似于框508和608,框708可以定期地确定是否达到了目标写入放大率因子。主机101可以发送请求,以便如以上针对图6讨论的将数据和与数据相关的优先级信息一起写到DSD 106。例如,可以有从0(最低优先级)到7(最高优先级)分层的多层优先级。基于设计需求,可以使用其他优先级层和优先级信息类型。例如,可以指示系统文件具有比用户数据高的优先级。主机101可以指示向可执行文件(例如,*.exe文件)和/或动态链接库(*.dll)文件分配高优先级。
在定义优先级时,还可以考虑数据使用的频率,以便给予更频繁被访问的数据以较高优先级。然而,可以为某些类型的数据分配高优先级,而不管它的访问频率,例如用于启动主机101的数据,可以为该数据分配较高优先级,即使主机101的启动可能不经常发生。优先级信息还可以是基于缓存算法和策略的。
参考框758,NVSM寿命延长过程700记录每个阶段中的每个优先级等级的比率。例如,能够根据主机101和/或控制器120请求写入到NVSM 142的总数据量来表示该比率。
参考框760,如以上针对图5和6所讨论的,NVSM寿命延长过程700可以确定是否已经写入数据量x。如果是,NVSM寿命延长过程700移至框762。在框762,如果当前确定的WAFt150大于目标或期望的写入放大率值,NVSM寿命延长过程700移至框710。
在框710,在每个阶段基于优先级信息重新定向数据。如以上针对图6的框610所讨论的,优先级信息可以包括f1、f2、...、fn因子中的一个。
参考框764,在每个阶段,将欲写入NVSM 142的一定百分率(y%)的数据重新定向至磁盘组134。例如,如以上针对图5和6所讨论的,y%可以是分别对应于阶段1、2、...、N的y1%,y2%,...,yn%的任何一个。为了重新定向y%的数据,NVSM寿命延长过程500首先重新定向与最低优先级有关的数据。在图7中,P1%对应于具有最低优先级的意在写入NVSM 142的数据的百分率。
在框766,NVSM寿命延长过程700确定是否具有足够的最低优先级的数据满足意在写入到NVSM 142的y%数据。如果是,NVSM寿命延长过程700可以在此阶段不重新定向较高优先级数据至磁盘组134。
参考框768,如果P1%的数据小于意在重新定向至NVSM 142的y%数据,那么就同样重新定向具有下一个较高优先级的数据。P2%对应于具有第二最低优先级的意在写入NVSM 142的数据的百分率。如果重新定向最低优先级数据和第二最低优先级数据对重新定向y%的总数据是足够的,在此阶段NVSM寿命延长过程700可以不重新定向任意较高优先级数据至磁盘组134。
参考框770,如果较低优先级数据的重新定向对于重新定向y%的数据是不够的,NVSM寿命延长过程700可以继续分析较高优先级数据级,直到它到达最高优先级。参考框772,在DSD 106断电之前,更新或保存NVM设置以备当再次对DSD 106供电时用于将来使用。
以上描述的NVSM寿命延长过程通常会提高DSD 106的长期可靠性,同时基于设计需求保持了性能和功率节约。没有这种NVSM寿命延长过程,NVSM 142可能很快达到了它的实际使用寿命的终点。
在一些实施例中,控制器120执行固件以实现以上针对图3-图7所描述的框。固件能够访问与NVSM 142有关的信息,以便确定一个写入放大率因子或更多个写入放大率因子。在其他实施例中,主机101的处理器实现以上针对图3-图7所描述的框,例如通过执行用于DSD 106的驱动器。仍在其他实施例中,可以使用主机101和控制器120两者以实现以上针对图3-图7所描述的框。
图8的曲线图比较了(1)根据一个示例实施例的使用NVSM寿命延长过程的DSD 106的归一化性能804和(2)不使用NVSM寿命延长过程的传统DSD的归一化性能802。图8中所示的性能表示每秒平均输入/输出操作(IOPS),对于两个DSD已经在最初使用时将IOPS归一化至1。如图8所示,传统DSD的归一化性能802最初保持较高水平的性能,但由于写入放大率,大约在NVSM使用的1.5年至2年之间突然变差。在图8所示的示例中,在第一个2.5年期间,期望至少是0.3的归一化性能。然而,通过使用NVSM寿命延长过程,归一化性能804表明根据一个实施例的相应DSD 106在使用2年后保持较高水平的性能,并且性能是逐渐降低的,以避免归一化性能802中所见的突然下降。3年后,归一化性能804在磁盘组134的性能水平上仍然基本恒定(例如,在4年和5年期间),因为在此示例中3年后可能不再使用NVSM 142。NVSM142的寿命期间的性能可以基于以上针对图1-图7讨论的设计参数和基于DSD 106的各种特性而变化。图8是作为NVSM 142的使用寿命延长的示例而提供的,目的是展示尽管在寿命延长过程下的性能可能较早地稍微下降,但通常防止了性能上的突然且过早的下降。
本领域那些普通技术人员将要认识到是,结合本文公开的示例所描述的各种示例性逻辑框、模块和过程可以实施为电子硬件、计算机软件、或两者的结合。而且,前述过程能够在使处理器或计算机实施或执行某些功能的计算机可读介质上体现。
为了清晰地展示硬件和软件的可交换性,以上已经就其功能概述了各种示例性组件、框和模块。是否将这些功能实施为硬件或软件依赖于具体应用和施加在整个系统上的设计约束。那些本领域普通技术人员可以针对于每个具体应用以不同的方式实施描述的功能,但不应当将这些实施决策解释为导致偏离本公开的范围。
与本文公开的示例相关联描述的各种示例性的逻辑框、单元、模块和控制器可以利用通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他可编程逻辑装置、分立的门或晶体管逻辑电路、分立的硬件组件、或设计用于实现本文描述的功能的它们的任意组合来实现或执行。通用处理器可以是微处理器,但在替代形式中,处理器可以是任意常规的处理器、控制器、微控制器、或状态机。还可以将处理器实施为计算装置的组合,例如DSP和微处理器的组合、多个微处理器,一个或更多个微处理器结合DSP核,或任意其他这类配置。
与本文公开的示例相关联描述的方法或过程的动作可以直接以硬件、以处理器执行的软件模块、或以两者结合的形式来体现。方法或算法的步骤还可以采用示例中提供的那些顺序的替代顺序来执行。软件模块可以驻留在RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移除介质、光介质、或本领域已知的任意其他形式的存储介质中。示例性存储介质连接至处理器,这样处理器能够从存储介质读取信息并向其写入信息。在替代形式中,存储介质可以集成到处理器上。处理器和存储介质可以驻留在专用集成电路(ASIC)中。
提供公开的示例实施例的前述描述是为了使得本领域普通技术人员中的任意个人能够制作或使用本公开中的实施例。对这些示例的各种修改对本领域的普通技术人员将是很显然的,并且在不偏离本公开的精神或范围的情况下本文公开的原理可以应用于其他示例。应当在所有方面将所描述的实施例考虑为仅作为本公开的范围的说明而非限制。
Claims (28)
1.一种数据存储装置即DSD,包括:
磁盘,其用于存储数据;
非易失性半导体存储器即NVSM,其用于存储数据;以及
控制器,其被配置用于:
从主机接收写请求,以便将数据写入所述DSD,所述数据包括被请求写入所述NVSM的数据;
基于先前写入所述NVSM的数据量和以下项中的至少一个来确定写入放大率因子:
先前被请求写入所述DSD的数据量,和
先前被请求写入所述NVSM的数据量;以及
基于确定的写入放大率因子,重新定向被请求写入所述NVSM的数据的至少一部分至所述磁盘。
2.如权利要求1所述的DSD,其中所述控制器进一步被配置为在多个连续阶段的一个当前阶段中重新定向被请求写入所述NVSM的数据的所述至少一部分。
3.如权利要求2所述的DSD,其中在所述当前阶段中被重新定向至所述磁盘的数据量小于在所述多个连续阶段的下一阶段中被重新定向至所述磁盘的数据量。
4.如权利要求2所述的DSD,其中在所述当前阶段中被重新定向至所述磁盘的数据量大于或等于在所述多个连续阶段的下一阶段中被重新定向至所述磁盘的数据量。
5.如权利要求2所述的DSD,其中所述控制器被进一步配置用于:
更新所述写入放大率因子;以及
如果所述写入放大率因子不满足目标写入放大率值,从所述当前阶段移至下一个阶段。
6.如权利要求5所述的DSD,其中所述控制器进一步被配置为在预定的数据量被请求写入所述DSD之后或在预定的数据量被请求写入所述NVSM之后更新所述写入放大率因子。
7.如权利要求5所述的DSD,其中所述控制器进一步被配置为在经过预定的时间段之后,更新所述写入放大率因子。
8.如权利要求1所述的DSD,其中所述控制器被进一步配置用于:
从所述主机接收优先级数据,所述优先级数据对应于被请求写入所述NVSM的数据;以及
基于接收的优先级数据,将被请求写入所述NVSM的数据的所述至少一部分重新定向至所述磁盘。
9.如权利要求8所述的DSD,其中所述控制器被进一步配置用于:
基于所述确定的写入放大率因子,确定将被重新定向至所述磁盘的目标数据量;
基于所述优先级数据,确定重新定向具有低优先级的数据是否会达到所述将被重新定向的目标数据量;以及
如果所述控制器确定重新定向具有低优先级的数据不会达到所述将被重新定向的目标数据量,向所述磁盘重新定向被请求写入到所述NVSM的数据,所述数据具有比所述低优先级高的优先级。
10.如权利要求1所述的DSD,其中所述控制器被进一步配置用于:
从所述主机接收频繁使用的数据,所述数据对应于被请求写入所述NVSM的数据;以及
基于接收的频繁使用的数据,重新定向将写入所述NVSM的数据的所述至少一部分。
11.如权利要求1所述的DSD,其中所述控制器进一步被配置为基于所述NVSM的当前功率模式和所述磁盘的当前功率模式中的至少一个重新定向将写入所述NVSM的数据。
12.一种操作数据存储装置即DSD的方法,所述数据存储装置包括非易失性半导体存储器即NVSM,所述方法包括:
从主机接收写请求,以便将数据量写入所述DSD,所述数据量包括被请求写入所述NVSM的数据量;
基于先前写入到所述NVSM的数据量和以下项中的至少一个来确定写入放大率因子:
先前被请求写入所述DSD的数据量,和
先前被请求写入所述NVSM的数据量;以及
基于确定的写入放大率因子,重新定向被请求写入所述NVSM的数据量的至少一部分至所述DSD的磁盘。
13.如权利要求12所述的方法,其中在多个连续阶段的当前阶段中将被请求写入所述NVSM的数据量的至少一部分重新定向至所述磁盘。
14.如权利要求13所述的方法,其中在所述当前阶段中重新定向至磁盘的数据量小于在所述多个连续阶段的下一阶段中被重新定向至所述磁盘的数据量。
15.如权利要求13所述的方法,其中在所述当前阶段中重新定向至磁盘的数据量大于或等于在所述多个连续阶段的下一阶段中被重新定向至所述磁盘的数据量。
16.如权利要求13所述的方法,进一步包括:
更新所述写入放大率因子;以及
如果所述写入放大率因子不满足目标写入放大率值,从所述当前阶段移至所述下一个阶段。
17.如权利要求16所述的方法,其中在预定的数据量被请求写入所述DSD之后或在预定的数据量被请求写入所述NVSM之后,执行更新所述写入放大率因子。
18.如权利要求16所述的方法,其中在经过预定的时间段之后更新所述写入放大率因子。
19.如权利要求12所述的方法,进一步包括从所述主机接收优先级数据,所述优先级数据对应于被请求写入所述NVSM的数据,其中所述重新定向被请求写入所述NVSM的数据量的至少一部分至所述磁盘是基于接收的优先级数据。
20.如权利要求19所述的方法,进一步包括:
基于所述确定的写入放大率因子,确定将被重新定向至所述磁盘的目标数据量;以及
基于所述优先级数据,确定重新定向具有低优先级的数据是否会达到所述将被重新定向的目标数据量,
其中所述重新定向被请求写入所述NVSM的数据量的至少一部分至所述磁盘包括:如果重新定向具有低优先级的数据不会达到所述将被重新定向的目标数据量,向所述磁盘重新定向被请求写入到所述NVSM的数据,所述数据与比所述低优先级高的优先级关联。
21.如权利要求12所述的方法,进一步包括:
从所述主机接收对应于被请求写入所述NVSM的数据的频繁使用的数据,其中所述重新定向被请求写入所述NVSM的数据量的至少一部分至所述磁盘是基于接收的频繁使用的数据。
22.如权利要求12所述的方法,其中所述重新定向被请求写入所述NVSM的数据量的至少一部分至所述磁盘是基于所述NVSM的当前功率模式和所述磁盘的当前功率模式中的至少一个。
23.一种与数据存储装置即DSD通信的主机,所述DSD包括用于存储数据的磁盘和用于存储数据的非易失性半导体存储器即NVSM,所述主机包括:
接口,其用于从所述DSD接收先前写入所述NVSM的数据量;以及
处理器,其被配置用于:
基于先前写入到所述NVSM的数据量和以下项中的至少一个来确定写入放大率因子:
先前被请求写入所述DSD的数据量,以及
先前被请求写入所述NVSM的数据量;
确定将写入到所述DSD的数据量;以及
基于所述写入放大率因子,定向将写入到所述DSD的数据量的至少一部分至所述磁盘。
24.如权利要求23所述的主机,其中所述处理器进一步被配置为基于对应于将被写入到所述DSD的数据量的优先级数据,定向将写入到所述DSD的数据量的至少一部分至所述NVSM。
25.如权利要求23所述的主机,其中所述处理器进一步被配置为:如果所述写入放大率因子不满足目标写入放大率值,增加定向至所述NVSM的数据量。
26.一种将数据写入数据存储装置即DSD的方法,所述数据存储装置包括用于存储数据的磁盘和用于存储数据的非易失性半导体存储器即NVSM,所述方法包括:
从所述DSD接收先前写入所述NVSM的数据量;
基于先前写入到所述NVSM的数据量和以下项中的至少一个来确定写入放大率因子:
先前被请求写入所述DSD的数据量,以及
先前被请求写入所述NVSM的数据量;
确定将写入到所述DSD的数据量;以及
基于所述写入放大率因子,定向将写入到所述NVSM的数据量的至少一部分至所述磁盘。
27.如权利要求26所述的方法,其中定向将写入到所述NVSM的数据量的至少一部分至所述磁盘是基于对应于将写入所述NVSM的数据量的优先级数据。
28.如权利要求26所述的方法,其中如果所述写入放大率因子不满足目标写入放大率值,增加定向至所述磁盘的数据量。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201461969651P | 2014-03-24 | 2014-03-24 | |
US61/969,651 | 2014-03-24 | ||
US14/266,234 | 2014-04-30 | ||
US14/266,234 US9348520B2 (en) | 2014-03-24 | 2014-04-30 | Lifetime extension of non-volatile semiconductor memory for data storage device |
PCT/US2015/021850 WO2015148321A1 (en) | 2014-03-24 | 2015-03-20 | Lifetime extension of non-volatile semiconductor memory for data storage device |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106164841A true CN106164841A (zh) | 2016-11-23 |
Family
ID=54142140
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580016181.XA Pending CN106164841A (zh) | 2014-03-24 | 2015-03-20 | 用于数据存储装置的非易失性半导体存储器的寿命延长 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9348520B2 (zh) |
CN (1) | CN106164841A (zh) |
WO (1) | WO2015148321A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108052419A (zh) * | 2018-01-05 | 2018-05-18 | 哈尔滨学院 | 一种数据容灾的方法 |
CN112002368A (zh) * | 2020-07-29 | 2020-11-27 | 北京浪潮数据技术有限公司 | 固态硬盘的磨损度数据模拟方法、系统及相关设备 |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9652394B2 (en) * | 2015-02-16 | 2017-05-16 | Dell Products L.P. | System and method for managing a cache pool |
US10719236B2 (en) * | 2015-11-20 | 2020-07-21 | Arm Ltd. | Memory controller with non-volatile buffer for persistent memory operations |
CN105487823B (zh) * | 2015-12-04 | 2018-06-05 | 华为技术有限公司 | 一种数据迁移的方法及装置 |
US10296260B2 (en) * | 2016-11-09 | 2019-05-21 | Sandisk Technologies Llc | Method and system for write amplification analysis |
US10564888B2 (en) | 2016-11-09 | 2020-02-18 | Sandisk Technologies Llc | Method and system for visualizing a correlation between host commands and storage system performance |
US10521146B1 (en) * | 2017-11-09 | 2019-12-31 | Micron Technology, Inc. | UFS based idle time garbage collection management |
KR102528258B1 (ko) * | 2018-04-30 | 2023-05-04 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
US11074177B2 (en) * | 2019-06-19 | 2021-07-27 | Micron Technology, Inc. | Garbage collection adapted to host write activity |
US11086389B2 (en) | 2019-10-29 | 2021-08-10 | Western Digital Technologies, Inc. | Method and system for visualizing sleep mode inner state processing |
TWI791981B (zh) * | 2020-04-30 | 2023-02-11 | 群聯電子股份有限公司 | 資料寫入方法、記憶體控制電路單元以及記憶體儲存裝置 |
KR20210157157A (ko) * | 2020-06-19 | 2021-12-28 | 삼성전자주식회사 | 메모리 컨트롤러의 구동방법, 호스트의 구동방법 및 스토리지 장치 |
CN114115698A (zh) * | 2020-08-27 | 2022-03-01 | 伊姆西Ip控股有限责任公司 | 在存储系统中创建条带的方法、设备和计算机程序产品 |
Family Cites Families (92)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6856556B1 (en) | 2003-04-03 | 2005-02-15 | Siliconsystems, Inc. | Storage subsystem with embedded circuit for protecting against anomalies in power signal from host |
US7502256B2 (en) | 2004-11-30 | 2009-03-10 | Siliconsystems, Inc. | Systems and methods for reducing unauthorized data recovery from solid-state storage devices |
US7653778B2 (en) | 2006-05-08 | 2010-01-26 | Siliconsystems, Inc. | Systems and methods for measuring the useful life of solid-state storage devices |
US7765373B1 (en) | 2006-06-27 | 2010-07-27 | Siliconsystems, Inc. | System for controlling use of a solid-state storage subsystem |
US8108692B1 (en) | 2006-06-27 | 2012-01-31 | Siliconsystems, Inc. | Solid-state storage subsystem security solution |
US7509441B1 (en) | 2006-06-30 | 2009-03-24 | Siliconsystems, Inc. | Systems and methods for segmenting and protecting a storage subsystem |
US7447807B1 (en) | 2006-06-30 | 2008-11-04 | Siliconsystems, Inc. | Systems and methods for storing data in segments of a storage subsystem |
US8161227B1 (en) | 2006-10-30 | 2012-04-17 | Siliconsystems, Inc. | Storage subsystem capable of programming field-programmable devices of a target computer system |
US7809900B2 (en) | 2006-11-24 | 2010-10-05 | Sandforce, Inc. | System, method, and computer program product for delaying an operation that reduces a lifetime of memory |
US7747813B2 (en) | 2006-11-24 | 2010-06-29 | Sandforce, Inc. | Multi-memory device system and method for managing a lifetime thereof |
US7904672B2 (en) | 2006-12-08 | 2011-03-08 | Sandforce, Inc. | System and method for providing data redundancy after reducing memory writes |
US8549236B2 (en) | 2006-12-15 | 2013-10-01 | Siliconsystems, Inc. | Storage subsystem with multiple non-volatile memory arrays to protect against data losses |
US7596643B2 (en) | 2007-02-07 | 2009-09-29 | Siliconsystems, Inc. | Storage subsystem with configurable buffer |
US7685338B2 (en) | 2007-05-24 | 2010-03-23 | Siliconsystems, Inc. | Solid state storage subsystem for embedded applications |
US7685337B2 (en) | 2007-05-24 | 2010-03-23 | Siliconsystems, Inc. | Solid state storage subsystem for embedded applications |
US7685374B2 (en) | 2007-07-26 | 2010-03-23 | Siliconsystems, Inc. | Multi-interface and multi-bus structured solid-state storage subsystem |
US8095851B2 (en) | 2007-09-06 | 2012-01-10 | Siliconsystems, Inc. | Storage subsystem capable of adjusting ECC settings based on monitored conditions |
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 |
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 |
US9183133B2 (en) | 2007-11-28 | 2015-11-10 | Seagate Technology Llc | System, method, and computer program product for increasing spare space in memory to extend a lifetime of the memory |
US8078918B2 (en) | 2008-02-07 | 2011-12-13 | Siliconsystems, Inc. | Solid state storage subsystem that maintains and provides access to data reflective of a failure risk |
US7962792B2 (en) | 2008-02-11 | 2011-06-14 | Siliconsystems, Inc. | Interface for enabling a host computer to retrieve device monitor data from a solid state storage subsystem |
US7733712B1 (en) | 2008-05-20 | 2010-06-08 | Siliconsystems, Inc. | Storage subsystem with embedded circuit for protecting against anomalies in power signal from host |
US8375151B1 (en) | 2009-02-12 | 2013-02-12 | Siliconsystems, Inc. | Command portal for securely communicating and executing non-standard storage subsystem commands |
US8583835B1 (en) | 2008-08-06 | 2013-11-12 | Siliconsystems, Inc. | Command portal for executing non-standard storage subsystem commands |
US8046551B1 (en) | 2008-08-14 | 2011-10-25 | Emc Corporation | Techniques for processing I/O requests |
US8452940B2 (en) | 2008-12-30 | 2013-05-28 | Sandisk Technologies Inc. | Optimized memory management for random and sequential data writing |
US9176859B2 (en) | 2009-01-07 | 2015-11-03 | Siliconsystems, Inc. | Systems and methods for improving the performance of non-volatile memory operations |
US8090899B1 (en) | 2009-03-04 | 2012-01-03 | Western Digital Technologies, Inc. | Solid state drive power safe wear-leveling |
US10079048B2 (en) | 2009-03-24 | 2018-09-18 | Western Digital Technologies, Inc. | Adjusting access of non-volatile semiconductor memory based on access time |
US8291131B2 (en) | 2009-07-06 | 2012-10-16 | Micron Technology, Inc. | Data transfer management |
US8516166B2 (en) | 2009-07-20 | 2013-08-20 | Lsi Corporation | System, method, and computer program product for reducing a rate of data transfer to at least a portion of memory |
US8243525B1 (en) | 2009-09-30 | 2012-08-14 | Western Digital Technologies, Inc. | Refreshing non-volatile semiconductor memory by reading without rewriting |
US8254172B1 (en) | 2009-09-30 | 2012-08-28 | Western Digital Technologies, Inc. | Wear leveling non-volatile semiconductor memory based on erase times and program times |
US9753847B2 (en) | 2009-10-27 | 2017-09-05 | Western Digital Technologies, Inc. | Non-volatile semiconductor memory segregating sequential, random, and system data to reduce garbage collection for page based mapping |
US8135903B1 (en) | 2009-10-30 | 2012-03-13 | Western Digital Technologies, Inc. | Non-volatile semiconductor memory compressing data to improve performance |
US8261012B2 (en) | 2009-10-30 | 2012-09-04 | Western Digital Technologies, Inc. | Non-volatile semiconductor memory comprising power fail circuitry for flushing write data in response to a power fail signal |
US8397107B1 (en) | 2009-12-11 | 2013-03-12 | Western Digital Technologies, Inc. | Data storage device employing data path protection using both LBA and PBA |
US8443167B1 (en) | 2009-12-16 | 2013-05-14 | Western Digital Technologies, Inc. | Data storage device employing a run-length mapping table and a single address mapping table |
US8316176B1 (en) | 2010-02-17 | 2012-11-20 | Western Digital Technologies, Inc. | Non-volatile semiconductor memory segregating sequential data during garbage collection to reduce write amplification |
US8407449B1 (en) | 2010-02-26 | 2013-03-26 | Western Digital Technologies, Inc. | Non-volatile semiconductor memory storing an inverse map for rebuilding a translation table |
US8725931B1 (en) | 2010-03-26 | 2014-05-13 | Western Digital Technologies, Inc. | System and method for managing the execution of memory commands in a solid-state memory |
US8713066B1 (en) | 2010-03-29 | 2014-04-29 | Western Digital Technologies, Inc. | Managing wear leveling and garbage collection operations in a solid-state memory using linked lists |
US8782327B1 (en) | 2010-05-11 | 2014-07-15 | Western Digital Technologies, Inc. | System and method for managing execution of internal commands and host commands in a solid-state memory |
US9026716B2 (en) | 2010-05-12 | 2015-05-05 | Western Digital Technologies, Inc. | System and method for managing garbage collection in solid-state memory |
US8341339B1 (en) | 2010-06-14 | 2012-12-25 | Western Digital Technologies, Inc. | Hybrid drive garbage collecting a non-volatile semiconductor memory by migrating valid data to a disk |
US8612669B1 (en) | 2010-06-28 | 2013-12-17 | Western Digital Technologies, Inc. | System and method for performing data retention in solid-state memory using copy commands and validity and usage data |
US8447920B1 (en) | 2010-06-29 | 2013-05-21 | Western Digital Technologies, Inc. | System and method for managing data access in non-volatile memory |
US8521972B1 (en) | 2010-06-30 | 2013-08-27 | Western Digital Technologies, Inc. | System and method for optimizing garbage collection in data storage |
US8639872B1 (en) | 2010-08-13 | 2014-01-28 | Western Digital Technologies, Inc. | Hybrid drive comprising write cache spanning non-volatile semiconductor memory and disk |
US8775720B1 (en) | 2010-08-31 | 2014-07-08 | Western Digital Technologies, Inc. | Hybrid drive balancing execution times for non-volatile semiconductor memory and disk |
US8638602B1 (en) | 2010-09-10 | 2014-01-28 | Western Digital Technologies, Inc. | Background selection of voltage reference values for performing memory read operations |
US8769190B1 (en) | 2010-09-15 | 2014-07-01 | Western Digital Technologies, Inc. | System and method for reducing contentions in solid-state memory access |
US8788779B1 (en) | 2010-09-17 | 2014-07-22 | Western Digital Technologies, Inc. | Non-volatile storage subsystem with energy-based performance throttling |
US8612804B1 (en) | 2010-09-30 | 2013-12-17 | Western Digital Technologies, Inc. | System and method for improving wear-leveling performance in solid-state memory |
US8429343B1 (en) | 2010-10-21 | 2013-04-23 | Western Digital Technologies, Inc. | Hybrid drive employing non-volatile semiconductor memory to facilitate refreshing disk |
US8560759B1 (en) | 2010-10-25 | 2013-10-15 | Western Digital Technologies, Inc. | Hybrid drive storing redundant copies of data on disk and in non-volatile semiconductor memory based on read frequency |
US8601313B1 (en) | 2010-12-13 | 2013-12-03 | Western Digital Technologies, Inc. | System and method for a data reliability scheme in a solid state memory |
US8615681B2 (en) | 2010-12-14 | 2013-12-24 | Western Digital Technologies, Inc. | System and method for maintaining a data redundancy scheme in a solid state memory in the event of a power loss |
US8601311B2 (en) | 2010-12-14 | 2013-12-03 | Western Digital Technologies, Inc. | System and method for using over-provisioned data capacity to maintain a data redundancy scheme in a solid state memory |
US8458435B1 (en) | 2010-12-20 | 2013-06-04 | Western Digital Technologies, Inc. | Sequential write thread detection |
US8392635B2 (en) | 2010-12-22 | 2013-03-05 | Western Digital Technologies, Inc. | Selectively enabling a host transfer interrupt |
US8683113B2 (en) | 2011-02-04 | 2014-03-25 | Western Digital Technologies, Inc. | Concurrently searching multiple devices of a non-volatile semiconductor memory |
US8700950B1 (en) | 2011-02-11 | 2014-04-15 | Western Digital Technologies, Inc. | System and method for data error recovery in a solid state subsystem |
US8700951B1 (en) | 2011-03-09 | 2014-04-15 | Western Digital Technologies, Inc. | System and method for improving a data redundancy scheme in a solid state subsystem with additional metadata |
US8769232B2 (en) | 2011-04-06 | 2014-07-01 | Western Digital Technologies, Inc. | Non-volatile semiconductor memory module enabling out of order host command chunk media access |
US8751728B1 (en) | 2011-04-29 | 2014-06-10 | Western Digital Technologies, Inc. | Storage system bus transfer optimization |
US8862804B2 (en) | 2011-04-29 | 2014-10-14 | Western Digital Technologies, Inc. | System and method for improved parity determination within a data redundancy scheme in a solid state memory |
US9021178B2 (en) | 2011-05-02 | 2015-04-28 | Western Digital Technologies, Inc. | High performance path for command processing |
US8503237B1 (en) | 2011-05-18 | 2013-08-06 | Western Digital Technologies, Inc. | System and method for data recovery in a solid state storage device |
US8793429B1 (en) | 2011-06-03 | 2014-07-29 | Western Digital Technologies, Inc. | Solid-state drive with reduced power up time |
US8719531B2 (en) | 2011-06-14 | 2014-05-06 | Western Digital Technologies, Inc. | System and method for performing data retention that incorporates environmental conditions |
US8423722B1 (en) | 2011-08-26 | 2013-04-16 | Western Digital Technologies, Inc. | System and method for high performance command processing in solid state drives |
US8707104B1 (en) | 2011-09-06 | 2014-04-22 | Western Digital Technologies, Inc. | Systems and methods for error injection in data storage systems |
US8700834B2 (en) | 2011-09-06 | 2014-04-15 | Western Digital Technologies, Inc. | Systems and methods for an enhanced controller architecture in data storage systems |
US8713357B1 (en) | 2011-09-06 | 2014-04-29 | Western Digital Technologies, Inc. | Systems and methods for detailed error reporting in data storage systems |
US8977803B2 (en) | 2011-11-21 | 2015-03-10 | Western Digital Technologies, Inc. | Disk drive data caching using a multi-tiered memory |
US8724422B1 (en) | 2012-02-29 | 2014-05-13 | Western Digital Technologies, Inc. | System and method for charging back-up charge storage element for data storage device using spindle phase switching elements |
US9003224B2 (en) | 2012-04-25 | 2015-04-07 | Western Digital Technologies, Inc. | Managing unreliable memory in data storage systems |
US8788778B1 (en) | 2012-06-04 | 2014-07-22 | Western Digital Technologies, Inc. | Garbage collection based on the inactivity level of stored data |
US8966343B2 (en) | 2012-08-21 | 2015-02-24 | Western Digital Technologies, Inc. | Solid-state drive retention monitor using reference blocks |
US8788880B1 (en) | 2012-08-22 | 2014-07-22 | Western Digital Technologies, Inc. | Efficient retry mechanism for solid-state memory failures |
US9268682B2 (en) | 2012-10-05 | 2016-02-23 | Skyera, Llc | Methods, devices and systems for physical-to-logical mapping in solid state drives |
US8972826B2 (en) | 2012-10-24 | 2015-03-03 | Western Digital Technologies, Inc. | Adaptive error correction codes for data storage systems |
US9177638B2 (en) | 2012-11-13 | 2015-11-03 | Western Digital Technologies, Inc. | Methods and devices for avoiding lower page corruption in data storage devices |
US8954694B2 (en) | 2012-11-15 | 2015-02-10 | Western Digital Technologies, Inc. | Methods, data storage devices and systems for fragmented firmware table rebuild in a solid state drive |
US9021339B2 (en) | 2012-11-29 | 2015-04-28 | Western Digital Technologies, Inc. | Data reliability schemes for data storage systems |
US9059736B2 (en) | 2012-12-03 | 2015-06-16 | Western Digital Technologies, Inc. | Methods, solid state drive controllers and data storage devices having a runtime variable raid protection scheme |
US20140223255A1 (en) | 2012-12-18 | 2014-08-07 | Western Digital Technologies, Inc. | Decoder having early decoding termination detection |
US9430376B2 (en) | 2012-12-26 | 2016-08-30 | Western Digital Technologies, Inc. | Priority-based garbage collection for data storage systems |
WO2015017147A1 (en) * | 2013-07-29 | 2015-02-05 | Silicon Graphics International Corp. | I/o acceleration in hybrid storage |
US8982499B1 (en) * | 2013-08-23 | 2015-03-17 | Kabushiki Kaisha Toshiba | Timing of power state change in a disk drive based on disk access history |
-
2014
- 2014-04-30 US US14/266,234 patent/US9348520B2/en not_active Expired - Fee Related
-
2015
- 2015-03-20 CN CN201580016181.XA patent/CN106164841A/zh active Pending
- 2015-03-20 WO PCT/US2015/021850 patent/WO2015148321A1/en active Application Filing
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108052419A (zh) * | 2018-01-05 | 2018-05-18 | 哈尔滨学院 | 一种数据容灾的方法 |
CN112002368A (zh) * | 2020-07-29 | 2020-11-27 | 北京浪潮数据技术有限公司 | 固态硬盘的磨损度数据模拟方法、系统及相关设备 |
CN112002368B (zh) * | 2020-07-29 | 2022-06-17 | 北京浪潮数据技术有限公司 | 固态硬盘的磨损度数据模拟方法、系统及相关设备 |
Also Published As
Publication number | Publication date |
---|---|
US20150268872A1 (en) | 2015-09-24 |
WO2015148321A1 (en) | 2015-10-01 |
US9348520B2 (en) | 2016-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106164841A (zh) | 用于数据存储装置的非易失性半导体存储器的寿命延长 | |
US10950300B2 (en) | Lifetime mixed level non-volatile memory system | |
US10430084B2 (en) | Multi-tiered memory with different metadata levels | |
CN105487986B (zh) | 考虑总字节写入需求时设置高速缓冲存储器的大小 | |
US9430376B2 (en) | Priority-based garbage collection for data storage systems | |
US10126981B1 (en) | Tiered storage using storage class memory | |
US9129628B1 (en) | Data management for data storage device with different track density regions | |
US9766819B2 (en) | Systems and methods for managing storage endurance | |
US10338817B2 (en) | Systems and methods for storage recovery | |
US10282286B2 (en) | Address mapping using a data unit type that is variable | |
US10740242B2 (en) | Sensing device data caching | |
US9690696B1 (en) | Lifetime extension of memory for data storage system | |
US20110119462A1 (en) | Method for restoring and maintaining solid-state drive performance | |
US20140229654A1 (en) | Garbage Collection with Demotion of Valid Data to a Lower Memory Tier | |
WO2015029102A1 (ja) | ストレージ装置及び階層制御方法 | |
US9933955B1 (en) | Power safe write buffer for data storage device | |
CN107710143A (zh) | 用于数据存储装置的介质区域管理 | |
CN107832007A (zh) | 一种提高ssd综合性能的方法 | |
US20100306484A1 (en) | Heterogeneous storage array optimization through eviction | |
CN105493185B (zh) | 数据存储装置的数据迁移 | |
US9785563B1 (en) | Read command processing for data storage system based on previous writes | |
Feresten et al. | Auto mated Storage Tiering and the Net App Virtual Storage Tier | |
Wang et al. | CAWR: Buffer Replacement with Channel‐Aware Write Reordering Mechanism for SSDs | |
Rufus | A COMPARATIVE STUDY OF PHASE CHANGE MEMORY (PCM): ACHIEVING SIGNIFICANT REDUCTIONS IN ENERGY CONSUMPTION |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20161123 |