CN105493185B - 数据存储装置的数据迁移 - Google Patents

数据存储装置的数据迁移 Download PDF

Info

Publication number
CN105493185B
CN105493185B CN201480047752.1A CN201480047752A CN105493185B CN 105493185 B CN105493185 B CN 105493185B CN 201480047752 A CN201480047752 A CN 201480047752A CN 105493185 B CN105493185 B CN 105493185B
Authority
CN
China
Prior art keywords
disk
data
solid
state memory
dsd
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201480047752.1A
Other languages
English (en)
Other versions
CN105493185A (zh
Inventor
R·L·霍恩
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.)
Western Digital Technologies Inc
Original Assignee
Western Digital Technologies Inc
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 Western Digital Technologies Inc filed Critical Western Digital Technologies Inc
Publication of CN105493185A publication Critical patent/CN105493185A/zh
Application granted granted Critical
Publication of CN105493185B publication Critical patent/CN105493185B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0617Improving the reliability of storage systems in relation to availability
    • 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
    • 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/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • 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/068Hybrid storage device
    • 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

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)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

本申请公开数据存储装置(DSD)中数据的迁移。控制DSD的主轴马达来旋转DSD的磁盘,以在所述磁盘上执行至少一个操作,并且确定执行所述至少一个操作的操作活动量。确定操作活动量是否比目标量大,并且如果确定所述操作活动量不比所述目标量大,则在所述磁盘旋转时,在所述DSD的固态存储器和所述磁盘之间传输数据。

Description

数据存储装置的数据迁移
背景技术
数据存储装置(DSD)一般用于在存储介质上记录数据或者用于从存储介质再现数据。一些DSD包括多种类型的存储介质。例如,在固态混合硬盘(SSHD)的情况下,除用于存储数据的至少一个旋转磁盘以外,诸如闪速存储器这样的固态存储介质被用于存储数据。
当磁盘无法用于存储数据(诸如当磁盘不旋转时)时,SSHD的固态存储介质可以被用于存储数据。然而,固态介质的可用容量通常是有限的,并且仅被存储在固态介质中的数据通常需要在将来的某个时刻迁移至磁盘。此外,数据还可能需要从磁盘迁移至固态介质,使得例如,数据可用于在磁盘不旋转时的快速存取,或者使得相同的数据被存储在磁盘和固态介质二者上。
附图说明
本公开的实施方式的特征和优点将从以下提出的详细描述在结合附图时变得更明显。附图和相关描述被提供为例示本公开的实施方式并且不用于限制要求保护的范围。
图1是根据一个实施方式描述具有数据存储装置(DSD)的电子系统的框图。
图2是根据一个实施方式描述DSD的操作活动量的曲线图。
图3是根据一个实施方式描述图2的DSD的执行的曲线图。
图4是根据一个实施方式例示用于DSD的等待(pending)操作的队列的图。
图5是根据一个实施方式用于数据迁移过程的流程图。
具体实施方式
在以下详细的描述中,阐述许多具体细节,以提供本公开的全面理解。然而,将对本领域普通技术人员中的一个明显的是:公开的各种实施方式可以不用一些这些具体细节来实践。在其它示例中,没有详细地示出众所周知的结构和技术,以避免不必要地使各种实施方式模糊不清。
图1示出的电子系统100包括主机101和与主机101通信的数据存储装置(DSD)106。电子系统100能够是例如计算机系统(例如,台式机、手机/笔记本电脑、平板电脑、智能手机等)或其它类型的诸如数字视频录像机(DVR)这样的电子装置。就此而言,电子系统100可以是独立系统或是网络的部分。本领域普通技术人员将能理解,电子系统100和/或DSD 106能够包括比图1中示出的这些元件更多或更少的元件,并且在其它环境中可以实现所公开的过程。
在图1的实施方式中,DSD 106是固态混合硬盘(SSHD),该固态混合硬盘包括作为用于存储数据的非易失性存储器(NVM)的磁记录介质(例如,磁盘组134中的磁盘)和固态记录介质(例如,固态存储器132)二者。尽管本文中的描述通常涉及固态存储器,应当理解的是固态存储器可以包含各种类型的存储器装置中的一个或更多个,这些各种类型的存储器装置是诸如闪存集成电路、硫属相变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)。
主机接口126被配置为将DSD 106与主机101相接合(interface),并且可以根据诸如例如PCI express(PCIe)、串行高级技术附件(SATA)或串行附接SCSI(SAS)这样的标准相接合。如本领域普通技术人员理解的,能够将主机接口126包括为控制器120的部分。虽然图1描述了主机101和DSD 106处于相同的位置,但是在其它实施方式中,所述二者不需要被物理上相同地定位。在这种实施方式中,DSD 106可以远离主机101定位并且经由网络接口连接至主机101。
在图1的示例中,DSD 106包括布置在磁盘组134中的旋转磁盘,该磁盘组134通过主轴马达(SM)138进行旋转。DSD 106还包括磁头堆组件(HSA)136,该磁头堆组件136连接至致动器130的末端,其通过音圈马达(VCM)132旋转以相对于磁盘组134定位HSA 136。控制器120能够包括伺服控制电路(未示出)以分别使用VCM控制信号30和SM控制信号34控制HSA136的位置和磁盘组134的旋转。DSD 106可以包括存储在磁盘组134和/或固态存储器132上的固件。固件能够包括通过DSD 106使用的计算机可读指令以控制DSD的操作,该操作可以包括在固态存储器132和磁盘组134之间的数据迁移。
磁盘组134包含被径向对齐的多个磁盘,以便使磁盘组134关于SM 138旋转。磁盘组134中的每个磁盘包括用于存储数据的若干径向间隔的同心磁道。HSA 136包括多个磁头,该多个磁头中的每个布置为从磁盘组134中的磁盘的对应表面读取数据以及将数据写入至磁盘组134中的磁盘的对应表面。
DSD 106还包括用于存储数据的固态存储器132。在一个实施方式中,固态存储器132被用于存储缓存数据20,该缓存数据20可以是与用于磁盘组134上的逻辑块地址(LBA)的选择范围的数据完全相同的数据,或用于磁盘组134上的逻辑块地址(LBA)的选择范围的数据的最新副本。缓存数据20能够包括以下数据,该数据仅存储在固态存储器132中,以及是针对诸如LBA这样的具体逻辑地址的最近写入版本的数据。这种缓存数据可以被称作为“脏数据”,其通过针对逻辑地址向磁盘组134写入该脏数据来与磁盘组134周期性地同步。在一个示例中,脏数据可以由延时写入操作造成,其中试图向磁盘组134写入的数据被首次存储在作为将在以下更详细描述的固态存储器132中。
易失存储器140能够包括例如,动态随机存取存储器(DRAM),其能够通过DSD 106被用于临时存储数据。存储在易失存储器140中的数据能够包括从NVM(例如,磁盘组134或固态存储器132)读取的数据、将被写入至NVM的数据、从用于通过控制器120执行的固件载入的指令和/或在执行固件中使用的数据。
在操作中,主机接口126从主机101经由主机接口126接收用于从NVM(诸如固态存储器132和磁盘组134)读取数据和向NVM(诸如固态存储器132和磁盘组134)写入数据的主机读取和写入命令。响应于来自主机101的写入命令,控制器120可以在易失存储器140中缓冲针对写入命令将要被写入的数据。
对于将要向磁盘组134写入的数据,控制器120的读取/写入通道(未示出)接着可以将缓冲数据编码成写入信号32,该写入信号32被提供至HSA 136的磁头用于向磁盘组134的磁盘表面磁写入数据。
响应于用于存储在磁盘组134的磁表面上的数据的读取命令,控制器120控制HSA136的磁头,以磁读取存储在磁盘组134的表面上的数据并发送读取数据作为读取信号32。然后,控制器120的读取/写入通道能够解码和缓存易失存储器140中的数据,以将数据经由主机接口126传送至主机101。
DSD 106还能够执行延时写入操作,其允许DSD 106向固态存储器132写入将要被写入至磁盘组134的数据,并且然后,随后将数据写入至磁盘组134中的期望位置。当在磁盘组134中执行其它操作时,这个延时写入通常能够允许为用于试图对磁盘组134写入的主机写入命令服务。延时写入操作还能够允许为用于试图对磁盘组134写入的主机写入命令服务而不需要磁盘组134起转至用于写入数据的操作速度。来自延时写入操作的数据能够作为脏数据被存储在固态存储器132中,但是在固态存储器132中限制用于存储脏数据的可用容量。当脏数据的数量接近高量限制时,磁盘组134可能需要被起转至操作速度以将一些脏数据传输至磁盘组134。
除了将脏数据传输至磁盘组134之外,数据还可以从磁盘组134传输至固态存储器132。就此而言,能够将存储在磁盘组134上的诸如频繁地存取数据或高优先级数据这样的特定数据从磁盘组134传输至固态存储器132。在一些实现方式中,可以通过标记特定数据或提供针对将要从磁盘组134传输至固态存储器132数据的LBA的范围,由主机101指定频繁存取或高优先级数据。DSD 106可以迁移频繁存取的数据,诸如例如将具体字处理文件迁移至固态存储器132,以减少磁盘组134需要被起转以存取这种数据的次数并降低主机101存取该数据的延迟。可以将诸如例如操作系统文件这样的高优选级数据从磁盘组134传输至固态存储器132,以便在固态存储器132中提供高优先级数据的更快存取。
如以下所述,数据在固态存储器132和磁盘组134之间的传输能够与在磁盘组134上执行的其它操作相穿插,以减少磁盘组134需要被起转的次数(即,旋转周期的数量)并减少磁盘组134的总旋转时间。旋转周期数量方面和总旋转时间方面的这种减少能够导致功率消耗的减少和DSD 106可靠性的提高。此外,当数据被存储在固态存储器132而不是磁盘组134中时,DSD 106的整体性能够通过减少在存取针对随机读取的数据方面的延迟进行提高。
图2根据一个实施方式描述了能够在固态存储器132和磁盘组134之间传输数据时使用的示例操作活动量202。操作活动量202表示等待在磁盘组134上执行的若干命令的命令队列深度。这种命令能够包括从主机101接收的诸如读取命令或写入命令这样的若干主机命令。操作活动量202还可以包括DSD 106的诸如用于磁盘组134上的定期维护操作这样的额外的内部命令。
如图2所述,操作活动量202始于在0秒处排队的5个命令,以及增加至在3秒处排队的7个命令。在操作活动中的这个初始增加的部分能够归因于磁盘组134正被起转至操作速度。
在图2的示例中,在5个命令的队列深度处的目标量204充当为目标操作活动量,使得当操作活动量202降到目标量204以下时,在磁盘组134和固态存储器132之间传输数据,以利用已经旋转的磁盘组134执行其它操作。可以基于相对高执行量或执行限制通过控制器120设置用于在磁盘组134上执行特定操作的目标量204,该特定操作是诸如用于在磁盘组134上执行读取操作或写入操作。
通过在磁盘组134已经在旋转时传输数据(例如,用于来自主机的一个或更多个服务命令),通常能够通过减少磁盘组134单独起转的需求以在固态存储器132和磁盘组134之间传输数据来节省功率。此外,通过将传输数据与其它操作穿插通常能够提高有关IOPS的执行效率,以在更短时间段期间完成更多操作。
如图2所示,操作活动量202和目标量204之间的交叉影线区域指示了用于数据在固态存储器132和磁盘组134之间传输的可用容量。当将操作活动量202与在固态存储器132和磁盘组134之间传输数据一起考虑时,能够基于操作活动量202的变化将数据的传输定时,使得总队列深度达到目标量204。
当操作活动量202降到目标量204以下时,控制器120在固态存储器132和磁盘组134之间传输数据。传输活动的出现通常对应于图2中的操作活动量202和目标量204之间的交叉影线区域。当操作活动量202超过目标量204(诸如在大约8秒处)时,控制器120停止在固态存储器132和磁盘组134之间传输数据,直到操作活动量202再次降到目标量204以下为止。
在其它实施方式中,当操作活动量202升至目标量204以上时,控制器120可以继续在固态存储器132和磁盘组134之间传输数据。在这种实施方式中,当操作活动量202比目标量204大时,控制器120可以设置基线传输速率,并且然后当操作活动量202降到目标量204以下时,增加传输速率。
在图2的实施方式中,能够基于操作活动量202设置在给定时间处将要传输的数据量,以便达到目标量204。在一些实现方式中,还基于存储在固态存储器132中的缓存数据20的量设置在给定时间处被传输的数据量。例如,当缓存数据20的量接近固态存储器132中的高量时(诸如,在高量10%之内),可以传输更多数据。在其它实现方式中,如果缓存数据20的量已经到达临界量(诸如,在高量限制的2%中),则数据的传输甚至可以延迟对应于操作活动量202的操作的执行。还可以在缓存数据20接近低量限制时减少数据传输的量。
在一些实施方式中,目标量可以被调整(例如,动态调整)为不同的活动量。例如,如果需要在固态存储器132和磁盘组134之间传输数据变得更为紧迫,则目标量204可以被向上调整至目标量208。可以导致调整目标量的因素能够包括固态存储器132的可用容量、存储在固态存储器132中的脏数据的数量或存储在固态存储器132中的脏数据的寿命。在一个示例中,如果将要从固态存储器132传输至磁盘组134的数据的数量超过数据的阈值数量,则可以增加目标量。如果将要从磁盘组134传输至固态存储器132的数据数量超过阈值,或如果在两个方向上的将要传输的数据的总数量超过阈值,则也可以增加目标量。
能够部分基于对应于操作活动量202的操作做出选择哪些数据进行传输。例如,控制器120可以基于旋转位置优化(RPO)算法选择特定数据以传输,使得减少HSA136的运动。在一个这种示例中,控制器120可以识别针对对应于操作活动量202的操作进行传输的数据的具体部分,该数据的具体部分具有在向磁盘组134写入或从磁盘组134读取的数据附近寻址的逻辑地址(例如,LBA)。
在其它示例中,控制器120可以在逻辑地址的范围中识别利用逻辑地址来寻址的脏数据,当磁盘维护活动的部分影响操作活动量202时,该逻辑地址在磁盘组134中被刷新(refreshed)。当刷新逻辑块地址的范围而不是使用来自磁盘组134的可能废弃的数据时,这能够允许将要向磁盘组134写入的更新的脏数据。类似地,控制器120可以在与影响操作活动量202的碎片收集或碎片整理过程有关的逻辑地址的范围中识别脏数据。
在图2中,当DSD 106完成执行磁盘组134初始起转以执行的一个或更多个操作时,操作活动量202在12秒处达到零的命令深度。另一方面,当在固态存储器132和磁盘组134之间将已经通过控制器识别的用于迁移的全部数据传输时,在固态存储器132和磁盘组134之间的数据传输继续通过12秒直到在14秒处停止为止。在12秒和14秒之间的用于传输数据的额外时间能够用于,例如,进一步将存储在固态存储器132中的脏数据的量减小在特定量以下。
在一些实现方式中,控制器120维持功率节省计时器以在从主机101接收最后读取或写入命令的特定时间量之后触发DSD 106的功率节省动作。在这种实现方式中,完成数据的传输不延长功率节省计时器。换言之,如果不用于数据在固态存储器132和磁盘组134之间的传输,则磁盘组134可以在14秒处进入功率节省状态,而不需要等待功率节省计时器的终止,该功率节省计时器可能在14秒之前以其它方式终止。功率节省动作可以包括将HSA136从磁盘组134移走(即,停驻HSA 136)以及减少磁盘组134的角速度。
图3根据一个实施方式描述在图2中示出的时间段上与由HSA136在磁盘组134上执行的若干每秒输入/输出操作(IOPS)有关的执行曲线302。在图3的示例中,在300IOPS处的执行量304粗糙地对应于操作活动量202和传输活动达到初始起转磁盘组134之后的目标量204的时候。就此而言,执行量304能够对应于用于DSD 106在磁盘组134上执行读取或写入操作方面的相对高的执行量。
如图3所述,执行曲线302在初始起转期间增加直到其到达3秒之后的执行量304为止。尽管图2中的操作活动量202在4秒和6秒之间降低,但执行曲线302在这个期间保持在执行量304附近,其中将传输活动添加至操作活动量202。当操作活动量202在图2中大约9秒之后降低时,执行曲线302还保持升高。
如上所述,通过将数据传输与其它操作相穿插,通常能够增加DSD 106的执行效率以在较短的时间段期间完成更多操作。
图4是根据一个实施方式例示用于磁盘组134的等待操作的不同队列的图示。图4的队列可以通过控制器120在易失性存储器140中进行维持。如图4所述,队列402、404、406和408中的每个包括特定类型的等待操作。例如,队列可以被用作RPO算法的部分,其中基于它们的在磁盘介质上的目标物理位置从这些队列中选择等待操作。
队列402是用于等待操作的队列,以服务从主机101接收的主机命令(例如,HC1、HC2和HC3)。排列在队列402中的等待操作能够包括例如,用于从DSD 106存取数据的读取命令或用于在DSD 106中存储数据的写入命令。在一些实施方式中,排列在队列402中的主机命令能够构成操作活动量,诸如图2中的操作活动量202。在其它实施方式中,DSD 106可以维持操作的针对主机读取命令和主机写入命令的单独队列。
队列404是用于等待数据从磁盘组134传输至固态存储器132(即,数据读取迁移)操作的队列,诸如DRM1和DRM2。这种数据读取迁移能够是用于磁盘组134上的频繁地存取的数据,或者是针对冗余存储在磁盘组134和固态存储器132二者中的高优先级数据。
队列406是用于等待数据从固态存储器132传输至磁盘组134(即,数据写入迁移)操作的队列,诸如DWM1、DWM2、DWM3和DWM4。例如,这种数据写入迁移能够包括将脏数据的各部分在延时写入之后传输至磁盘组134。
队列408是用于等待将要被执行在磁盘组134上的维护操作的队列,诸如M1。这种维护操作能够包括针对逻辑地址的具体范围的碎片收集、碎片整理以及在磁盘组134中刷新数据。
在图4的实施方式中,控制器120基于针对在队列的至少一个中的等待操作的预定服务质量对队列402、404、406和408之中的等待操作的执行排序。例如,控制器120可以设置针对队列402中的主机命令操作的预定执行速率,以提供服务来自主机101的命令的具体服务质量。在图4中通过控制器120设置队列402的预定执行速率,使得通过DSD 106执行的每5个操作中的2个是来自队列402。此外,为队列404和406设置预定执行速率,使得通过DSD106执行的每5个操作中的1个是来自队列404和406中的每个。控制器120按照在图4中示出的顺序对队列402、404、406和408中的操作排序,其中HC1将被首先执行,M1将被最后地执行。在一个实施方式中,这些选择因素可以集成在RPO算法中或用于代替RPO算法。
控制器120还可以基于用于调整目标量的上述讨论的考虑改变从队列选择的操作的预定速率和/或改变操作的排序。换言之,预定速率和/或排序可以基于将要从磁盘组134传输至固态存储器132的数据的数量、固态存储器132的可用容量、存储在固态存储器132中的脏数据的数量和存储在固态存储器132中的脏数据的寿命中的至少一个进行改变。再次,这些选择因素可以集成在RPO算法中或用于代替RPO算法。
图5是根据一个实施方式针对能够通过控制器120执行的数据迁移的流程图。在框500中,控制器120控制SM 138来旋转磁盘组134,以执行至少一个操作,该操作能够包括例如,读取操作、写入操作或诸如碎片收集、碎片整理和磁盘组134中的数据刷新这样的磁盘维护操作。
在框502中,控制器120可以可选地调整操作活动的目标量,诸如图3中的从目标量204至目标量208。在目标量中的调整能够是基于将要从磁盘组134传输至固态存储器132的数据的数量、固态存储器132的可用容量、脏数据的数量和脏数据的寿命中的至少一个。
在框504中,控制器120确定磁盘组134中执行来自框500的至少一个操作方面的操作活动量。如上所述,操作活动量能够包括排队用于在磁盘组134上执行的若干命令,诸如在图4的队列402中排队的若干主机命令。
在框506中,控制器120确定操作活动量是否比目标量大。如果是,则过程返回至框504以确定更新的操作活动量,并且在框506中将更新的操作活动量与目标量进行比较。
如果操作活动量不比目标量大,则控制器120在框508中设置将要在固态存储器132和磁盘组134之间传输的数据的数量。更详细地,数据的数量基于目标量和当前操作活动量之间的不同进行设置。除了当前操作活动量之外,将要传输的数据量还可以基于存储在固态存储器132中的脏数据的数量进行设置。随着脏数据的数量增加,能够增加将要传输的脏数据数量。在一个实现方式中,如果脏数据的数量已经超出高量限制,则可以延迟其它操作(诸如框500的至少一个操作)的执行。
在框510中,控制器120识别将要在固态存储器132和磁盘组134之间传输的数据的各部分。数据的识别能够包括比较针对数据的逻辑地址(例如,LBA)和磁盘组134上执行的其它操作包含的数据的逻辑地址。例如,控制器120可以基于RPO算法识别数据的逻辑地址或者将数据的逻辑地址与通过控制器120确定的逻辑地址的范围进行比较用于磁盘维护操作。
在框512中,控制器120在固态存储器132和磁盘组134之间传输在框510中识别的数据。控制器120在框514中检测是否存在更多数据将要传输。这能够含有例如确定是否在队列404或406中的任一队列仍存在更多数据传输操作。控制器120还可以考虑是否存在需要在磁盘组134上被执行的其它操作,使得磁盘组134将继续旋转。在这种示例中,虽然已经执行排列在队列404和406中的先前数据传输操作,但是控制器120可以在框514中确定更多数据应该被传输。然后,控制器120可以在选择将要传输更多数据方面考虑存储在固态存储器132中的缓存数据20的数量。然而,控制器120可以在框514中确定脏数据的数量已经达到低量限制,以及数据的传输应该停止即使磁盘组134将继续旋转以执行其它操作。
如果控制器120在框514中确定存在将要传输的更多数据,则将过程返回至框502以可选地调整目标量,并且在框504中确定当前操作活动量。
如果在框514中确定不存在将要传输的更多数据,则图5的数据迁移过程在框516中结束。在一些情况中,可以在完成数据的传输之前已经完成框500的至少一个操作。在这个情况中,数据迁移过程不将任何额外时间增加至用于触发诸如停转磁盘组134或停驻HSA136的功率节省动作的任何功率节省计时器。
通过将迁移数据与其它操作相穿插,通常可能的是通过避免将磁盘单独地起转以在固态存储器132和磁盘组134之间传输数据来减少总旋转时间并节约功率。此外,协调数据传输和其它磁盘操作以达到目标操作活动量通常能够提高DSD 106的执行效率。
本领域的技术人员将理解,在结合本文中公开的示例描述的各种例示性逻辑框、模块和过程可以被实现为电子硬件、计算机软件、或二者的组合。此外,上述过程能够被实施在计算机可读取介质上,该计算机可读介质导致处理器或计算机执行或实行确定功能。
为了清晰地例示硬件和软件的可交换性,上面已经按照它们的功能性总体地描述各种例示性组件、框、和模块。这种功能被实现为硬件或被实现为软件取决于具体应用和施加在整体系统上的设计约束。本领域普通技术人员可以以针对每个具体应用的各种方式来实现所描述的功能,但是这种实施决策不应该被解释为导致脱离本发明的范围。
结合本文中所描述的示例描述的各种例示逻辑块、单元、模块和控制器可以利用下述部件实现或执行:通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件或设计以执行本文中描述的功能的它们的任何组合。通用处理器可以是微处理器,但是可选择地,处理器可以是任何常见处理器、控制器、微处理器或状态机。处理器还可以被实现为计算装置的组合,例如DSP和微处理器的组合、多个微处理器、与DSP芯结合的一个或更多个微处理器、或任何其它这种配置。
与本文中公开的示例相结合描述的方法或过程的活动可以被直接地实施在硬件中、在通过处理器执行的软件模块中、或在二者的组合中。方法或算法的步骤还可以在与示例中提供的那些顺序不同的替代顺序执行。软件模块可以驻留在RAM存储器、闪存存储器、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移除介质、光学介质或已知现有技术的任何其它形式的存储介质中。示例性存储介质被耦合至处理器,使得处理器能够从存储介质读取信息,并且向存储介质写入信息。可替代地,存储介质可以被集成至处理器。处理器和存储介质可以驻留在专用集成电路(ASIC)中。
提供本公开示例实施方式的上述描述以使本领域普通技术人员能够制作或使用本公开的实施方式。用于这些示例的各种修改对本领域普通技术人员将容易地理解,并且在不偏离本公开的精神或范围的情况下,本文中公开的原理可以适用于其它示例。所描述的实施方式在所有方面将被视为仅作为示例性而非限制性的,并且因此通过以下权利要求而不是通过上述描述指出本公开的范围。落入权利要求的等效含义和范围中的所有改变包含在其范围内。

Claims (22)

1.一种数据存储装置即DSD,包括:
磁盘,所述磁盘用于存储数据;
主轴马达,所述主轴马达用于旋转所述磁盘;
固态存储器,所述固态存储器用于存储数据;以及
控制器,所述控制器被配置为:
控制所述主轴马达来旋转所述磁盘,以在所述磁盘上执行至少一个操作,其中所述操作活动量表示排队用于在所述磁盘上执行的若干命令;
确定执行所述至少一个操作的操作活动量;
确定所述操作活动量是否比命令的目标量大;以及
如果确定所述操作活动量不比所述目标量大,则在所述磁盘旋转时,在所述固态存储器和所述磁盘之间传输数据。
2.根据权利要求1的所述DSD,其中,所述控制器进一步被配置为基于在所述磁盘上执行操作的执行限制来设置所述目标量。
3.根据权利要求1的所述DSD,其中,在所述固态存储器和所述磁盘之间传输的数据包括:从所述固态存储器传输至所述磁盘的脏数据,所述脏数据包括针对逻辑地址最近写入的并且通过针对所述逻辑地址向所述磁盘写入所述脏数据,能够被用于更新所述磁盘的数据。
4.根据权利要求1的所述DSD,其中,在所述固态存储器和所述磁盘之间传输的数据包括:频繁存取数据和从所述磁盘传输至所述固态存储器的高优先级数据中的至少一个。
5.根据权利要求1的所述DSD,其中,所述控制器进一步被配置为设置将要在所述固态存储器和所述磁盘之间传输的数据的数量,以在传输所述数据时达到所述目标量。
6.根据权利要求1的所述DSD,其中,所述控制器进一步被配置为基于将要在所述磁盘和所述固态存储器之间传输的数据的数量、所述固态存储器的可用容量、存储在所述固态存储器中的脏数据的数量以及存储在所述固态存储器中的脏数据的寿命中的至少一个来调整所述目标量,其中,所述脏数据包括针对逻辑地址最近写入的并且针对所述逻辑地址通过将所述脏数据写入所述磁盘能够被用于更新所述磁盘的数据。
7.根据权利要求1的所述DSD,其中,所述控制器进一步被配置为基于执行所述至少一个操作中包含的数据寻址来选择在所述固态存储器和所述磁盘之间传输的数据。
8.根据权利要求1的所述DSD,进一步包括:用于在所述磁盘上读取和写入数据的磁头,其中,所述控制器进一步被配置为选择在所述固态存储器和所述磁盘之间传输的数据,以便减少所述磁头相对于所述磁盘的运动。
9.根据权利要求1的所述DSD,其中,所述至少一个操作包括在所述磁盘上的数据维护操作,并且所述控制器进一步被配置为:
确定在所述磁盘上执行的数据维护操作的逻辑地址的范围;以及
选择在所述固态存储器和所述磁盘之间传输的数据,以便利用逻辑地址的范围中的逻辑地址对所选择的数据进行寻址。
10.根据权利要求1的所述DSD,其中,所述控制器进一步被配置为维持用于进入DSD的低功率状态的计时器,并且其中,数据在所述固态存储器和所述磁盘之间的传输不延迟所述计时器进入所述低功率状态,使得如果计时器在数据在所述固态存储器和所述磁盘之间传输时终止,则DSD在完成在所述固态存储器和所述磁盘之间数据传输后进入低功率状态。
11.根据权利要求1的所述DSD,其中,所述控制器进一步被配置为:
维持通过所述DSD执行的等待操作的第一队列;
维持通过所述DSD执行的等待操作的第二队列;以及
基于预定的服务质量,将所述第一队列中的等待操作和所述第二队列中的等待操作的执行进行排序,以执行所述第一队列和所述第二队列的至少一个中的等待操作;
其中,所述第一队列中的等待操作包括等待的在所述固态存储器和所述磁盘之间的数据传输操作、等待的针对所述磁盘的维护操作或等待的针对从与所述DSD通信的主机接收的主机命令的主机命令操作。
12.一种用于在数据存储装置即DSD中迁移数据的方法,所述方法包括以下步骤:
控制所述DSD的主轴马达来旋转所述DSD的磁盘,以在所述磁盘上执行至少一个操作;
确定执行所述至少一个操作的操作活动量,其中所述操作活动量表示排队用于在所述磁盘上执行的若干命令;
确定所述操作活动量是否比命令的目标量大;以及
如果确定所述操作活动量不比所述目标量大,则在所述磁盘旋转时,在所述DSD的固态存储器和所述磁盘之间传输数据。
13.根据权利要求12的所述方法,进一步包括基于在所述磁盘上执行操作的执行限制来设置所述目标量。
14.根据权利要求12的所述方法,其中,在所述固态存储器和所述磁盘之间传输的数据包括:从所述固态存储器传输至所述磁盘的脏数据,所述脏数据包括针对逻辑地址最近写入的并且针对所述逻辑地址通过向所述磁盘写入所述脏数据能够被用于更新所述磁盘的数据。
15.根据权利要求12的所述方法,其中,在所述固态存储器和所述磁盘之间传输的数据包括:频繁存取数据和从所述磁盘传输至所述固态存储器的高优先级数据中的至少一个。
16.根据权利要求12的所述方法,进一步包括设置将要在所述固态存储器和所述磁盘之间传输的数据的数量,以在传输所述数据时达到所述目标量。
17.根据权利要求12的所述方法,其进一步包括基于将要在所述磁盘和所述固态存储器之间传输的数据的数量、所述固态存储器的可用容量、存储在所述固态存储器中的脏数据的数量以及存储在所述固态存储器中的脏数据的寿命中的至少一个来调整所述目标量,其中,所述脏数据包括针对逻辑地址最近写入的并且针对所述逻辑地址通过将所述脏数据写入所述磁盘能够被用于更新所述磁盘的数据。
18.根据权利要求12的所述方法,进一步包括基于在执行至少一个操作中包含的数据寻址来选择在所述固态存储器和所述磁盘之间传输的数据。
19.根据权利要求12的所述方法,进一步包括选择在所述固态存储器和所述磁盘之间传输的数据,以便减少磁头相对于所述磁盘的运动,其中,所述磁头被配置为在所述磁盘上读取和写入数据。
20.根据权利要求12的所述方法,其中,所述至少一个操作包括在所述磁盘上的数据维护操作,并且其中所述方法进一步包括:
确定在所述磁盘上执行数据维护操作的逻辑地址的范围;以及
选择在所述固态存储器和所述磁盘之间传输的数据,以便利用在逻辑地址的范围中的逻辑地址对所选择的数据进行寻址。
21.根据权利要求12的所述方法,进一步包括:维持用于进入DSD的低功率状态的计时器,其中,数据在所述固态存储器和所述磁盘之间的传输不延迟所述计时器进入所述低功率状态,使得如果计时器在数据在所述固态存储器和所述磁盘之间传输时终止,则DSD在完成在所述固态存储器和所述磁盘之间的数据传输后进入低功率状态。
22.根据权利要求12的所述方法,其中,所述方法进一步包括:
维持用于通过所述DSD执行的等待操作的第一队列;
维持用于通过所述DSD执行的等待操作的第二队列;以及
基于预定的服务质量,将所述第一队列中的等待操作和所述第二队列中的等待操作的执行进行排序,用于执行所述第一队列和所述第二队列中的至少一个中的等待操作;
其中,所述第一队列中的等待操作包括等待的在所述固态存储器和所述磁盘之间的数据传输操作、等待的针对所述磁盘的维护操作或等待的针对从与所述DSD通信的主机接收的主机命令的接收的主机命令操作。
CN201480047752.1A 2013-08-28 2014-08-27 数据存储装置的数据迁移 Active CN105493185B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361871270P 2013-08-28 2013-08-28
US61/871,270 2013-08-28
US14/086,916 2013-11-21
US14/086,916 US9070379B2 (en) 2013-08-28 2013-11-21 Data migration for data storage device
PCT/US2014/053009 WO2015031538A1 (en) 2013-08-28 2014-08-27 Data migration for data storage device

Publications (2)

Publication Number Publication Date
CN105493185A CN105493185A (zh) 2016-04-13
CN105493185B true CN105493185B (zh) 2018-04-03

Family

ID=52582897

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480047752.1A Active CN105493185B (zh) 2013-08-28 2014-08-27 数据存储装置的数据迁移

Country Status (4)

Country Link
US (1) US9070379B2 (zh)
CN (1) CN105493185B (zh)
HK (1) HK1222257A1 (zh)
WO (1) WO2015031538A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9703699B2 (en) * 2014-09-17 2017-07-11 Kabushiki Kaisha Toshiba Hybrid-HDD policy for what host-R/W data goes into NAND
US10055001B2 (en) * 2015-02-02 2018-08-21 Seagate Technology Llc System on chip power management
CN106339175A (zh) * 2015-07-08 2017-01-18 智微科技股份有限公司 应用于电子系统的混合储存装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1766857A (zh) * 2004-10-12 2006-05-03 日立环球储存科技荷兰有限公司 具有动态随机存取存储器和闪存的硬盘驱动器
CN101114492A (zh) * 2006-07-27 2008-01-30 日立环球储存科技荷兰有限公司 带有非易失性存储器的、具有多种操作模式的盘驱动器
CN102648457A (zh) * 2009-12-07 2012-08-22 微软公司 使用混合存储来延伸ssd生存期

Family Cites Families (201)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5457786A (en) 1990-07-03 1995-10-10 Texas Instruments Incorporated Serial data interface with circular buffer
US5333138A (en) 1992-03-11 1994-07-26 Ministor Peripherals International Limited Apparatus and method for preventing data corruption in disk drives from mechanical shock during write operations
US5420998A (en) 1992-04-10 1995-05-30 Fujitsu Limited Dual memory disk drive
US5471604A (en) * 1992-10-30 1995-11-28 Intel Corporation Method for locating sector data in a memory disk by examining a plurality of headers near an initial pointer
US5636355A (en) 1993-06-30 1997-06-03 Digital Equipment Corporation Disk cache management techniques using non-volatile storage
JPH0744325A (ja) 1993-07-27 1995-02-14 Fuji Electric Co Ltd ディスク記憶装置の起動およびデータ読み書き方式
US6437935B1 (en) 1994-11-16 2002-08-20 International Business Machines Corporation Method and apparatus for a real and positional optimization of a storage disk data zone
US5586291A (en) 1994-12-23 1996-12-17 Emc Corporation Disk controller with volatile and non-volatile cache memories
US5682273A (en) 1995-06-30 1997-10-28 International Business Machines Corporation Disk drive for portable computer with adaptive demand-driven power management
US5905901A (en) 1996-10-29 1999-05-18 Micron Electronics Method for adaptive power management of a computer system
US6115200A (en) 1997-02-03 2000-09-05 International Business Machines Corporation Method and apparatus for preventing write operations in the presence of post-shock motion
US6429990B2 (en) 1997-02-03 2002-08-06 International Business Machines Corporation Method and apparatus for controlling write operations of a data storage system subjected to a shock event
JPH1116259A (ja) 1997-06-24 1999-01-22 Internatl Business Mach Corp <Ibm> ヘッド機構制御装置および信号供給制御装置ならびにディスクドライブ装置
US5954820A (en) 1997-09-26 1999-09-21 International Business Machines Corporation Portable computer with adaptive demand-driven power management
US6044439A (en) 1997-10-27 2000-03-28 Acceleration Software International Corporation Heuristic method for preloading cache to enhance hit rate
US6374336B1 (en) 1997-12-24 2002-04-16 Avid Technology, Inc. Computer system and process for transferring multiple high bandwidth streams of data between multiple storage units and multiple applications in a scalable and reliable manner
US6295577B1 (en) 1998-02-24 2001-09-25 Seagate Technology Llc Disc storage system having a non-volatile cache to store write data in the event of a power failure
JP2998737B2 (ja) 1998-03-13 2000-01-11 日本電気株式会社 周辺機器用電源制御装置
US6408357B1 (en) 1999-01-15 2002-06-18 Western Digital Technologies, Inc. Disk drive having a cache portion for storing write data segments of a predetermined length
US7886108B2 (en) 2000-01-06 2011-02-08 Super Talent Electronics, Inc. Methods and systems of managing memory addresses in a large capacity multi-level cell (MLC) based flash memory device
US6539456B2 (en) 1999-10-13 2003-03-25 Intel Corporation Hardware acceleration of boot-up utilizing a non-volatile disk cache
US7610438B2 (en) 2000-01-06 2009-10-27 Super Talent Electronics, Inc. Flash-memory card for caching a hard disk drive with data-area toggling of pointers stored in a RAM lookup table
JP2001273707A (ja) 2000-03-28 2001-10-05 Internatl Business Mach Corp <Ibm> 回転記憶装置および情報記録方法
US6614616B1 (en) 2000-03-31 2003-09-02 Emc Corporation Determining seek times
US6725397B1 (en) 2000-11-14 2004-04-20 International Business Machines Corporation Method and system for preserving data resident in volatile cache memory in the event of a power loss
US6807630B2 (en) 2000-12-15 2004-10-19 International Business Machines Corporation Method for fast reinitialization wherein a saved system image of an operating system is transferred into a primary memory from a secondary memory
US6785767B2 (en) 2000-12-26 2004-08-31 Intel Corporation Hybrid mass storage system and method with two different types of storage medium
US6798599B2 (en) 2001-01-29 2004-09-28 Seagate Technology Llc Disc storage system employing non-volatile magnetoresistive random access memory
US6687850B1 (en) 2001-01-31 2004-02-03 Western Digital Technologies, Inc. Disk drive for storing sector-reconstruction sectors and for storing a sector-reconstruction status in sectors distributed around a disk
US6661591B1 (en) 2001-01-31 2003-12-09 Western Digital Technologies, Inc. Disk drive employing sector-reconstruction-interleave sectors each storing redundancy data generated in response to an interleave of data sectors
JP2002245738A (ja) 2001-02-15 2002-08-30 Fujitsu Ltd ディスク装置及び外乱補償方法
GB2373887A (en) 2001-03-28 2002-10-02 Hewlett Packard Co Context dependent operation, including power management, of a mobile computer
US6845456B1 (en) 2001-05-01 2005-01-18 Advanced Micro Devices, Inc. CPU utilization measurement techniques for use in power management
US7254721B1 (en) 2001-05-01 2007-08-07 Advanced Micro Devices, Inc. System and method for controlling an intergrated circuit to enter a predetermined performance state by skipping all intermediate states based on the determined utilization of the intergrated circuit
US6892313B1 (en) 2001-06-21 2005-05-10 Western Digital Technologies, Inc. Method for predictive power management for operating a disk drive in a mobile device to optimize power usage
US6732241B2 (en) 2001-09-07 2004-05-04 Hewlett-Packard Development Company, L.P. Technique for migrating data between storage devices for reduced power consumption
US7120806B1 (en) 2001-10-31 2006-10-10 Western Digital Technologies, Inc. Method for setting a power operating mode transition interval of a disk drive in a mobile device based on application category
US6928518B2 (en) 2001-11-01 2005-08-09 Sun Microsystems, Inc. Disk drive employing adaptive flushing of a write cache
JP2003216491A (ja) 2002-01-23 2003-07-31 Hitachi Ltd 階層キャッシュ制御方法
JP3702231B2 (ja) 2002-01-31 2005-10-05 株式会社東芝 ディスクアレイ装置及び同装置における動的記憶容量拡張方法
US7533214B2 (en) 2002-02-27 2009-05-12 Microsoft Corporation Open architecture flash driver
US6968450B1 (en) 2002-06-01 2005-11-22 Western Digital Technologies, Inc. Disk drive caching initial host requested data in non-volatile semiconductor memory to reduce start-up time of a host computer
US7017037B2 (en) 2002-06-27 2006-03-21 Microsoft Corporation Apparatus and method to decrease boot time and hibernate awaken time of a computer system utilizing disk spin-up-time
US7028174B1 (en) 2002-09-30 2006-04-11 Western Digital Technologies, Inc. Disk drive employing a non-volatile serial semiconductor memory for storing a control program for a microprocessor
US7114029B1 (en) 2002-10-31 2006-09-26 Western Digital Technologies, Inc. Disk drive employing a multi-phase rotational position optimization (RPO) algorithm
WO2004049147A1 (ja) 2002-11-25 2004-06-10 Fujitsu Limited 省電力制御システムおよび省電力制御方法
US7036040B2 (en) 2002-11-26 2006-04-25 Microsoft Corporation Reliability of diskless network-bootable computers using non-volatile memory cache
US7003620B2 (en) 2002-11-26 2006-02-21 M-Systems Flash Disk Pioneers Ltd. Appliance, including a flash memory, that is robust under power failure
US7082494B1 (en) 2002-12-24 2006-07-25 Western Digital Technologies, Inc. Disk drive executing a preemptive multitasking operating system comprising tasks of varying priority
US6856556B1 (en) 2003-04-03 2005-02-15 Siliconsystems, Inc. Storage subsystem with embedded circuit for protecting against anomalies in power signal from host
US7076605B1 (en) 2003-04-25 2006-07-11 Network Appliance, Inc. Method and apparatus for writing data to a storage device
US7139933B2 (en) 2003-06-20 2006-11-21 International Business Machines Corporation Preserving cache data against cluster reboot
JP4508608B2 (ja) 2003-11-13 2010-07-21 株式会社日立製作所 統合キャッシュを備えた記憶装置アダプタ
JP4450609B2 (ja) 2003-11-28 2010-04-14 株式会社日立製作所 記憶装置
US7206948B2 (en) 2003-12-09 2007-04-17 Seagate Technology Llc System and method for reducing power usage
JP3961480B2 (ja) 2003-12-26 2007-08-22 インターナショナル・ビジネス・マシーンズ・コーポレーション 磁気ディスク装置の保護機構、これを備えたコンピュータシステム、磁気ディスク装置制御方法及びプログラム
US7334082B2 (en) 2003-12-30 2008-02-19 Intel Corporation Method and system to change a power state of a hard drive
US7139864B2 (en) 2003-12-30 2006-11-21 Sandisk Corporation Non-volatile memory and method with block management system
US8286018B2 (en) 2004-06-29 2012-10-09 Seagate Technology Llc Power management in data storage device determining utilization of a control circuit by its rate of command processing
US7395452B2 (en) 2004-09-24 2008-07-01 Microsoft Corporation Method and system for improved reliability in storage devices
US20060075185A1 (en) 2004-10-06 2006-04-06 Dell Products L.P. Method for caching data and power conservation in an information handling system
US7516346B2 (en) 2004-10-28 2009-04-07 Nec Laboratories America, Inc. System and method for dynamically changing the power mode of storage disks based on redundancy and system load
US7502256B2 (en) 2004-11-30 2009-03-10 Siliconsystems, Inc. Systems and methods for reducing unauthorized data recovery from solid-state storage devices
KR101185614B1 (ko) 2005-01-31 2012-09-28 삼성전자주식회사 절전모드가 아닌 동작상태저장과 전원차단으로 구현하는시스템의 소비전력 감소 방법 및 장치
US20060195657A1 (en) 2005-02-28 2006-08-31 Infrant Technologies, Inc. Expandable RAID method and device
JP4735100B2 (ja) 2005-03-08 2011-07-27 ソニー株式会社 複合型記憶装置、データ処理方法及びプログラム
US7392340B1 (en) 2005-03-21 2008-06-24 Western Digital Technologies, Inc. Disk drive employing stream detection engine to enhance cache management policy
US7620773B2 (en) 2005-04-15 2009-11-17 Microsoft Corporation In-line non volatile memory disk read cache and write buffer
US8452929B2 (en) 2005-04-21 2013-05-28 Violin Memory Inc. Method and system for storage of data in non-volatile media
US7461202B2 (en) 2005-05-03 2008-12-02 International Business Machines Corporation Method and apparatus using hard disk drive for enhanced non-volatile caching
US7685360B1 (en) 2005-05-05 2010-03-23 Seagate Technology Llc Methods and structure for dynamic appended metadata in a dynamically mapped mass storage device
US7752491B1 (en) 2005-05-05 2010-07-06 Seagate Technology Llc Methods and structure for on-the-fly head depopulation in a dynamically mapped mass storage device
KR101257848B1 (ko) 2005-07-13 2013-04-24 삼성전자주식회사 복합 메모리를 구비하는 데이터 저장 시스템 및 그 동작방법
US7610445B1 (en) 2005-07-18 2009-10-27 Palm, Inc. System and method for improving data integrity and memory performance using non-volatile media
US7644231B2 (en) 2005-08-11 2010-01-05 International Business Machines Corporation Selective information caching on disk drive
US7966450B2 (en) 2005-09-01 2011-06-21 Micron Technology, Inc. Non-volatile hard disk drive cache system and method
US7509471B2 (en) 2005-10-27 2009-03-24 Sandisk Corporation Methods for adaptively handling data writes in non-volatile memories
KR100744122B1 (ko) 2006-01-12 2007-08-01 삼성전자주식회사 하이브리드 하드디스크 드라이브의 제어 방법, 이에 적합한기록 매체 그리고 이에 적합한 장치
US7421552B2 (en) 2006-03-17 2008-09-02 Emc Corporation Techniques for managing data within a data storage system utilizing a flash-based memory vault
JP4379814B2 (ja) 2006-03-28 2009-12-09 富士通株式会社 記憶装置、制御方法、制御装置及びプログラム
US7653778B2 (en) 2006-05-08 2010-01-26 Siliconsystems, Inc. Systems and methods for measuring the useful life of solid-state storage devices
US7613876B2 (en) 2006-06-08 2009-11-03 Bitmicro Networks, Inc. Hybrid multi-tiered caching storage system
US7552347B2 (en) 2006-06-13 2009-06-23 Scientific-Atlanta, Inc. Adaptive power management of a disk drive based on user activity
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
US7890696B2 (en) * 2006-06-29 2011-02-15 Seagate Technology Llc Command queue ordering with directional and floating write bands
US7509441B1 (en) 2006-06-30 2009-03-24 Siliconsystems, Inc. Systems and methods for segmenting and protecting a storage subsystem
US8244975B2 (en) * 2006-06-30 2012-08-14 Seagate Technology Llc Command queue ordering by flipping active write zones
US7425810B2 (en) 2006-06-30 2008-09-16 Lenovo (Singapore) Pte., Ltd. Disk drive management
US7447807B1 (en) 2006-06-30 2008-11-04 Siliconsystems, Inc. Systems and methods for storing data in segments of a storage subsystem
JP4799310B2 (ja) 2006-07-31 2011-10-26 株式会社東芝 磁気ディスク装置およびその制御方法
KR100767605B1 (ko) 2006-08-09 2007-10-17 주식회사 휴맥스 계층적 메모리를 구비한 영상 기록 재생 장치 및 계층적메모리 구현 방법
JP4897387B2 (ja) 2006-08-10 2012-03-14 株式会社日立製作所 ストレージ装置およびこれを用いたデータの管理方法
JP4908106B2 (ja) 2006-08-18 2012-04-04 東芝ストレージデバイス株式会社 記憶装置、制御方法、制御装置及びプログラム
KR100801015B1 (ko) 2006-08-30 2008-02-04 삼성전자주식회사 하이브리드 하드 디스크 드라이브와 데이터 저장 방법
US8015433B2 (en) 2006-09-13 2011-09-06 Hitachi Global Storage Technologies Netherlands B.V. Disk drive with nonvolatile memory for storage of failure-related data
US8161227B1 (en) 2006-10-30 2012-04-17 Siliconsystems, Inc. Storage subsystem capable of programming field-programmable devices of a target computer system
WO2008055269A2 (en) 2006-11-04 2008-05-08 Virident Systems, Inc. Asymmetric memory migration in hybrid main memory
JP4234753B2 (ja) 2006-12-15 2009-03-04 株式会社東芝 ハードディスクドライブおよびコマンド実行方法
US8549236B2 (en) 2006-12-15 2013-10-01 Siliconsystems, Inc. Storage subsystem with multiple non-volatile memory arrays to protect against data losses
JP2008171520A (ja) 2007-01-15 2008-07-24 Fujitsu Ltd 制御装置、制御方法、及び記憶装置
KR100881187B1 (ko) 2007-01-16 2009-02-05 삼성전자주식회사 하이브리드 하드 디스크 드라이브, 하이브리드 하드 디스크드라이브를 내장하는 컴퓨터 시스템, 그리고 하이브리드하드 디스크 드라이브의 플래시 메모리 dma 회로
US7596643B2 (en) 2007-02-07 2009-09-29 Siliconsystems, Inc. Storage subsystem with configurable buffer
KR100866962B1 (ko) 2007-03-08 2008-11-05 삼성전자주식회사 Hdd를 하이브리드 hdd에서 노멀 hdd로 전환시키는방법
KR100897561B1 (ko) 2007-04-27 2009-05-15 삼성전자주식회사 하드디스크 드라이브, 하드디스크 드라이브의 자기 헤드의부상높이 제어 방법 및 그 방법을 수행하는 컴퓨터프로그램을 기록한 기록매체
US7899987B2 (en) 2007-05-15 2011-03-01 Sandisk Il Ltd. File storage in a computer system with diverse storage media
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
US7765426B2 (en) 2007-06-07 2010-07-27 Micron Technology, Inc. Emerging bad block detection
US7797487B2 (en) * 2007-06-26 2010-09-14 Seagate Technology Llc Command queue loading
US7861038B2 (en) 2007-07-17 2010-12-28 International Business Machines Corporation Method and apparatus for managing data in a hybrid drive system
US8074034B2 (en) 2007-07-25 2011-12-06 Agiga Tech Inc. Hybrid nonvolatile ram
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
JP2009087405A (ja) 2007-09-27 2009-04-23 Hitachi Global Storage Technologies Netherlands Bv ディスク・ドライブ装置、その製造方法及びクリアランス調整するヒータのヒータ・パワー値を設定する方法
KR101347285B1 (ko) 2007-09-28 2014-01-07 삼성전자주식회사 하드디스크 드라이브의 선반입 방법, 이에 적합한 기록매체 그리고 이에 적합한 장치
US7890691B2 (en) * 2007-09-28 2011-02-15 Intel Corporation Memory cache sharing in hybrid hard disk
US8112603B2 (en) 2007-10-19 2012-02-07 International Business Machines Corporation Methods, systems, and computer program products for file relocation on a data storage device
JP2009104687A (ja) 2007-10-22 2009-05-14 Fujitsu Ltd 記憶装置及び制御回路
US7984259B1 (en) 2007-12-17 2011-07-19 Netapp, Inc. Reducing load imbalance in a storage system
US7774540B2 (en) 2007-12-26 2010-08-10 Hitachi Global Storage Technologies Netherlands B.V. Storage system and method for opportunistic write-verify
US7886110B2 (en) 2007-12-27 2011-02-08 Intel Corporation Dynamically adjusting cache policy based on device load in a mass storage system
US8775717B2 (en) 2007-12-27 2014-07-08 Sandisk Enterprise Ip Llc Storage controller for flash memory including a crossbar switch connecting a plurality of processors with a plurality of internal memories
US8423739B2 (en) 2008-02-06 2013-04-16 International Business Machines Corporation Apparatus, system, and method for relocating logical array hot spots
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
JP2009199660A (ja) 2008-02-21 2009-09-03 Fujitsu Ltd 磁気記録媒体の媒体欠陥検出方法及び磁気記憶装置
JP2009238320A (ja) 2008-03-27 2009-10-15 Fujitsu Ltd 記憶装置および記憶方法
US20090271562A1 (en) 2008-04-25 2009-10-29 Sinclair Alan W Method and system for storage address re-mapping for a multi-bank memory device
US7733712B1 (en) 2008-05-20 2010-06-08 Siliconsystems, Inc. Storage subsystem with embedded circuit for protecting against anomalies in power signal from host
US8060707B2 (en) 2008-05-22 2011-11-15 International Business Machines Corporation Minimization of read response time
JP4836282B2 (ja) 2008-06-12 2011-12-14 東芝ストレージデバイス株式会社 ヘッド浮上量調整方法及び書き込み電流値決定方法、並びに記憶装置
US20090327603A1 (en) 2008-06-26 2009-12-31 Mckean Brian System including solid state drives paired with hard disk drives in a RAID 1 configuration and a method for providing/implementing said system
JP5623399B2 (ja) 2008-07-28 2014-11-12 アギア システムズ エルエルシーAgere Systems LLC 変量補償浮上量測定システムおよび方法
US8583835B1 (en) 2008-08-06 2013-11-12 Siliconsystems, Inc. Command portal for executing non-standard storage subsystem commands
US8375151B1 (en) 2009-02-12 2013-02-12 Siliconsystems, Inc. Command portal for securely communicating and executing non-standard storage subsystem commands
US20100061207A1 (en) 2008-09-09 2010-03-11 Seagate Technology Llc Data storage device including self-test features
US7715145B2 (en) 2008-09-16 2010-05-11 Seagate Technology Llc Variable spindle speed for ramp unload
US20100088459A1 (en) 2008-10-06 2010-04-08 Siamak Arya Improved Hybrid Drive
US8261009B2 (en) 2008-12-30 2012-09-04 Sandisk Il Ltd. Method and apparatus for retroactive adaptation of data location
US9176859B2 (en) 2009-01-07 2015-11-03 Siliconsystems, Inc. Systems and methods for improving the performance of non-volatile memory operations
US8190832B2 (en) 2009-01-29 2012-05-29 International Business Machines Corporation Data storage performance enhancement through a write activity level metric recorded in high performance block storage metadata
US8049985B2 (en) 2009-02-03 2011-11-01 Seagate Technology Llc Variable spindle speed control for data storage devices
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
US20100325352A1 (en) 2009-06-19 2010-12-23 Ocz Technology Group, Inc. Hierarchically structured mass storage device and method
KR101662824B1 (ko) 2009-07-08 2016-10-06 삼성전자주식회사 고체 상태 드라이브 장치 및 그것의 구동 방법
CN102576293B (zh) 2009-09-08 2015-08-26 国际商业机器公司 固态存储设备和分层存储系统中的数据管理
JP5999645B2 (ja) 2009-09-08 2016-10-05 ロンギチュード エンタープライズ フラッシュ エスエイアールエル ソリッドステート記憶デバイス上にデータをキャッシングするための装置、システム、および方法
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
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
US8135903B1 (en) 2009-10-30 2012-03-13 Western Digital Technologies, Inc. Non-volatile semiconductor memory compressing data to improve performance
US9110594B2 (en) 2009-11-04 2015-08-18 Seagate Technology Llc File management system for devices containing solid-state media
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
US8438334B2 (en) 2009-12-22 2013-05-07 International Business Machines Corporation Hybrid storage subsystem with mixed placement of file contents
US8725977B2 (en) 2010-02-17 2014-05-13 Seagate Technology Llc NVMHCI attached hybrid data storage
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
US9026716B2 (en) 2010-05-12 2015-05-05 Western Digital Technologies, Inc. System and method for managing garbage collection in solid-state memory
US8327177B2 (en) 2010-05-17 2012-12-04 Dell Products L.P. System and method for information handling system storage device power consumption management
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
US8169726B2 (en) 2010-07-19 2012-05-01 Lsi Corporation Disk file preamplifier frequency-response and time delay compensation
US8639872B1 (en) 2010-08-13 2014-01-28 Western Digital Technologies, Inc. Hybrid drive comprising write cache spanning non-volatile semiconductor memory and disk
US8773802B1 (en) 2010-08-24 2014-07-08 Western Digital Technologies, Inc. Disk drive resetting fly height reference generated from a degrading calibration track
US8775720B1 (en) 2010-08-31 2014-07-08 Western Digital Technologies, Inc. Hybrid drive balancing execution times for non-volatile semiconductor memory and disk
US8782334B1 (en) 2010-09-10 2014-07-15 Western Digital Technologies, Inc. Hybrid drive copying disk cache to non-volatile semiconductor memory
US8638602B1 (en) 2010-09-10 2014-01-28 Western Digital Technologies, Inc. Background selection of voltage reference values for performing memory read operations
US8612804B1 (en) 2010-09-30 2013-12-17 Western Digital Technologies, Inc. System and method for improving wear-leveling performance in solid-state memory
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
KR101954995B1 (ko) 2011-04-27 2019-05-31 시게이트 테크놀로지 엘엘씨 저장 매체에 라이트 된 데이터 머지 방법, 저장 매체에 대한 라이트 동작 제어 방법, 이를 적용한 저장 장치, 컴퓨터 시스템 및 저장 매체
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
US8838895B2 (en) 2011-06-09 2014-09-16 21Vianet Group, Inc. Solid-state disk caching the top-K hard-disk blocks selected as a function of access frequency and a logarithmic system time
US8719531B2 (en) 2011-06-14 2014-05-06 Western Digital Technologies, Inc. System and method for performing data retention that incorporates environmental conditions
KR101890767B1 (ko) 2011-07-01 2018-09-28 시게이트 테크놀로지 인터내셔날 주소 사상 정보 관리 방법 이를 적용한 저장 장치
US8627035B2 (en) 2011-07-18 2014-01-07 Lsi Corporation Dynamic storage tiering
US8423722B1 (en) 2011-08-26 2013-04-16 Western Digital Technologies, Inc. System and method for high performance command processing in solid state drives
US8700834B2 (en) 2011-09-06 2014-04-15 Western Digital Technologies, Inc. Systems and methods for an enhanced controller architecture in data storage systems
US8707104B1 (en) 2011-09-06 2014-04-22 Western Digital Technologies, Inc. Systems and methods for error injection 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
US9003224B2 (en) 2012-04-25 2015-04-07 Western Digital Technologies, Inc. Managing unreliable memory in data storage systems
US9189395B2 (en) 2012-04-27 2015-11-17 Seagate Technology Llc Method and apparatus for adjustable virtual addressing for data storage
US8966343B2 (en) 2012-08-21 2015-02-24 Western Digital Technologies, Inc. Solid-state drive retention monitor using reference blocks
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1766857A (zh) * 2004-10-12 2006-05-03 日立环球储存科技荷兰有限公司 具有动态随机存取存储器和闪存的硬盘驱动器
CN101114492A (zh) * 2006-07-27 2008-01-30 日立环球储存科技荷兰有限公司 带有非易失性存储器的、具有多种操作模式的盘驱动器
CN102648457A (zh) * 2009-12-07 2012-08-22 微软公司 使用混合存储来延伸ssd生存期

Also Published As

Publication number Publication date
US20150062743A1 (en) 2015-03-05
US9070379B2 (en) 2015-06-30
CN105493185A (zh) 2016-04-13
HK1222257A1 (zh) 2017-06-23
WO2015031538A1 (en) 2015-03-05

Similar Documents

Publication Publication Date Title
US10761777B2 (en) Tiered storage using storage class memory
US9129628B1 (en) Data management for data storage device with different track density regions
US10969965B2 (en) Dynamic performance density tuning for data storage device
US9263088B2 (en) Data management for a data storage device using a last resort zone
US9424864B2 (en) Data management for a data storage device with zone relocation
US9141176B1 (en) Power management for data storage device
US9830939B1 (en) Workload balancing for multiple actuators
US9311939B1 (en) Write-through media caching
US10140067B1 (en) Data management for data storage device with multiple types of non-volatile memory media
US10740242B2 (en) Sensing device data caching
TWI385519B (zh) 資料寫入方法及使用此方法的快閃儲存系統與其控制器
US20150268872A1 (en) Lifetime extension of non-volatile semiconductor memory for data storage device
US20100250826A1 (en) Memory systems with a plurality of structures and methods for operating the same
US10394493B2 (en) Managing shingled magnetic recording (SMR) zones in a hybrid storage device
US9690696B1 (en) Lifetime extension of memory for data storage system
CN105096964A (zh) 数据存储设备的减振
US9933955B1 (en) Power safe write buffer for data storage device
CN107710143A (zh) 用于数据存储装置的介质区域管理
US8953269B1 (en) Management of data objects in a data object zone
CN105493185B (zh) 数据存储装置的数据迁移
US9959052B1 (en) Media based cache for data storage device
US8917471B1 (en) Power management for data storage device
US9323467B2 (en) Data storage device startup
US10282096B1 (en) Identification of data with predetermined data pattern
US9785563B1 (en) Read command processing for data storage system based on previous writes

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1222257

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: WD

Ref document number: 1222257

Country of ref document: HK