CN105683925A - 数据存储设备启动 - Google Patents
数据存储设备启动 Download PDFInfo
- Publication number
- CN105683925A CN105683925A CN201480059361.1A CN201480059361A CN105683925A CN 105683925 A CN105683925 A CN 105683925A CN 201480059361 A CN201480059361 A CN 201480059361A CN 105683925 A CN105683925 A CN 105683925A
- Authority
- CN
- China
- Prior art keywords
- data
- dsd
- solid
- state memory
- stored
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0632—Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B19/00—Driving, starting, stopping record carriers not specifically of filamentary or web form, or of supports therefor; Control thereof; Control of operating function ; Driving both disc and head
- G11B19/20—Driving; Starting; Stopping; Control thereof
- G11B19/2054—Spindle motor power-up sequences
-
- 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/0604—Improving or facilitating administration, e.g. storage management
-
- 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
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)
- Memory System Of A Hierarchy Structure (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
当从主机接收请求存储在数据存储设备(DSD)的磁盘上的数据的读取命令时,确定DSD是否处于启动期中并且确定请求的数据是否存储在DSD的固态存储器中。如果确定DSD处于启动期中并且请求的数据未被存储在固态存储器中,则请求的数据被指定用于存储在固态存储器中。
Description
背景技术
数据存储设备(DSD)常用于将数据记录到存储介质或再现来自存储介质的数据。一些DSD包括多类型的存储介质。在固态混合式驱动器(SSHD)的情况下,除了至少一种用于存储数据的旋转磁盘外,固态存储介质如快闪式存储器用于存储数据。
在启动包括主机和DSD的计算机系统期间,主机通常从DSD访问诸如特定操作系统(OS)数据和BIOS数据的引导数据(bootupdata)。该引导数据常常被存储在DSD的磁盘上,该DSD请求加速旋转磁盘直至从磁盘读取引导数据的操作速度。此外,在启动期期间加速旋转磁盘能够在启动期期间需要额外电力,针对依赖于电池电源的计算机系统,该额外电力能够是不期望的。
附图说明
当结合附图时从下文阐述的详细描述中,本公开的实施例的特征和优点将更显而易见。附图和相关的描述被提供用于说明本公开的实施例而非限制权利要求的范围。
图1是描述根据一个实施方式的数据存储设备(DSD)的框图。
图2是例示根据一个实施方式的自学习列表的概念图。
图3是根据一个实施方式的自学习过程的流程图。
图4是根据一个实施方式的数据驱逐过程的流程图。
图5是根据一个实施方式的介质同步过程的流程图。
具体实施方式
在以下详细描述中,阐述许多具体细节以提供对本公开的全面理解。然而,对本领域技术人员显而易见的是,可在无这些具体细节中的一些的情况下实践各种公开的实施例。在其它情况下,熟知的结构和技术未详细示出以避免不必要地含糊各种实施例。
数据存储设备概述
图1示出根据一个实施方式的计算机系统100,该计算机系统100包括主机101和数据存储设备(DSD)106。计算机系统100能够是例如计算机系统(例如,台式计算机、移动/膝上型轻便计算机、平板电脑、智能手机等)或诸如数字视频录像机(DVR)的其它的电子装置。就此而言,计算机系统100可以是独立系统或网络的部分。
在图1的示例中,DSD106为混合式驱动器,其包括两种类型的非易失性存储器(NVM)介质,即磁盘组(diskpack)134中的旋转磁盘和固态存储器128。尽管本文的描述通常是指固态存储器,但应当理解固态存储器可包括各种类型的存储器设备中的一种或多种,如快闪式集成电路、硫族化物RAM(C-RAM)、相变存储器(PC-RAM或PRAM)、可编程金属化单元RAM(PMC-RAM或PMCm)、奥沃尼克统一存储器(OUM)、电阻RAM(RRAM)、NAND存储器(例如,单级单元(SLC)存储器、多级单元(MLC)存储器或其任何组合)、NOR存储器、EEPROM、铁电存储器(FeRAM)、磁阻RAM(MRAM)、其他离散NVM芯片或其任何组合。
DSD106包括控制器120,其包括电路如一个或更多个用于执行指令的处理器并且能够包括微控制器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、硬连线逻辑、模拟电路和/或其组合。在一种实现中,控制器120能够包括片上系统(SoC)。
主机接口126经配置接合DSD106与主机101并且可根据标准接合,所述标准如,例如,PCI高速(PCIe)、串行高级技术附件(SATA)或串行连接SCSI(SAS)。如本领域技术人员将理解,主机接口126能够被包括作为控制器120的部分。
在图1的示例中,磁盘组134由主轴电机(SM)138旋转。DSD106还包括连接到致动器130的远端的头堆组件(HSA)136,所述致动器130由音圈电机(VCM)132旋转以相对于磁盘组134定位HSA136。伺服控制器122包括电路以使用VCM控制信号30和SM控制信号34来分别控制HSA136的定位和磁盘组134的旋转。
磁盘组134包括径向对齐以便围绕SM138旋转的多个磁盘。盘组134中每个磁盘包括若干用于将数据存储在磁盘表面上的径向隔开的同心轨道。HSA136包括多个头,每个头被布置以从磁盘组134中的磁盘的对应表面读取数据和将数据写入磁盘组134中的磁盘的对应表面。读/写通道124包括用于编码待写入磁盘组134的数据和用于解码从磁盘组134读取的数据的电路。如本领域技术人员将理解,读/写通道124能够被包括作为控制器120的部分。
DSD106还包括用于存储数据的固态存储器128。固态存储器128存储非易失性缓存(NVC)18,数据能够跨越电力周期期间被保留在此(即,在断开和接通DSD106之后)。NVC18能够用于存储可或不可存储于磁盘组134中的数据。固态存储器128还存储自学习列表20。如参照图2以下更详细地讨论,自学习列表20能够被使用为DSD106的自学习过程的部分,以跟踪跨越DSD106的多次启动而使用的数据。
易失性存储器140能够包括,例如,动态随机存取存储器(DRAM),其能够被DSD106使用来暂时存储数据。存储在易失性存储器140中的数据能够包括从NVM(例如,磁盘组134或固态存储器128)读取的数据、待写入NVM的数据、从DSD106的固件加载的用于通过控制器120执行的指令,和/或执行DSD106的固件时使用的数据。
在操作中,主机接口126从主机101经由主机接口126接收读取和写入命令,用于从NVM读取数据或将数据写入NVM,该NVM如固态存储器128和磁盘组134。响应于来自主机101的写入命令,控制器120可在易失性存储器140中为写入命令缓冲待写入的数据。
对于待写入磁盘组134的数据,读/写通道124能够编码缓冲的数据为写信号32,其被提供到HSA136用于将数据磁性写入磁盘组134的磁盘表面。
响应于对于存储在磁盘组134的磁盘表面上的数据的读取命令,控制器120经由伺服控制器122定位HSA136,以磁性读取存储在磁盘组134的表面上的数据。HSA136将读取的数据作为读信号32发送到读/写通道124用于解码并且在易失性存储器140中缓冲数据用于传送至主机101。
前述磁盘组134的用于服务读命令和写命令的操作通常需要比使用固态存储器128多的电力,因为在读取或将数据写入在磁盘组134上之前,磁盘组134需要通过SM138物理上加速旋转至操作速度。
因此,NVC18还能够存储存储在磁盘组134上的某些数据的副本,以使磁盘组134免于必须加速旋转。此类数据能够包括频繁访问的数据或用于引导或启动计算机系统100或DSD106的数据。例如,为了启动DSD106或计算机系统100而不必加速旋转磁盘组134,NVC18能够包括诸如用于DSD106的固件、特定操作系统(OS)数据、或BIOS引导数据之类的数据。在DSD106加电后,控制器120能够从NVC18加载这种数据并且准备好从主机101接收命令而不必加速旋转磁盘组134。除了用于磁盘组134的操作的其它组件如伺服控制器122和读/写通道124之外,这种布置通常能够允许针对计算机系统100的较快准备时间并且能够允许DSD106保持SM138断电。当计算机系统100必须依靠于具有低电荷的电池时,降低启动DSD106需要的电力能够是特别有益的。
在一些实现方式中,上述一般描述以及在下面更详细描述的“较少旋转驱动引导”能够充当为“高主轴抑制”(HSS)模式的部分,以在HSS模式期间减少SM138的旋转情况。在这种实现方式中,DSD106被认为是在启动期间处于HSS模式。HSS模式的示例能够在2013年12月13日提交的共同待审申请14/105,603(律师案号T6920),标题为“用于数据存储设备的电力管理(PowerManagementforDataStorageDevice)”中,其全部内容以引用方式并入本文。
示例自学习列表
图2是例示根据一个实施方式的自学习列表20的概念图,其中使用自学习列表20以跟踪跨越多个启动期使用的引导数据。如图2中所示,自学习列表20包括在202处的列表的开始和在204处的列表的结束之间标记为SLI1至SLIN-1的自学习信息。在图2的实施方式中,自学习列表20是双向链接列表,其中每个自学习信息条目SLI1至SLIN-1与在DSD106的启动期间读取或写入的数据相关。
自学习列表20能够是最近最少使用(LRU)算法的部分,以保持在202处的列表的开始和在204处的列表的结束之间的自学习信息的固定量。当在DSD106的启动期间接收读取命令或写入命令时,控制器120在202处的列表的开始处插入或重新插入与读取或写入命令相关的自学习信息。然后,朝向204处的列表的结束下推列表中的较旧的自学习信息。在这个方式中,如图2中的SLIN的情况,在列表中保留最近最多使用的数据,同时能够从列表去除最近最少使用的数据。然后,假设数据的副本已经在磁盘组134中存在,控制器120可以在NVC18中标记对应于去除的自学习信息的数据为无效。在其它的实现方式中,控制器120可以从NVC18删除对应于所去除的自学习信息的数据。另外,并且如以下参照图3更详细描述的,没有存储在NVC18中的具有在自学习列表20中的相关的自学习信息的数据被指定用于复制至NVC18。
自学习信息的每个实例与在DSD106的启动期期间读取或写入的数据相关。如针对SLI3所示,自学习信息能够包括:主机逻辑块地址(LBA)、块大小、位置信息和数据状态信息。主机LBA指示主机101使用的用于与读取或写入命令相关的数据的逻辑地址。在读取命令的情况下,主机LBA用于通过主机请求的数据。对于写入命令,主机LBA用于待写入的数据。块大小指示能够分配用于固态存储器128中的数据的诸如4KB或8KB之类的数据容量大小。位置信息能够指示数据在固态存储器128中的位置,诸如块地址或页面地址。数据状态信息能够指示数据当前是否仅存储在磁盘组134中、仅存储在固态存储器128中、或存储在磁盘组134和固态存储器128二者中(即,在两种介质上同步)。其它的实施方式可以仅包括自学习信息的以上示例中的一些,诸如,仅包括用于在启动期间读取或写入的数据的主机LBA。
通过维持自学习列表20,解释在多个启动期上使用的引导数据的变化一般是可能的。这种变化可以由例如,对OS的更新或由计算机系统100中的其它变化而导致。因此,自学习列表20能够允许与启动期相关的数据随着时间的推移演变,从而更精准地预测在下一个启动期期间将被访问的数据。
示例自学习过程
图3是根据一个实施方式的能够通过控制器120执行的自学习过程的流程图。当DSD106经由主机接口126接收来自主机101的读取或写入命令时,过程在框302中开始。
在框304中,控制器120确定DSD106是否在启动期中。控制器120可以基于从主机101接收的指示做出这个确定。例如,控制器120可以在框304中检查主机101是否已经发布指示在主机101上执行的OS已经完成引导的具体命令或询问。在其它实现方式中,控制器120可以使用自启动之后在DSD106和主机101之间传输的数据量来确定DSD106是否处于启动期。例如,如果自启动之后在DSD106和主机101之间传输的数据量小于200MB,则控制器120可以确定的是DSD106是在启动期中。还可以基于预定时间量诸如30秒在框304中做出确定,使得如果自启动之后小于30秒,则控制器120确定DSD106是在启动期中。
在一些实施方式中,在框304中控制器120可以使用以上指示器的组合,以确定DSD106是否是在启动期中。例如,如果以上条件中任何一个发生,即,如果已经从主机101接收指示、已经传输预定数据量、或预定时间量已经过去中的任一个发生,则控制器120可以确定DSD106是在启动期中。
如果在框304中控制器120确定DSD106不在启动期中,则正常地处理在框302中接收的命令而不自学习。另一方面,如果在框304中控制器120确定DSD106是在启动期中,则在框308中控制器120确定在框302中接收的命令是读取命令还是写入命令。如果命令不是读取命令(即,命令是写入命令),则在框310中控制器120指定与写入命令相关的数据用于稍后存储在磁盘组134中。该数据可以被称作为“脏数据”,其是需要与磁盘组134同步的数据,因为在框312中该数据最初将仅被存储在固态存储器128中。脏数据的指定可以通过将用于数据的LBA列表中的用于脏数据的LBA标记为待复制至磁盘组134。框310的指定还可以通过使用以上讨论的自学习信息的数据状态信息进行,以指示所指定的数据仅被存储在固态存储器128中。当DSD106没有正在服务任何主机命令时,例如能够作为在后台活动的部分完成复制至磁盘组134。这种复制可以被执行为诸如以下描述的图5的同步过程之类的同步过程的部分。尽管本实施方式提供引导数据的稍后备份,但是,其它实施方式可以省略框310,其中引导数据的仅一个副本是所需的。
在框312中,针对写入命令的数据被写入至固态存储器128中的NVC18。作为将数据写入至固态存储器128的部分,控制器120可以首先检查在固态存储器128中存在足够可用的存储容量以写入数据。在一些实施方式中,如果不存在足够的存储容量,则控制器120可以代之以将数据写入至磁盘组134。
如上所述,在启动期期间写入的数据能够被存储在固态存储器128中,而不是磁盘组134中,以提高在随后启动期期间的数据的访问性,因为磁盘组134将不需要被加速旋转以访问数据。此外,由于加速旋转磁盘组134或供电DSD106的特定组件用于操作磁盘组134将不再是必要的,因此访问在启动期期间在框312中写入的数据所需要的电力应该会减少。
在框324中,控制器120更新自学习列表20,以在列表的开始处针对在框312中的写入数据插入或重新插入自学习信息。然后,过程结束在框328中。
如果在框308中确定命令是读取命令,则在框314中控制器120确定用于读取命令请求的数据的地址在固态存储器128中是否被识别(即,缓存命中(cachehit))。如果是,则在框326中从固态存储器128中读取所请求的数据,并且通过在列表的开始处针对在框326中读取的数据插入或重新插入自学习信息,在框324中更新自学习列表20。
如果在框314中没有在固态存储器128中识别针对请求的数据的地址(即,缓存未命中(cachemiss)),则在框316中控制器120指定用于存储在固态存储器128的所请求数据。在框316中的指定能够针对未来启动期允许控制器120向固态存储器128稍后复制所请求的数据。例如,能够作为当DSD106没有正在服务任何主机命令时的后台活动的部分完成复制。这种复制可以被执行为诸如以下描述的图5的同步过程之类的同步过程的部分。
在框316中,通过将与所请求的数据相关的LBA标记为待从磁盘组134复制至固态存储器128而进行指定。还可以借助于使用自学习列表20中的自学习信息而进行指定。例如,自学习信息的数据状态信息可以指示数据仅被存储在磁盘组134中,并且因此需要将该数据从磁盘组134复制至NVC18,而自学习信息保留在自学习表20中。
在框318中,控制器120检查磁盘组134是否加速旋转。如果是,则在框322中读取来自磁盘组134的所请求的数据。
如果在框318中磁盘组134不是已经被加速旋转,则在框320中控制器120控制SM138加速旋转磁盘组134,以读取所请求的数据。如果没有准备好在磁盘组134上执行读取操作,则控制器120还可以需要初始化或对诸如读/写通道124或伺服控制器122之类的特定电路加电。在框322中从磁盘组134读取所请求的数据,并且通过插入或重新插入针对在框322中读取的所请求的数据的自学习信息,在框324中更新自学习列表。然后,图3的自学习过程结束在框328中。
示例数据驱逐过程
图4是根据一个实施方式的能够通过控制器120执行的数据驱逐过程的流程图。在框402中,DSD106接收来自主机101的命令,以从固态存储器128驱逐特定数据。就此而言,数据的驱逐能够包括:从固态存储器128移动数据至磁盘组134,从固态存储器128删除数据,和/或在固态存储器128中将数据标记为无效。
在框404中,控制器120确定待驱逐的数据是否在自学习列表20中被引用。该确定可以通过将待驱逐的数据的LBA与在自学习列表20的自学习信息中的LBA进行比较而进行。
如果数据在自学习列表20中被引用,则这意味着待驱逐的数据最近已经在DSD106的启动期期间被使用,并且由于其可能需要用在DSD106的未来启动期间,所以不应该从固态存储器128驱逐。
相应地,如果在框404中确定待驱逐的数据在自学习列表20中被引用,则在框408中控制器120内部覆盖(override)驱逐命令,使得不管驱逐数据的命令,该数据仍停留在固态存储器128中。驱逐命令的覆盖能够对主机101是透明的。在其它实施方式中,DSD106可以向主机101提供数据不能被驱逐的通知。
如果在框404中控制器120确定在自学习列表20中没有引用该数据,则由于将不可能在未来的启动期中需要该数据,所以在框406中控制器120执行数据的驱逐。然后,图4的驱逐过程结束在框410中。
在从固态存储器128驱逐数据之前,通过检查待驱逐的数据是否在自学习列表20中被引用,降低需要加速旋转磁盘组134以在启动期期间访问所驱逐的数据的可能性一般是可能的。
示例同步过程
图5是根据一个实施方式的能够通过控制器120执行的同步过程的流程图。图5的同步过程能够在启动期之后被执行为后台活动,以使得用于启动的数据存储在磁盘组134和固态存储器128二者中。
当后台计时器期满(指示针对预定时段没有接收到主机命令)时,同步过程开始在框502中。在框504中,控制器120确定是否存在指定用于存储在固态存储器128中的任何数据。这种数据可能已经被指定用于存储在固态存储器128,因为以前在启动期间数据不可从固态存储器128获得。
如果存在被指定用于存储在固态存储器128中的数据,则在框506中控制器120从磁盘组134读取所指定的数据,并且在框508中将所指定的数据写入至NVC18。
在框504中如果不存在所指定的数据,则在框510中控制器120确定是否存在指定用于从固态存储器128复制至磁盘组134的任何数据。如果否,则同步过程结束在框518中。
在框510中如果控制器120确定存在指定用于存储在磁盘组134的数据,则在框512中从固态存储器128读取所指定的数据,并且在框514中将所指定的数据写入至磁盘组134。作为将数据写入至固态存储器128的部分,控制器120可以首先检查在固态存储器128中存在足够可用存储容量以写入数据。
在框508或框514中写入所指定的数据之后,在框516中更新自学习列表20,以反映被存储在磁盘组134和固态存储器128两者中的所指定数据的当前数据状态。然后,图5的同步过程结束在框518中。
通过在固态存储器128中存储启动或引导数据,在启动期期间降低DSD106消耗的电力和增加用于DSD106的准备时间一般是可能的。此外,以上讨论的自学习过程允许DSD106通过更新其存储在NVC18中的数据,适应在启动中随时间发生的改变。
以下表格例示根据本公开的测试结果,该结果示出由于在固态存储器中存储更多启动数据,在启动之后从BIOS转换至OS的时间的改善,在启动之后OS用户界面(UI)变成可用的时间的改善,以及功率消耗的改善。
表1
运行 | 转换到OS的时间(毫秒) | OS UI可用性(秒) | 主轴状态 |
1 | 3,433 | 9.081 | 旋转 |
2 | 3,170 | 8.881 | 旋转 |
3 | 1,114 | 8.617 | 旋转 |
4 | 1,106 | 8.350 | 旋转 |
5 | 1,113 | 8.566 | 旋转 |
6 | 1,113 | 8.342 | 旋转 |
7 | 1,114 | 8.159 | 旋转 |
8 | 1,113 | 6.557 | 不旋转 |
9 | 1,113 | 6.311 | 不旋转 |
以上表格1示出跨越用于实现图3和5的过程的DSD的9个连续启动期的若干性能测量值。表格1的性能测量值包括转换到OS的时间列中在启动之后主机多快能够完成执行BIOS以及多快能够转换至执行OS。OSUI可用性列指示在启动之后OSUI变得可用的时间,并且主轴状态列指示在启动期期间用于磁盘组的主轴是否正在旋转。
如上所述,转换到OS的时间和OSUI变得可用的时间二者均随着9个运行而减少。转换到OS的时间减少了2,320毫秒(ms)或大约减少了67%。0SUI变得可用的时间减少了2.77秒或减少大约30%。此外,由于在启动期期间不再必须旋转磁盘组以访问数据,所以更少的功率被使用在运行8和9中。然而,即使在磁盘组在运行2至7中仍旋转的情况下,由于更多启动数据被存储在固态存储器中,所以由初始运行改善了转换到OS的时间和OSUI可用性。
以下表格2更进一步例示上述过程的功率节省。
表格2
条件 | 主轴状态 | 平均功率(毫瓦) |
0%数据存储 | 旋转 | 3,071 |
50%数据存储 | 旋转 | 2,841 |
100%数据存储 | 不旋转 | 2,772 |
如表格2所示,当在固态存储器中存储或缓存更多数据时,由于在磁盘组上执行更少操作,所以使用更少功率。到在固态存储器中存储或缓存全部的启动数据的时间的时候,磁盘组不再需要被加速旋转,并且在启动期期间的平均功率被降低了299毫瓦或降低大约9.7%。
本领域技术人员将理解,结合本文公开的示例描述的各种说明性逻辑块、模块和过程可实现为电子硬件、计算机软件或两者的组合。此外,前述过程能够在使处理器或计算机进行或执行某些功能的计算机可读介质上实施。
为清楚说明硬件和软件的这种可互换性,通常已就其功能性,在上文描述了各种说明性组件、块和模块。此类功能性是否实现为硬件或软件取决于施加于整个系统上的特定应用程序和设计约束。对于每种特定的应用程序,本领域技术人员可以不同方式实现描述的功能性,但此类实现决定不应被解释为造成脱离本公开的范围。
可借助通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑设备、离散门或晶体管逻辑、离散硬件组件或被设计用于执行本文所述功能的这些设备的任何组合,来实现或进行结合本文公开的示例描述的各种说明性逻辑块、单元、模块和控制器。通用处理器可为微处理器,但在替换方案中,处理器可为任何常规处理器、控制器、微控制器或状态机。处理器还可实现为计算设备的组合,例如DSP和微处理器、多个微处理器、一个或更多个微处理器连同DSP核心或任何其它此类结构的组合。
结合本文公开的示例描述的方法或过程的活动可直接在硬件、在由处理器执行的软件模块或在这两者的组合中实施。方法或算法的步骤也可以来自示例中提供的顺序的替换顺序进行。软件模块可驻留在RAM存储器、快闪式存储器、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动介质、光学介质或本领域已知的任何其它形式的存储介质中。示例性存储介质耦合到处理器,使得该处理器能够从存储介质读取信息,和将信息写入存储器介质。在替换方案中,存储介质可集成到处理器。处理器和存储介质可驻留在专用集成电路(ASIC)中。
提供前述公开的示例实施例的描述用于使本领域技术人员能够制备或使用本公开中的实施例。在不脱离本公开的精神或范围的情况下,对这些示例的各种修改将对本领域技术人员显而易见,并且本文公开的原理可应用于其它示例。描述的实施例在所有方面被认为仅是说明性的而非限制性的,并且因此本公开的范围由以下权利要求而不是前述描述指出。落在权利要求的等同物的含义和范围内的所有改变都包括在权利要求的范围内。
Claims (22)
1.一种数据存储设备即DSD,所述数据存储设备包括:
磁盘,所述磁盘用于存储数据;
固态存储器,所述固态存储器用于存储数据;以及
控制器,所述控制器被配置为:
从主机接收请求存储在所述磁盘上的数据的读取命令;
确定所述DSD是否在所述DSD的启动期中;
确定所请求的数据是否存储在所述固态存储器中;以及
如果确定所述DSD在所述启动期中并且所述请求的数据未被存储在所述固态存储器中,则指定所述请求的数据用于存储在所述固态存储器中。
2.根据权利要求1所述的DSD,其中,所述控制器进一步被配置为:
从所述主机接收写入命令,以在所述启动期期间在所述DSD中存储数据;
在所述固态存储器中存储针对所述写入命令的所述数据;以及
指定针对所述写入命令的所述数据稍后存储在所述磁盘上。
3.根据权利要求1所述的DSD,其中,所述控制器进一步被配置为:基于从所述主机接收的指示,确定所述DSD是否在所述启动期中。
4.根据权利要求3所述的DSD,其中,从所述主机接收的所述指示指示在所述主机上运行的操作系统已经完成引导。
5.根据权利要求1所述的DSD,其中,所述控制器进一步被配置为:基于自所述DSD的启动之后的时间的量和自所述DSD的启动之后在所述DSD和所述主机之间传输的数据的量中的至少一个,确定所述DSD是否在启动期中。
6.根据权利要求1的所述DSD,其中,所述控制器进一步被配置为:在多个启动期期间,保持包括与读取的数据或写入的数据相关的条目的列表。
7.根据权利要求6所述的DSD,其中,所述控制器进一步配置为:当在启动期期间从所述主机接收到读取命令或写入命令时,在所述列表的开始处插入或重新插入条目。
8.根据权利要求6的所述DSD,其中,所述控制器进一步被配置为:
从所述列表去除与在多个启动期期间的最近最少使用的数据相关的条目;以及
从所述固态存储器删除所述最近最少使用的数据,或在所述固态存储器中将所述最近最少使用的数据标记为无效。
9.根据权利要求6所述的DSD,其中,在所述列表中的条目包括以下项中的至少一个:在多个启动期中的启动期期间读取的数据或写入的数据的逻辑地址、块大小和物理地址。
10.根据权利要求6的所述DSD,其中,在所述列表中的条目包括数据状态信息,所述数据状态信息指示与所述条目相关的所述数据是否仅被存储在所述磁盘上,是否仅被存储在所述固态存储器中,或者是否存储在所述磁盘和所述固态存储器二者中。
11.根据权利要求6的所述DSD,其中,所述控制器进一步被配置为:
接收从所述固态存储器驱逐数据的命令;
确定待驱逐的数据是否在所述列表中被引用;以及
如果确定所述数据在所述列表中被引用,则覆盖驱逐所述数据的命令。
12.一种用于操作数据存储设备即DSD的方法,所述方法包括:
从主机接收请求存储在所述DSD的磁盘上的数据的读取命令;
确定所述DSD是否在启动期中;
确定所请求的数据是否存储在所述DSD的固态存储器中;以及
如果确定所述DSD在所述启动期中并且所述请求的数据未被存储在所述固态存储器中,则指定所述请求的数据用于存储在所述固态存储器中。
13.根据权利要求12所述的方法,所述方法进一步包括:
在所述启动期期间,从所述主机接收写入命令,以在所述DSD中存储数据;
在所述固态存储器中存储针对所述写入命令的所述数据;以及
指定针对所述写入命令的所述数据用于稍后存储在所述磁盘上。
14.根据权利要求12所述的方法,所述方法进一步包括:基于从所述主机接收的指示,确定所述DSD是否在所述启动期中。
15.根据权利要求14所述的方法,其中,从所述主机接收的所述指示指示在所述主机上运行的操作系统已经完成引导。
16.根据权利要求12所述的方法,所述方法进一步包括:基于自所述DSD的启动之后的时间的量和自所述DSD的启动之后在所述DSD和所述主机之间传输的数据的量中的至少一个,确定所述DSD是否在启动期中。
17.根据权利要求12的所述方法,所述方法进一步包括:在多个启动期期间,保持包括与读取的数据或写入的数据相关的条目的列表。
18.根据权利要求17所述的方法,所述方法进一步包括:当在启动期期间从所述主机接收到读取命令或写入命令时,在所述列表的开始处插入或重新插入条目。
19.根据权利要求17所述的方法,所述方法进一步包括:
从所述列表中去除与在所述多个启动期期间的最近最少使用的数据相关的条目;以及
从所述固态存储器删除所述最近最少使用的数据,或在所述固态存储器中将所述最近最少使用的数据标记为无效。
20.根据权利要求17所述的方法,其中,在所述列表中的条目包括以下项中的至少一个:在多个启动期中的启动期期间读取的数据或写入的数据的逻辑地址、块大小和物理地址。
21.根据权利要求17的所述方法,其中,在所述列表中的条目包括数据状态信息,所述数据状态信息指示与所述条目相关的所述数据是否仅存储在所述磁盘上,是否仅存储在所述固态存储器中,或者是否存储在所述磁盘和所述固态存储器二者中。
22.根据权利要求17所述的方法,所述方法进一步包括:
接收从所述固态存储器驱逐数据的命令;
确定待驱逐的数据是否在所述列表中被引用;以及
如果确定所述数据在所述列表中被引用,则覆盖驱逐所述数据的所述命令。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361897038P | 2013-10-29 | 2013-10-29 | |
US61/897,038 | 2013-10-29 | ||
US14/105,696 | 2013-12-13 | ||
US14/105,696 US9323467B2 (en) | 2013-10-29 | 2013-12-13 | Data storage device startup |
PCT/US2014/062996 WO2015066234A1 (en) | 2013-10-29 | 2014-10-29 | Data storage device startup |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105683925A true CN105683925A (zh) | 2016-06-15 |
Family
ID=52996787
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480059361.1A Pending CN105683925A (zh) | 2013-10-29 | 2014-10-29 | 数据存储设备启动 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9323467B2 (zh) |
CN (1) | CN105683925A (zh) |
WO (1) | WO2015066234A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10289326B2 (en) | 2015-09-14 | 2019-05-14 | HGST Netherlands, B.V. | Optimized data layout for object store system |
US10013174B2 (en) * | 2015-09-30 | 2018-07-03 | Western Digital Technologies, Inc. | Mapping system selection for data storage device |
US10073625B2 (en) * | 2016-01-06 | 2018-09-11 | HGST Netherlands B.V. | Variable-RPM hard disk drive control |
US20200042750A1 (en) * | 2018-08-02 | 2020-02-06 | Qualcomm Incorporated | Secure access for system power management interface (spmi) during boot |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6212605B1 (en) * | 1997-03-31 | 2001-04-03 | International Business Machines Corporation | Eviction override for larx-reserved addresses |
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 |
CN1766857A (zh) * | 2004-10-12 | 2006-05-03 | 日立环球储存科技荷兰有限公司 | 具有动态随机存取存储器和闪存的硬盘驱动器 |
CN1801121A (zh) * | 2004-05-03 | 2006-07-12 | 微软公司 | 非易失性存储器高速缓存性能改进 |
US20110145489A1 (en) * | 2004-04-05 | 2011-06-16 | Super Talent Electronics, Inc. | Hybrid storage device |
US20130212325A1 (en) * | 2011-03-10 | 2013-08-15 | Kabushiki Kaisha Toshiba | Information processing device, external storage device, host device, relay device, control program, and control method of information processing device |
Family Cites Families (142)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
JPH0744325A (ja) | 1993-07-27 | 1995-02-14 | Fuji Electric Co Ltd | ディスク記憶装置の起動およびデータ読み書き方式 |
JP3254081B2 (ja) * | 1994-06-23 | 2002-02-04 | 富士通株式会社 | 計算機システム及びその制御方法 |
US5586291A (en) | 1994-12-23 | 1996-12-17 | Emc Corporation | Disk controller with volatile and non-volatile cache memories |
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 |
US6044439A (en) | 1997-10-27 | 2000-03-28 | Acceleration Software International Corporation | Heuristic method for preloading cache to enhance hit rate |
JP2998737B2 (ja) | 1998-03-13 | 2000-01-11 | 日本電気株式会社 | 周辺機器用電源制御装置 |
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> | 回転記憶装置および情報記録方法 |
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 |
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 | ディスク装置及び外乱補償方法 |
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 |
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 |
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 |
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 |
US7127549B2 (en) | 2004-02-04 | 2006-10-24 | Sandisk Corporation | Disk acceleration using first and second storage devices |
US7395452B2 (en) | 2004-09-24 | 2008-07-01 | Microsoft Corporation | Method and system for improved reliability in storage devices |
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 |
SG122964A1 (en) * | 2004-11-22 | 2006-06-29 | Inventio Ag | Integrity testsing of isolation means in an uninterruptible power supply |
US7502256B2 (en) | 2004-11-30 | 2009-03-10 | Siliconsystems, Inc. | Systems and methods for reducing unauthorized data recovery from solid-state storage devices |
US20060195657A1 (en) | 2005-02-28 | 2006-08-31 | Infrant Technologies, Inc. | Expandable RAID method and device |
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 | 삼성전자주식회사 | 복합 메모리를 구비하는 데이터 저장 시스템 및 그 동작방법 |
US7644231B2 (en) | 2005-08-11 | 2010-01-05 | International Business Machines Corporation | Selective information caching on disk drive |
US7509471B2 (en) | 2005-10-27 | 2009-03-24 | Sandisk Corporation | Methods for adaptively handling data writes in non-volatile memories |
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 |
US8108692B1 (en) | 2006-06-27 | 2012-01-31 | Siliconsystems, Inc. | Solid-state storage subsystem security solution |
US7765373B1 (en) | 2006-06-27 | 2010-07-27 | Siliconsystems, Inc. | System for controlling use of a solid-state storage subsystem |
US7447807B1 (en) | 2006-06-30 | 2008-11-04 | Siliconsystems, Inc. | Systems and methods for storing data in segments of a storage subsystem |
US20080005462A1 (en) | 2006-06-30 | 2008-01-03 | Mosaid Technologies Incorporated | Method of configuring non-volatile memory for a hybrid disk drive |
US7509441B1 (en) | 2006-06-30 | 2009-03-24 | Siliconsystems, Inc. | Systems and methods for segmenting and protecting a storage subsystem |
US7411757B2 (en) | 2006-07-27 | 2008-08-12 | Hitachi Global Storage Technologies Netherlands B.V. | Disk drive with nonvolatile memory having multiple modes of operation |
KR100767605B1 (ko) | 2006-08-09 | 2007-10-17 | 주식회사 휴맥스 | 계층적 메모리를 구비한 영상 기록 재생 장치 및 계층적메모리 구현 방법 |
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 |
US8549236B2 (en) | 2006-12-15 | 2013-10-01 | Siliconsystems, Inc. | Storage subsystem with multiple non-volatile memory arrays to protect against data losses |
JP4234753B2 (ja) | 2006-12-15 | 2009-03-04 | 株式会社東芝 | ハードディスクドライブおよびコマンド実行方法 |
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로 전환시키는방법 |
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 |
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 |
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 | 記憶装置及び制御回路 |
US7774540B2 (en) | 2007-12-26 | 2010-08-10 | Hitachi Global Storage Technologies Netherlands B.V. | Storage system and method for opportunistic write-verify |
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 |
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 |
US8621144B2 (en) | 2008-06-26 | 2013-12-31 | Intel Corporation | Accelerated resume from hibernation in a cached disk system |
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 |
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 |
US20100088459A1 (en) | 2008-10-06 | 2010-04-08 | Siamak Arya | Improved Hybrid Drive |
US9176859B2 (en) | 2009-01-07 | 2015-11-03 | Siliconsystems, Inc. | Systems and methods for improving the performance of non-volatile memory operations |
US20100199036A1 (en) | 2009-02-02 | 2010-08-05 | Atrato, Inc. | Systems and methods for block-level management of tiered storage |
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 |
US9881039B2 (en) | 2009-05-26 | 2018-01-30 | International Business Machines Corporation | Rebalancing operation using a solid state memory device |
US8171216B2 (en) | 2009-05-29 | 2012-05-01 | Dell Products, Lp | System and method for managing devices in an information handling system |
US8880835B2 (en) | 2009-07-07 | 2014-11-04 | International Business Machines Corporation | Adjusting location of tiered storage residence based on usage patterns |
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 |
US8407403B2 (en) | 2009-12-07 | 2013-03-26 | Microsoft Corporation | Extending SSD lifetime using hybrid storage |
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 |
US8315006B1 (en) | 2010-03-09 | 2012-11-20 | Western Digital Technologies, Inc. | Adaptive data writing mode based on drive environment |
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 |
US8825976B1 (en) | 2010-09-28 | 2014-09-02 | Western Digital Technologies, Inc. | Hybrid drive executing biased migration policy during host boot to migrate data to a non-volatile semiconductor memory |
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 |
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 |
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 |
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 |
US8713357B1 (en) | 2011-09-06 | 2014-04-29 | Western Digital Technologies, Inc. | Systems and methods for detailed error reporting 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 |
US8700834B2 (en) | 2011-09-06 | 2014-04-15 | Western Digital Technologies, Inc. | Systems and methods for an enhanced controller architecture 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 |
US9207947B1 (en) * | 2012-08-30 | 2015-12-08 | Seagate Technology Llc | Fast boot in hybrid drives |
US9568966B2 (en) * | 2012-08-31 | 2017-02-14 | Dell Products L.P. | Dynamic power budget allocation |
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 |
US8917471B1 (en) | 2013-10-29 | 2014-12-23 | Western Digital Technologies, Inc. | Power management for data storage device |
-
2013
- 2013-12-13 US US14/105,696 patent/US9323467B2/en not_active Expired - Fee Related
-
2014
- 2014-10-29 WO PCT/US2014/062996 patent/WO2015066234A1/en active Application Filing
- 2014-10-29 CN CN201480059361.1A patent/CN105683925A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6212605B1 (en) * | 1997-03-31 | 2001-04-03 | International Business Machines Corporation | Eviction override for larx-reserved addresses |
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 |
US20110145489A1 (en) * | 2004-04-05 | 2011-06-16 | Super Talent Electronics, Inc. | Hybrid storage device |
CN1801121A (zh) * | 2004-05-03 | 2006-07-12 | 微软公司 | 非易失性存储器高速缓存性能改进 |
CN1766857A (zh) * | 2004-10-12 | 2006-05-03 | 日立环球储存科技荷兰有限公司 | 具有动态随机存取存储器和闪存的硬盘驱动器 |
US20130212325A1 (en) * | 2011-03-10 | 2013-08-15 | Kabushiki Kaisha Toshiba | Information processing device, external storage device, host device, relay device, control program, and control method of information processing device |
Also Published As
Publication number | Publication date |
---|---|
WO2015066234A1 (en) | 2015-05-07 |
US9323467B2 (en) | 2016-04-26 |
US20150120995A1 (en) | 2015-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11726661B2 (en) | Information processing apparatus, method for controlling information processing apparatus, non-transitory recording medium storing control tool, host device, non-transitory recording medium storing performance evaluation tool, and performance evaluation method for external memory device | |
US10768679B2 (en) | Memory system and controller | |
US10776153B2 (en) | Information processing device and system capable of preventing loss of user data | |
JP5413572B2 (ja) | メモリストレージ装置及びその制御方法 | |
US8694984B2 (en) | Memory apparatus and method of updating firmware of the memory apparatus | |
CN111752487B (zh) | 一种数据恢复方法、装置及固态硬盘 | |
KR101870521B1 (ko) | 스토리지 저널링을 개선하는 방법 및 시스템 | |
CN107908571B (zh) | 一种数据写入方法、闪存装置及存储设备 | |
US20170242584A1 (en) | Method of dynamic table journaling | |
CN102096561B (zh) | 分层数据存储处理方法、装置以及存储设备 | |
CN104050056A (zh) | 多存储介质设备的文件系统备份 | |
KR20200113992A (ko) | 메모리 시스템의 복구 동작 중 비휘발성 메모리 오픈 블록의 셀 디스터브를 줄이는 방법 및 장치 | |
TWI668573B (zh) | 用於在突然斷電時降低功率消耗之資料儲存方法和資料儲存設備 | |
US20210157720A1 (en) | Enhanced filesystem support for zone namespace memory | |
CN105683925A (zh) | 数据存储设备启动 | |
US8429344B2 (en) | Storage apparatus, relay device, and method of controlling operating state | |
US9459802B1 (en) | Hybrid-HDD that limits dirty data in NAND | |
US9047923B1 (en) | Fast shingled tracks recording | |
US8917471B1 (en) | Power management for data storage device | |
CN110609596B (zh) | 数据储存装置的开发系统以及产品化方法 | |
CN108509295B (zh) | 存储器系统的操作方法 | |
CN105630696A (zh) | 一种利用mram保护nand的方法及存储结构 | |
JP5109995B2 (ja) | ストレージ装置、及びストレージ装置の制御方法 | |
JP2013025400A (ja) | 揮発性記憶媒体及び不揮発性記憶媒体を含む記憶ドライブを備えたストレージ装置、記憶ドライブ、及び記憶ドライブの電源遮断時データ移動動作を検証する方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20160615 |
|
WD01 | Invention patent application deemed withdrawn after publication |