CN105934749B - 用于数据存储系统的垃圾收集和数据重定位 - Google Patents

用于数据存储系统的垃圾收集和数据重定位 Download PDF

Info

Publication number
CN105934749B
CN105934749B CN201580006048.6A CN201580006048A CN105934749B CN 105934749 B CN105934749 B CN 105934749B CN 201580006048 A CN201580006048 A CN 201580006048A CN 105934749 B CN105934749 B CN 105934749B
Authority
CN
China
Prior art keywords
data
destination part
origination section
origination
destination
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
CN201580006048.6A
Other languages
English (en)
Other versions
CN105934749A (zh
Inventor
A·H·陈
J·N·马利纳
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 CN105934749A publication Critical patent/CN105934749A/zh
Application granted granted Critical
Publication of CN105934749B publication Critical patent/CN105934749B/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/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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • 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/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • G06F3/0649Lifecycle management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • G06F3/0676Magnetic disk 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • G06F2212/1036Life time enhancement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology
    • G06F2212/217Hybrid disk, e.g. using both magnetic and solid state storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling

Abstract

在包括至少一个数据存储设备(DSD)和主机的数据存储系统中管理数据。基于由主机定义的至少一个属性,确定将存储于至少一个DSD中的数据的初始位置。基于由所述主机定义的至少一个属性,从至少一个DSD中的多个来源部分识别用于垃圾收集操作的来源部分。基于由所述主机定义的至少一个属性,识别至少一个DSD中的用于存储由垃圾收集操作获得的数据的目的地部分。执行将在所述来源部分中的数据向所述目的地部分的垃圾收集;并且在完成垃圾收集之后,将来源部分指定为用于新的垃圾收集操作的新的目的地部分。

Description

用于数据存储系统的垃圾收集和数据重定位
背景技术
数据存储设备(DSD)通常与数据存储系统中的主机一起使用来在记录介质上记录数据或从记录介质复制数据。作为一种DSD,磁盘驱动器可以包括旋转磁盘和在磁盘上开动的磁头以磁性地将数据写入到磁盘或从磁盘读取数据。这种磁盘包括用于记录数据的多个径向间隔的同心轨道。
已经引入了叠瓦式磁记录(SMR)作为通过增加每英寸轨道(TPI)数量而增加可以存储于磁盘上的给定区域中的数据量的方式。SMR通过使用相对宽的叠瓦式写入磁头来如屋顶叠瓦那样重叠轨道而增加了TPI。非重叠的部分然后用作可以由较窄读取磁头读取的窄轨道。
虽然对于SMR较大数量的TPI通常是可能的,但是当写输入时轨道的重叠可能会引起问题,这是因为对先前重叠的轨道的新写入会影响在重叠轨道中写入的数据。为此,对轨道进行顺序写入以避免影响先前写入的数据。
针对SMR介质管理顺序写入的数据通常包括DSD使用间接系统来在不同的寻址方案之间进行转换以确保数据被顺序写入。当针对特定的逻辑块地址(LBS)修改数据时,间接系统允许DSD将修改后的数据顺序写入到新的位置,并将数据的LBS重新映射到新的位置。在先前位置的老版本数据将变成过时的或无效的数据。
为了释放磁盘上的空间,可以执行垃圾收集(GC)过程以使得磁盘中存储无效或过时数据的部分可用于存储有效数据。这可以在GC过程期间通过对来自磁盘上特定区域的有效数据重定位并使得无效数据被覆写而完成。使用间接的其它类型的存储介质(例如固态存储器)也可以使用GC来释放存储器中存储无效数据的部分。
附图说明
根据以下结合附图阐述的详细描述,本公开的实施例的特征和优点将变得更清晰。提供附图和相关联的描述以说明本公开的实施例,且不限制所要求保护的范围。
图1是根据实施例描绘数据存储系统的框图。
图2是根据实施例的包括图1的数据存储设备(DSD)的框图。
图3A是根据实施例的用于垃圾收集(GC)过程的流程图。
图3B是根据实施例的在数据重定位期间用于数据一致性过程的流程图。
图4是根据实施例的实现环境。
图5是根据实施例的另一实现环境。
图6A是根据实施例的用于GC过程的流程图。
图6B是根据实施例的在数据重定位期间用于数据一致性过程的流程图。
图7是根据实施例示出将各区分配给不同逻辑卷以及将区分配作为目的地部分的概念图。
图8是根据实施例示出将多个区分配给逻辑卷以及将区分配作为目的地部分的概念图。
具体实施方式
在后续详细描述中,阐述了多个具体细节以提供对本公开的全面理解。然而,可以理解的是,对于本领域普通技术人员而言,可以在不具有一些这种具体细节的情况下实践所公开的各个实施例。在其它实例中,未详细示出公知的结构和技术,以避免不必要地模糊各个实施例。
系统概述
图1示出了根据实施例的数据存储系统100,其包括主机101和数据存储设备(DSD)107、108和109。系统100例如可以包括计算机系统(例如,服务器、台式计算机、云存储设备、数据归档系统等)或其它电子设备(例如,数字录像机)。就此,系统100可以是独立系统或网络(例如,网络122)的一部分。本领域的普通技术人员将理解系统100和DSD 106可以包括比图1所示的那些部件更多或更少的部件,并且可以在其它环境中实现所公开的过程。
在图1的示例性实施例中,DSD 106、107、108和109可以位于同一位置或可以分离在不同位置。如图1所示,DSD 106是主机101的一部分,并存储用于在主机101上执行的应用,而DSD 107、108和109主要存储主机101的用户数据。
输入设备102可以是键盘、滚动轮或定位设备,其允许系统100的用户向系统100输入信息和命令,或者允许用户操纵在显示器设备104上显示的对象。在其它实施例中,输入设备102和显示器设备104可以组合成单个部件,例如显示对象并接收用户输入的触摸屏。
在图1的实施例中,主机101包括中央处理单元(CPU)110,可以使用用于执行指令的一个或多个处理器实现所述CPU 110,所述一个或多个处理器包括微控制器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、硬连线逻辑、模拟电路和/或其组合。如下文所提及的主机101的处理器可以是上述处理器中的一个或多个、或者是被配置为执行本文描述的功能的其它处理器。CPU 110与主机总线113以接口连接。与主机总线113以接口连接的还有随机存取存储器(RAM)112、用于输入设备102的输入接口114、用于显示设备104的显示接口116、只读存储器(ROM)118、以及用于与网络122以接口连接的网络接口120。
RAM 112是主机101的易失性存储器,其与主机总线113以接口连接以在执行软件程序(例如,设备驱动器14或操作系统(OS)20)中的指令期间向CPU 110提供存储于RAM 112中的信息。更具体地,CPU 110首先将来自DSD 106的计算机可执行指令加载到RAM 112的区域中。CPU 110然后可以执行来自RAM 112的所存储的过程指令。数据(诸如将存储于DSD106、107、108或109中的数据,或从DSD 106、107、108和109取回的数据)也可以存储于RAM112中,使得在执行软件程序期间如果这种软件程序需要访问和/或修改该数据的话,可以通过CPU 110访问该数据。
如图1所示,DSD 106可以配置为存储以下各项中的一个或多个:垃圾收集(GC)管理器10、应用12、设备驱动器14、文件系统16、转换模块18、OS 20和映射表28。GC管理器10包括用于DSD 106、107、108和109的计算机可执行指令,用于执行如下文更详细讨论的垃圾收集过程。
在其它实施例中,GC管理器10、应用12、设备驱动器14、文件系统16、转换模块18、OS 20或映射表28中的任一个或多个可以驻留在DSD 106、107、108或109中。在一个这种例子中,GC管理器10可以驻留在DSD 106、107、108和109中的每个处,以便遍及系统100分布执行GC管理器10。
应用12例如可以包括主机101可以执行例如数据归档程序或多媒体程序的程序,其可以请求或修改存储于DSD 107、108或109中的用户数据。设备驱动器14在主机101上提供用于设备的软件接口,所述设备例如是输入设备102、显示器设备104或DSD 106、107、108和109。另外,DSD 106可以存储操作系统(OS)20,其包括内核22、文件系统(FS)拦截24以及存储栈26。DSD 106的内容可以加载到主机101的常驻存储器(例如,RAM 112),用于在操作主机101期间执行和/或状态跟踪。
文件系统(FS)16可以是在具有转换模块18的主机101的用户空间中实现的文件系统,以与FS拦截24以接口连接,如下文参考图5的示例性实现环境更详细讨论的。
DSD 106还可以存储映射表28,其可以用于在主机101所使用的逻辑地址(例如,逻辑块地址)之间进行转换或映射,以指代数据和对应的指示在DSD 106、107、108或109中的数据位置的物理地址(例如,物理块地址)。如下文参考图2更详细讨论的,映射表28可以用作用于叠瓦式磁记录(SMR)介质或固态介质的间接系统的一部分,以允许将逻辑地址重新分配到DSD 106、107、108或109中的不同的物理位置。
如图1所示,DSD 107、108和109分别存储用户数据30、33和34。用户数据是主机101存储或访问的数据。
图2描绘了根据实施例的DSD 107的框图。在图2的实施例中,DSD 107包括用于存储数据的固态存储器130和磁盘138。对此,DSD 107可以被视为固态混合驱动器(SSHD),因为其包括固态非易失性存储器(NVM)介质和磁盘NVM介质。在其它实施例中,磁盘138或固态存储器130中的每一个可以由多个硬盘驱动器(HDD)或多个固态驱动器(SSD)所分别替代,从而DSD 107包括HDD或SSD池。
DSD 107包括控制器124,其包括例如用于执行指令的一个或多个处理器的电路,并且可以包括微控制器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、硬连线逻辑、模拟电路和/或其组合。在一种实现方式中,控制器124可以包括片上系统(SoC)。
主机接口128配置为使得DSD 107与主机101以接口连接,并可以根据标准(例如,快速PCI(PCIe)、串行高级连接技术(SATA)或串行连接SCSI(SAS))进行接口连接。如本领域普通技术人员可以理解地,主机接口128可以作为控制器124的一部分被包含。
传感器141也连接到控制器124上。传感器141可以向控制器124提供表明例如DSD107的高温度或高振动条件的环境条件的输入。
在图2的例子中,通过主轴电动机(未示出)旋转磁盘138。DSD 107还包括与致动器132的远端连接的磁头136,所述致动器132由音圈电动机(VCM)134旋转以相对磁盘138定位磁头136。控制器124可以使用VCM控制信号36控制磁头136的位置。
如本领域普通技术人员可以理解地,磁盘138可以以在磁盘138下径向地对准的额外的磁盘形成磁盘组的部分。另外,磁头136可以形成磁头栈组件的包括额外的磁头的部分,每个磁头布置为从磁盘组中的磁盘的对应表面读取数据或将数据写入其中。
磁盘138包括用于在磁盘138的表面上存储数据的多个径向间隔的同心轨道(未示出)。磁盘138上的轨道可以被一起分组到轨道区中,其中每个轨道被划分为沿着轨道在周向间隔的多个扇区。在图2的例子中,磁盘138针对数据的重分配或垃圾收集(GC)包括可以用作来源部分的区140以及可以用作目的地部分的区142。
磁盘138可以包括具有由SMR导致的重叠轨道的一个或多个区,以增加可以在磁盘的给定区域中存储的数据量。如上所述,SMR轨道通常被顺序写入以避免影响先前写入的数据,并可以涉及使用间接系统来确保数据被顺序写入。当针对特定逻辑块地址(LBA)修改数据时,间接系统允许DSD将修改后的数据顺序写入到新位置,并将该数据的LBA从先前位置重新映射到新的位置。
在使用间接的SMR存储系统中,GC可以用于再捕捉过时的数据所使用的空间。然而,执行GC和重定位数据可以减少系统100的可以以其它方式用于主机101的性能带宽。
考虑到上述情况,本公开提供了一种用于改善控制对数据的GC和重定位的可调谐方法。根据另一方面,本公开的一些实施例还包括数据管理过程和系统,用于减少重定位数据的性能影响。
除了磁盘138外,DSD 106的NVM介质还包括具有块131的固态存储器130用于存储数据。虽然本文的描述一般涉及固态存储器,但可以理解地是,固态存储器可以包括各种类型的存储器设备中的一个或多个,例如,闪速集成电路、硫属RAM(C-RAM)、相变存储器(PC-RAM或PRAM)、可编程金属化单元RAM(PMC-RAM或PMCm)、双向联合存储器(OUM)、阻抗RAM(RRAM)、NAND存储器(例如,单层单元(SLC)存储器、多层单元(MLC)存储器或其任意组合)、NOR存储器、EEPROM、铁电存储器(FeRAM)、磁阻RAM(MRAM)、其它离散NVM芯片或其任意组合。
固态存储器130可以使用间接系统来允许将LBA映射到不同的物理位置,作为用于更均匀使用块132的损耗均衡过程的一部分。在一种实现方式中,将修改后的数据写入到固态存储器130中的新物理位置,并将数据的LBA从先前的物理位置重新映射到新的物理位置。至于SMR介质,固态存储器130也可以使用GC过程来重新捕捉过时的或不再有效的数据所使用的空间。固态存储器130可以包括在下文讨论的GC和数据重定位过程中的来源或目的地部分。在一些实施例中,DSD 107可以包括固态存储器130、包括磁盘138的旋转磁介质、和/或两种非易失性存储设备的组合。
在图2中,易失性存储器139例如可以包括动态随机存取存储器(DRAM),其可以由DSD 107用于临时存储数据。在易失性存储器139中存储的数据可以包括从NVM介质(例如,磁盘138或固态存储器130)中读取出的数据、将写入到NVM介质中的数据、从DSD 107的固件40加载以由控制器124执行的指令、或用于执行固件40的数据。对此,图2的易失性存储器139示出为存储固件40,其可以包括由控制器124执行以实现如下所讨论的数据重新分配和垃圾收集过程的指令。固件可以存储于示出的非易失性存储设备(例如,固态存储器130和/或包括磁盘138的旋转磁介质)之一中。
在操作中,DSD 107经由主机接口128从主机101接收读取和写入命令,用于从DSD107的NVM介质读取数据和写入数据到DSD 107的NVM介质。响应于来自主机101的写入命令,控制器124可以在易失性存储器139中缓冲针对写入命令将写入的数据。
对于将存储于固态存储器130内的数据,控制器124从主机接口128接收数据,并可以在易失性存储器139中缓冲该数据。在一种实现方式中,该数据随后被编码为电荷值,用于对固态存储器130中的单元充电以存储数据。
响应于对存储于固态存储器130中的数据的读取命令,在一种实现方式中,控制器124读取固态存储器130中单元的当前值,并将当前值解码为可以被转移到主机101的数据。在经由主机接口128将数据转移到主机101之前,可以通过控制器124缓冲这种数据。
对于将写入到磁盘138中的数据,控制器124可以将缓冲的数据编码为写入信号38,其被提供给磁头136以将数据磁性地写入到磁盘138的表面。
响应于针对存储于磁盘138上的数据的读取命令,控制器124经由VCM控制信号36定位磁头136,以磁性地读取存储于磁盘138的表面上的数据。磁头136将作为读取信号38的读取数据发送到控制器124以供解码,并且在易失性存储器139中缓冲该数据以供转移到主机101。
示例性垃圾收集和数据重定位过程
图3A是根据实施例的由主机101或DSD(例如,DSD 107)执行的垃圾收集过程的流程图。在框302中,基于主机101定义的至少一个属性,确定针对要存储的数据的初始位置。主机101可以使用GC管理器10来定义至少一个属性或GC策略,以调谐或控制应该在何处执行垃圾收集(即,来源部分)、应该何时执行GC、应该在何处重定位由GC获得的有效数据(即,目的地部分)、如何组织在目的地部分中的重定位的数据、或者在文件创建期间在何处初始存储数据。
主机101可以定义的属性可以包括数据的属性,例如,数据的有效日期、数据的访问频率、数据的所有权或者数据的碎片化程度。主机101还可以定义作为垃圾收集的来源部分的条件或者用于存储由GC操作获得的有效数据的目的地部分的条件的属性。
例如,主机101定义的属性可以包括用于确定特定数据是否已经到期的“数据年龄”或有效日期。数据年龄或有效日期可以基于诸如用以便移除超过特定年龄的所有或基本所有文件、或移除在特定时间段内标记为删除的文件的数据保持策略。在这种例子中,可以通过有效日期将数据分组到一起,使得具有相同有效日期的数据被一起分组到系统100的一部分(例如,特定逻辑卷、DSD或DSD的部分)中,使得整个部分被同时弃用,而无需重定位大量有效数据。
在另一例子中,主机101可以基于数据的访问频率定义属性(即,“热/冷”属性),使得可以将被较不频繁访问的数据(即,“冷数据”)一起分组到系统100的部分中,或者使得可以将被较频繁访问的数据(即,“热数据”)一起分组到系统100的部分中。较频繁访问的数据通常导致相比较不频繁访问的数据而言较多的数据用于GC或导致需要更频繁地进行重定位的数据。将频繁访问的数据分组到一个来源部分中可以因此普通地增强单个GC操作的效果,这是因为在频繁访问的数据中的来源部分中的单个GC操作相比在不包含同样多的无效数据的来源部分中的多个GC操作将释放较多的空间。换句话说,通过将较频繁访问的数据分组到一起,通常可以预处理系统100的特定部分以供数据重定位,并因此减少GC或数据重定位操作的总次数。
对此,主机101还可以定义属性来包括在识别用于GC的来源部分时的碎片化级别的考虑,例如,通过在特定来源部分中执行GC以提供最大的容量增益利用而获得的容量或性能量。
主机101还可以基于数据的所有权来定义GC的属性,使得特定用户所拥有的数据被一起分组到系统100的部分中。如果该用户的数据随后需要被删除或重定位,则对该用户的数据的GC或重定位被更加隔离到系统100的特定部分,并且对系统的广泛的性能具有较少影响。
如上所述,执行GC管理器10的主机101还可以基于来源或目的地部分的条件来定义属性。来源或目的地部分的这种条件可以例如包括:可靠性条件、环境条件、损耗级别、可用数据容量、距数据的先前用户的距离、在来源和目的地部分之间可用的网络带宽、来源或目的地部分的可用性、或者在操作来源或目的地部分时的能量成本。
在一个例子中,属性可以包括来源部分或目的地部分的可靠性条件,例如,磁头136的状态(例如,需要禁用的磁头)或者当在磁盘138上写入数据时遇到的错误级别。在另一例子中,主机101所定义的属性可以识别遇到高级别错误的用于垃圾收集的来源部分,使得可以将数据重定位到具有较低级别错误的目的地部分。
在其它例子中,主机101可以定义属性,使得将数据从已较经常使用的来源部分重定位到较少使用的目的地部分(例如,基于损耗级别)。这通常可以允许介质(例如,固态介质)有更长的寿命,或能够减少重复向磁盘介质的同一位置写入的负面影响,如下文更详细讨论地。主机101还可以基于可用的数据容量来定义属性,使得将数据重定位到具有较大可用数据容量的目的地部分。
在另一例子中,主机101可以定义环境条件,例如温度或振动条件,使得将数据从经历高温或高震动条件的来源部分重定位到经历较低温或较低震动条件的目的地部分。
一个或多个属性也可以考虑网络考量,使得可以越快地访问重定位的数据,越有效地重定位数据,或者使得数据重定位对系统性能具有较小的影响。在一个这种例子中,主机101基于数据的先前用户的位置来定义至少一个属性,使得将数据定位到离数据的先前用户较近的物理位置。主机101还可以定义属性,使得在来源部分和目的地部分存在最小的网络带宽,以改善在系统100中重定位数据的效率。
也可以考虑来源或目的地部分的可用性。在这种例子中,主机101可以基于来源或目的地部分的可用性来定义属性,使得在来源或目的地部分处执行较少的活动或操作。
在另一实现方式中,主机101可以定义关于对于操作来源和目的地部分的成本的属性,使得例如将数据从具有较高操作成本的来源部分重定位到具有较低操作成本的目的地部分。
返回图3A的过程,在框304中,基于至少一个属性,从多个来源部分中识别用于GC操作的来源部分。在GC管理器10识别来源部分的实施例中,来源部分可以是系统100中特定的逻辑卷、DSD、或DSD的一部分。在DSD的控制器(例如,DSD 107的控制器124)识别来源部分的实施例中,来源部分可以是DSD 107的一部分,例如磁盘138上的区140。
在框306中,基于至少一个属性,识别用于存储由对来源部分进行垃圾收集而获得的数据的目的地部分。在GC管理器10识别目的地部分的实施例中,目的地部分可以是系统100中特定的逻辑卷、DSD或DSD的一部分。在DSD的控制器识别目的地部分的实施例中,目的地部分可以是DSD的一部分,例如磁盘138上的区142。
在框308中,在来源部分中执行向目的地部分的GC。如上所讨论的,可以通过从来源部分向目的地部分拷贝有效数据并释放来源部分中将被覆写的无效或过时区域来执行GC。
在框310中,将来源部分指定为用于新的GC操作的新的目的地部分。通过旋转目的地部分,通常可以减少系统100的被重复用作目的地部分的特定部分上的不均匀损耗的可能性。对目的地部分的这种旋转还可以帮助减轻与重复写入磁盘介质上的同一位置相关联的问题,例如,邻道干扰(ATI)或者宽域轨道擦除(WATER)。
图3B是根据实施例的可以由主机101或由DSD(例如,DSD 107)执行的数据一致性过程的流程图。该过程可以结合图3A的GC过程执行,或者可以作为另一数据重定位过程的一部分执行,以确保来自来源部分的被重定位的数据与目的地部分中的被重定位的数据之间的一致性,且减少对来源部分中性能的影响。
在框312中,基于由主机101定义的属性来识别将被重定位的数据和/或目的地部分。如结合图3A在上文讨论的,属性可以包括数据的属性或系统100的条件。
在框314中,根据在框312中对数据和/或目的地部分的位置的识别,将数据从来源部分重定位到目的地部分。来源部分和目的地部分可以在例如具有图2中的区140和142的同一DSD中,或者来源和目的地部分可以驻留在或包括不同的DSD,例如DSD 107和DSD 108。
在框316中,确定在框314中重定位数据时,是否对来源部分中的相关数据做出了改变。相关数据可以包括在框314中已经以其它方式重定位的数据。例如,基于至少一个属性未识别出用于框312中的重定位的、来源部分中的数据的改变,将不被认为是对相关数据的改变。在一些实现方式中,可以基于比较在框314中重定位数据之前和之后的元数据来确定改变。可以由使用基于写入时拷贝(COW)的文件系统而获得所述元数据,所述文件系统在文件中有改变时生成元数据中的改变。扫描文件系统的元数据,然后可以显示是否发生了改变以及在何处改变。
如果在重定位期间改变了来源部分中的相关数据,则在框318中将经改变的相关数据从来源部分重定位到目的地部分,并在框320中结束过程。
图3B的过程通常提供在来源和目的地部分之间的一致性,同时仍允许在框314中重定位数据时改变来源部分中的数据这一行为。在一些实施例中,改变来源部分中的相关数据可能在框318中被阻止,以进一步确保在来自来源部分的重定位的数据与在目的地部分中的重定位的数据之间的一致性。如果在重定位期间没有改变相关数据,则过程在框320中结束,而不执行框318。
在其它实施例中,控制器124或主机101可以重复执行框316和318,直到不存在对相关数据的改变。在对框316和318的每次迭代时,期望的是较少的改变,这是因为应该降低用于重定位数据的时间。一旦在来源部分中不再存在对相关数据的改变,则过程可以结束。
图4根据实施例,描绘了包括主机101和DSD 106、107、108和109的示例性实现环境。如图4所示,主机101包括用户空间和内核空间。
用户空间包括GC管理器10、应用12以及用于在错误之后重构文件系统的恢复模块19。恢复模块19可以包括类似于检查磁盘(CKDSK)或文件系统一致性检查(FSCK)的恢复工具,但是在全系统级别上处理跨不同文件系统和/或系统100的DSD识别出的不一致性或错误。另外,恢复模块19可以与GC管理器10协商以在重定位数据时确定来源或目的地部分。
如图4所示,GC管理器10接受至少一个属性或策略,其可以包括用于控制GC或DSD中的数据重定位的用户可调谐参数。如上所讨论的,至少一个属性可以包括系统100的条件或存储于系统100中的数据的属性。至少一个属性可以用于识别系统100的来源部分、目的地部分、执行GC或数据重定位的时间、或将被重定位的特定数据。
在确定何时或何处执行GC时,GC策略或属性可以包括针对DSD的期望的输入输出(IO)使用,从而当期望具有较少的IO使用时在驱动器上执行GC,以便对系统性能具有较小的影响。IO使用的历史可以来自由主机101提供的信息或来自系统100中的DSD。在另一例子中,主机101可以基于与当日时间相关联的IO使用来定义属性,从而在对系统性能具有较小影响时发生GC。
至少一个属性还可以考虑系统资源(例如,处理、存储或带宽)的可用性,其可以包括评估系统100中的主机101的活动级别。在一个例子中,至少一个属性可以指定在来源部分和目的地部分之间的连接资源的级别,以便减少用于重定位数据的时间。
参考图4,GC管理器10可以将数据从目的地部分重定位到来源部分,并还可以影响文件系统的数据布置策略,如从GC管理器10到FS 32的虚线所指示的,其可以例如包括文件系统(如,在内核空间中的Ext4或NILFS)。这可以允许基于由主机101定义的至少一个属性来确定将存储于系统100内的数据的初始位置。通过基于至少一个属性来对数据进行初始分组或合并,通常使得重定位数据更有效,这是因为数据是更少地跨系统100的不同部分来分散的。
在示出的实施例中,GC管理器10位于文件系统层之上,并可以查询系统100的一部分以确定用于基于至少一个属性来执行GC的时间或部分。GC管理器10还可以包括较低级别的模块,其可以执行图3A和3B的过程。在GC管理器10位于文件系统层之上的该例子中,可以识别有效的与到期的/删除的数据,而不依赖于SCSI/ATA暗示或通知(例如,TRIM或UNMAP命令)。
内核空间可以是由主机101执行的OS 20的一部分,并包括用于与DSD 106、107、108和109接口和联网的存储栈26。FS 32通过与存储栈26接口来组织存储于系统100中的数据。另外,应用12可以使用FS 32来取回DSD 106、107、108和109中的作为用户数据的数据或在DSD 106、107、108和109中将数据作为用户数据来存储。
图5描绘了根据实施例的包括主机101和DSD 106、107、108和109的另一实现环境。在图5的例子中,主机101执行GC管理器10、应用12和恢复模块19,如图4的示例性实现环境一样。不像图4的实现环境,图5的例子还包括在用户空间中的FS 16和转换模块18以及在内核空间中的FS拦截24。
FS拦截24与应用12接口,并可以拦截读取和写入命令,并将命令传递给用户空间中的FS 16。FS 16可以包括实现COW的文件系统,例如线性磁带文件系统(LTFS)。如上所述,基于COW的文件系统可以允许在数据重定位期间通过针对改变来扫描文件系统的元数据而相对快速地识别相关数据的改变。
对其本身,FS 16生成包括块地址的命令,所述块地址表示与该命令相关联的元数据或数据的逻辑地址。转换模块18接受所述命令,并可以将逻辑地址转换为针对特定DSD的设备地址和/或在不同接口协议(例如,ATA、SCSI)之间进行转换。设备地址还可以识别在存储介质的区(例如,DSD 107的区142)中的位置。
转换模块18利用针对存储介质的相应的读取或写入命令来将经转换的设备地址传递给存储栈26。实际上,转换模块18可以是插件式(plug-in)驱动器,而不需要修改FS16。
其它实施例可以包括不同于图4和5所示的例子的系统实现方式。例如,在其它实施例中,转换模块18可以反而是内核空间的一部分。对此,可以将一些模块分配给与所示不同的层/空间,并且可以将一些分裂成额外的模块或组合成较少的模块。
图6A是根据实施例的可以由主机101或由DSD(例如,DSD 107)执行的GC过程的流程图。在框602中,基于由主机101定义的至少一个属性,确定将存储于系统100中的数据的初始位置。如上所述,基于该至少一个属性的数据的该初始布置稍后可以提高基于该至少一个属性的GC或数据重定位的效率,这是因为用于重定位的相关数据不是跨系统100中的不同位置散布的。
在框604中,确定用于执行GC的时间。可以确定用于GC的时间,以便减少对系统IO性能的影响。因此,主机101或DSD控制器(例如,控制器124)可以基于处理资源的可用性、来源部分或目的地部分的可用性、当日时间或主机101的活动级别来确定何时执行GC。对此,可以在期望在服务(serving)其它主机命令中存在较少的活动时发生GC,从而在服务主机命令时GC对系统100的性能具有较少影响。例如,用于GC的时间可以是历史上具有较少活动的当日时间,从而GC并不干扰从主机101服务命令。IO使用模式可以由DSD控制器学习或可以由主机101观察/提供。另外,如果修改了来源部分中的相关数据,则主机101或DSD控制器可以将针对来源部分的GC延期。
在框606中,基于至少一个属性,从多个来源部分识别用于GC操作的来源部分。在GC管理器10识别来源部分的实施例中,来源部分可以是系统100中的特定逻辑卷、DSD或DSD的一部分。在DSD的控制器(例如,DSD 107的控制器124)识别来源部分的实施例中,来源部分可以是DSD 107的一部分,例如磁盘138上的区140。
在框608中,基于至少一个属性,识别用于存储由对来源部分进行垃圾收集而获得的数据的目的地部分。在GC管理器10识别目的地部分的实施例中,目的地部分可以是系统100中的特定逻辑卷、DSD或DSD的一部分。因此,来源和目的地部分可以位于同一卷/DSD/DSD的一部分上或位于不同的卷/DSD/DSD的一部分上。在DSD 107的控制器124识别目的地部分的实施例中,目的地部分可以是DSD 107的一部分,例如磁盘138上的区142。
在框610中,通过识别来源部分中的有效数据来执行GC。有效数据是尚未过时的、数据的最近版本。在框612中,将有效数据复制到目的地部分,并根据至少一个属性对所述有效数据进行组织。在一个例子中,可以对有效数据进行组织,从而通过到期日期、访问频率或数据所有权来对目的地部分中的复制的数据进行组织。
在框614中,来源部分被指定为用于新的GC操作的新的目的地部分。如上结合图3A所述,旋转目的地部分可以减少系统100的可能被重复用作目的地部分的特定部分上的不均匀损耗。对目的地部分的这种旋转还可以有助于减少与在磁盘介质上的同一位置重复地写入相关联的问题,例如,邻道干扰(ATI)或者宽域轨道擦除(WATER)。
在框616中,在完成GC之后将目的地部分设置为可用于存储数据。这允许目的地部分除了用于存储来自上述GC过程的复制的数据外,还用于存储用户数据。在将来的GC操作中,目的地部分随后可以用作用于执行GC的来源部分。
图6B是根据实施例,可以由主机101或由DSD(例如,DSD 107)执行的数据一致性过程的流程图。该过程可以结合图3A或6A的GC过程执行,或者可以作为另一数据重定位过程的一部分执行,以在对来源部分的性能具有减少的影响的情况下,确保在来自来源部分的重定位的数据与在目的地部分中的重定位的数据之间的一致性。
在框618中,确定用于重定位数据的时间。如上所述,可以确定用于数据重定位的时间,从而减少对系统IO性能的影响。因此,主机101或DSD控制器(例如,控制器124)可以基于处理资源的可用性、来源部分或目的地部分的可用性、当日时间或主机101的活动级别来确定何时重定位数据。对此,可以在期望在服务(serving)其它主机命令中存在较少的活动时发生数据重定位,从而在服务主机命令时数据重定位对系统100的性能具有较少影响。例如,用于数据重定位的时间可以是历史上具有较少活动的当日时间,从而数据重定位并不干扰从主机101服务命令。IO使用模式可以由DSD控制器学习或可以由主机101提供。另外,如果修改了来源部分中的相关数据,则主机101或DSD控制器可以将针对来源部分的GC延期。
在框620中,基于由主机101定义的属性,识别要被重定位的数据和/或目的地部分。如上所讨论的,属性可以包括数据的属性或系统100的条件。
在框622中,根据在框620中对数据和/或目的地部分的位置的识别,将数据从来源部分重定位到目的地部分。来源部分和目的地部分可以位于例如具有图2中的区140和142的同一DSD中,或者来源或目的地部分可以驻留在不同的DSD中或包括不同的DSD(例如,DSD107和108)。
在框624中,确定在框622中重定位数据时是否对来源部分中的相关数据做出了改变。相关数据可以包括在框622中已经以其它方式重定位的数据。例如,基于至少一个属性未识别出用于框620中的重定位的、来源部分中的数据的改变,可以不被认为是对相关数据的改变。在一些实现方式中,可以基于比较在重定位数据之前和之后的元数据来确定改变。通过不在重定位数据期间阻碍来源部分中的改变,则重定位数据不会妨碍向来源部分写入命令的动作。
如果在框622中在重定位期间没有改变相关数据,则过程进行到框632以将目的地部分设置为可用于存储数据。
在另一方面,如果在框622中重定位期间改变了来源部分中的相关数据,则在框626中将经改变的相关数据从来源部分重定位到目的地部分。关于框622,重定位经改变的相关数据不能防止在来源部分中写入命令的动作。由于在框626中对任何经改变的相关数据进行重定位的时间可能小于在框622中初始地重定位数据的时间,因此在框626中重定位经改变的相关数据时,不太可能对该相关数据做出额外的改变。
在框628中执行另一检查,以确定在框626中重定位经改变的相关数据时是否对额外的相关数据做出了任何改变。如果是,则在框630中将额外改变的相关数据从来源部分重定位到目的地部分,同时阻止对来源部分的进一步的改变。
在其它实施例中,可以对框624和626进行更多次迭代,或者可以重复执行框624和626,直到在不阻止改变的情况下,在来源部分不再改变相关数据。这通常允许在数据重定位期间来源部分的IO性能维持基本不变,同时维持在存储于来源部分和目的地部分的相关数据之间的一致性。在对框624和626的每次迭代时,期望的是较少的改变,这是因为应该降低用于重定位数据的时间。
在框632中,将目的地部分设置为可用于存储数据。这允许目的地部分除了用于存储来自上述数据重定位过程的重定位的数据外,还用于存储用户数据。在将来的数据重定位操作中,目的地部分随后可以用作来源部分。
在框634中,识别用于进一步重定位数据的、新的目的地部分。识别新的目的地部分可以基于由主机101定义的至少一个属性,而不考虑先前使用的目的地部分,从而目的地部分在系统100中旋转。
图7是根据实施例,示出了将区分配作为用于GC的目的地部分以及将剩余区中的每个分配作为由主机101用于存储数据的逻辑卷的概念图。在图7中,区0、1和2中的每个经由针对所述区的文件系统和映射表28分别映射至卷B、C和A。在其它实施例中,不同的区中的每个皆可以使用不同的文件系统。
在图7中的单个区可以包括磁盘的特定物理部分,例如磁盘138的区140或区142;或者单个区可以包括固态存储器的一部分,例如固态存储器130中的一个或多个块131。在其它实施例中,单个区可以包括整个磁盘表面或整个DSD。
卷的阴影以及区的对应阴影示出了映射对应性以及每个卷/区的碎片化级别。卷/区的较暗阴影表示卷/区的碎片化级别较高。
区N是图7中的漂浮备用区,用于存储从另一区的GC而获得的数据。例如,按照以上针对图3A或6A描述的GC过程,可以对区1进行垃圾收集,将其收集到区N中或者一组漂浮备用区中的任意一个或多个中。在完成GC之后,区N被作为新的卷C,并且区1(先前映射到卷C)被分配为用于后续GC操作的新的区N。通过旋转目的地部分,通常可以减少用于存储由GC获得的数据的特定区域上的损耗。另外,将具有较少使用的特定区作为目标或识别为目的地部分。然后,主机定义的属性可以基于对目的地部分的先前使用,从而具有较低使用或损耗的区被识别为目的地部分。在其它实施例中,区N可以包括用于存储从GC获得的数据的多个区。
图8是根据实施例,示出了将多个区分配给逻辑卷以及将一个区分配为用于GC的目的地部分的概念图。在图8中,区0到N-1被映射到单个逻辑卷。将多个区映射或分配到单个逻辑卷可以用于容纳尺寸可能超过区的尺寸的大文件。这种大文件例如可以覆盖磁盘板表面,并具有上千兆字节的尺寸。
在其它实施例中,将较少数量的区映射到单个逻辑卷。例如,第一对区可以映射到第一逻辑卷,且第二对区可以映射到第二逻辑卷。另外,其它实现方式可以包括多个区到单个区的CG或者单个区到多个区的GC。
与图7一样,图8中的单个区可以包括磁盘的特定物理部分,例如,磁盘138的区140或区142;或者单个区可以包括固态存储器的一部分,例如,固态存储器130中的一个或多个块131。在其它实施例中,单个区可以包括整个磁盘表面或整个DSD。
与图7的实现方式形成对比的是,在图8中描绘的实现方式可以允许向用户级别隐藏GC过程,因为其在映射表28外并驻留在比文件系统低的级别。
灰色阴影指示整个卷的碎片化级别是对应区的碎片化级别的平均。利用具有用作漂浮备份区或可以旋转的目的地部分的区N,以区的级别来执行如图3A或6A中的GC过程。当完成GC过程时,可以经由文件系统和映射表28将区N映射到卷,并且将先前映射到逻辑卷的区之一制定为用作新的漂浮备份区或目的地部分。
其它实施例
本领域普通技术人员将理解的是,结合本文公开的例子来描述的各种说明性逻辑块、模块和过程可以实现为电子硬件、计算机软件或两者的组合。此外,上述过程可以具体实现于使得处理器或计算机完成或执行某些功能的计算机可读介质上。
为了清楚地说明硬件和软件的可交换性,上面对各种说明性部件、块和模块均围绕其功能进行了总体描述。至于这种功能是实现为硬件还是软件,取决于具体的应用和对整个系统所施加的设计约束条件。本领域普通技术人员可以针对每个特定应用以变通的方式实现所描述的功能,但是这种实现决策不应该被解释为导致背离本公开的范围。
可以利用被设计为执行本文中所描述功能的通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件或者其任意组合,来实现或执行结合本文所公开的示例所描述的各种示例性的逻辑框、单元、模块和控制器。通用处理器可以是微处理器,或者,该处理器也可以是任何常规的处理器、控制器、微控制器或者状态机。处理器还可以实现为计算设备的组合,例如,DSP和微处理器的组合、多个微处理器、一个或多个微处理器与DSP内核的结合,或者任何其它此种结构。
结合本文公开的例子所描述的方法或过程的活动可以直接实现在硬件中、由处理器执行的软件模块中、或两者的组合中。方法或算法的步骤还可以以例子中提供的次序的替代次序来执行。软件模块可以驻留在RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移除介质、光介质或本领域已知的任意其它形式的存储介质中。示例性存储介质耦合到处理器上,从而处理器可以从存储介质读取信息以及将信息写入到存储介质中。在可替代方案中,存储介质可以集成到处理器。处理器和存储介质可以驻留在专用集成电路(ASIC)上。
提供对所公开的示例性实施例的上述描述,以使得本领域任何普通技术人员能够利用或使用本公开内容的实施例。对这些例子的各种修改对本领域普通技术人员而言将是显而易见的,并且在不背离本公开内容的精神或范围的情况下,本文公开的原理可以应用于其它例子。在所有方面讲,所描述的实施例认为是仅是说明性的而非限制性的,并且因此,本公开内容的范围由后续权利要求而不是前述描述指示。落入权利要求的等同物的含义和范围内的所有改变将被涵括于权利要求的范围内。

Claims (39)

1.一种用于在包括至少一个数据存储设备和主机的数据存储系统中管理数据的方法,所述至少一个数据存储设备包括用于存储数据的多个区,所述方法包括:
将所述多个区中的一个或更多个区分配为所述至少一个数据存储设备中的目的地部分,用于存储由垃圾收集操作获得的数据;
将所述多个区中的多个剩余区分配为由所述主机用于存储数据的至少一个逻辑卷,其中被分配为所述目的地部分的所述一个或更多个区在所述至少一个逻辑卷之外;
基于由所述主机定义的至少一个属性,从分配为所述至少一个逻辑卷的所述多个剩余区中的多个来源部分识别用于所述垃圾收集操作的来源部分;以及
执行将在所述来源部分中的数据放入所述目的地部分的所述垃圾收集操作。
2.根据权利要求1所述的方法,还包括:
在所述垃圾收集操作期间识别在所述来源部分中的有效数据;以及
根据所述至少一个属性,在所述目的地部分中组织所述有效数据。
3.根据权利要求1所述的方法,还包括:基于所述至少一个属性,在所述垃圾收集操作期间识别在所述来源部分中的有效数据,从而将所述有效数据与在所述目的地部分中具有所述至少一个属性的其它数据分组到一起。
4.根据权利要求1所述的方法,其中,所述至少一个属性包括以下各项中的至少一项:所述数据的到期日期、对所述数据的访问频率、所述数据的所有权或所述数据的碎片化级别。
5.根据权利要求1所述的方法,其中,所述至少一个属性包括:所述来源部分或所述目的地部分的可靠性条件、所述来源部分或所述目的地部分的环境条件、所述来源部分或所述目的地部分的损耗级别、所述来源部分或所述目的地部分的可用数据容量、所述来源部分或所述目的地部分距所述数据的先前用户的距离、所述来源部分和所述目的地部分之间的可用的网络带宽、所述来源部分或所述目的地部分的可用性或者操作所述来源部分或所述目的地部分的能量成本。
6.根据权利要求5所述的方法,其中,所述来源部分或所述目的地部分的所述环境条件包括:温度条件或振动条件。
7.根据权利要求5所述的方法,其中,所述来源部分或所述目的地部分的可靠性条件包括:用于写入数据的磁头的状态或者当写入数据时遇到的错误级别。
8.根据权利要求1所述的方法,还包括:确定用于执行所述垃圾收集操作的时间。
9.根据权利要求8所述的方法,其中,确定用于所述垃圾收集操作的时间是基于以下各项中的至少一项:处理资源的可用性、所述目的地部分或所述来源部分的可用性、当日时间或者所述主机的活动级别。
10.根据权利要求1所述的方法,其中,在完成所述垃圾收集操作之后,所述方法还包括将所述目的地部分设置为可用于存储数据。
11.根据权利要求1所述的方法,其中,所述来源部分和所述目的地部分位于所述至少一个数据存储设备中的分别的数据存储设备中。
12.根据权利要求1所述的方法,其中,所述来源部分和所述目的地部分位于所述至少一个数据存储设备的同一数据存储设备中。
13.一种用于存储数据的数据存储系统,所述数据存储系统包括:
主机,其包括处理器;以及
至少一个数据存储设备,其与所述主机通信,所述至少一个数据存储设备包括用于存储数据的多个区;
其中,所述处理器被配置为进行以下操作:
定义用于在所述至少一个数据存储设备中执行垃圾收集操作的至少一个属性;
将所述多个区中的一个或更多个区分配为所述至少一个数据存储设备中的目的地部分,用于存储由所述垃圾收集操作获得的数据;
将所述多个区中的多个剩余区分配为由所述主机用于存储数据的至少一个逻辑卷,其中被分配为所述目的地部分的所述一个或更多个区在所述至少一个逻辑卷之外;
基于所述至少一个属性,从分配为所述至少一个逻辑卷的所述多个剩余区中的多个来源部分识别用于所述垃圾收集操作的来源部分;以及
执行将在所述来源部分中的数据放入所述目的地部分的所述垃圾收集操作。
14.根据权利要求13所述的数据存储系统,其中,所述处理器还配置为:
在所述垃圾收集操作期间识别在所述来源部分中的有效数据;以及
根据所述至少一个属性,在所述目的地部分中组织所述有效数据。
15.根据权利要求13所述的数据存储系统,其中,所述处理器还配置为:基于所述至少一个属性,在所述垃圾收集操作期间识别在所述来源部分中的有效数据,从而将所述有效数据与在所述目的地部分中具有所述至少一个属性的其它数据分组到一起。
16.根据权利要求13所述的数据存储系统,其中,所述至少一个属性包括以下各项中的至少一项:所述数据的到期日期、对所述数据的访问频率、所述数据的所有权或所述数据的碎片化级别。
17.根据权利要求13所述的数据存储系统,其中,所述至少一个属性包括:所述来源部分或所述目的地部分的可靠性条件、所述来源部分或所述目的地部分的环境条件、所述来源部分或所述目的地部分的损耗级别、所述来源部分或所述目的地部分的可用数据容量、所述来源部分或所述目的地部分距所述数据的先前用户的距离、所述来源部分和所述目的地部分之间的可用的网络带宽、所述来源部分或所述目的地部分的可用性或者操作所述来源部分或所述目的地部分的能量成本。
18.根据权利要求17所述的数据存储系统,其中,所述来源部分或所述目的地部分的所述环境条件包括:温度条件或振动条件。
19.根据权利要求17所述的数据存储系统,其中,所述来源部分或所述目的地部分的所述可靠性条件包括:用于写入数据的磁头的状态或者当写入数据时遇到的错误级别。
20.根据权利要求13所述的数据存储系统,其中,所述处理器还配置为确定用于执行所述垃圾收集操作的时间。
21.根据权利要求20所述的数据存储系统,其中,所述处理器还配置为基于以下各项中的至少一项确定用于所述垃圾收集操作的所述时间:处理资源的可用性、所述目的地部分或所述来源部分的可用性、当日时间或者所述主机的活动级别。
22.根据权利要求13所述的数据存储系统,其中,所述处理器还配置为:在完成所述垃圾收集操作之后,将所述目的地部分设置为可用于存储数据。
23.根据权利要求13所述的数据存储系统,其中,所述来源部分和所述目的地部分位于所述至少一个数据存储设备的分别的数据存储设备中。
24.根据权利要求13所述的数据存储系统,其中,所述来源部分和所述目的地部分位于所述至少一个数据存储设备的同一数据存储设备中。
25.一种与主机通信的数据存储设备,所述数据存储设备包括:
非易失性存储器,其包括用于存储数据的多个区;以及
控制器,其配置为:
接收由所述主机定义的用于在所述非易失性存储器中执行垃圾收集操作的至少一个属性;
将所述多个区中的一个或更多个区分配为所述至少一个数据存储设备中的目的地部分,用于存储由所述垃圾收集操作获得的数据;以及
将所述多个区中的多个剩余区分配为由所述主机用于存储数据的至少一个逻辑卷,其中被分配为所述目的地部分的所述一个或更多个区在所述至少一个逻辑卷之外;
基于由所述主机定义的至少一个属性,从分配为所述至少一个逻辑卷的所述多个剩余区中的多个来源部分识别用于所述垃圾收集操作的来源部分;以及
执行将在所述来源部分中的数据放入所述目的地部分的所述垃圾收集操作。
26.根据权利要求25所述的数据存储设备,其中,所述控制器还配置为:
在所述垃圾收集操作期间识别在所述来源部分中的有效数据;以及
根据所述至少一个属性,在所述目的地部分中组织所述有效数据。
27.根据权利要求25所述的数据存储设备,其中,所述控制器还配置为:基于所述至少一个属性,在所述垃圾收集操作期间识别在所述来源部分中的有效数据,从而将所述有效数据与在所述目的地部分中具有所述至少一个属性的其它数据分组到一起。
28.根据权利要求25所述的数据存储设备,其中,所述至少一个属性包括以下各项中的至少一项:所述数据的到期日期、对所述数据的访问频率、所述数据的所有权或所述数据的碎片化级别。
29.根据权利要求25所述的数据存储设备,其中,所述至少一个属性包括:所述来源部分或所述目的地部分的可靠性条件、所述来源部分或所述目的地部分的可用数据容量、所述来源部分或所述目的地部分的可用性、或者所述来源部分或所述目的地部分的损耗级别。
30.根据权利要求29所述的数据存储设备,其中,所述来源部分或所述目的地部分的所述可靠性条件包括:用于写入数据的磁头的状态或者当写入数据时遇到的错误级别。
31.根据权利要求25所述的数据存储设备,其中,所述控制器还配置为:确定用于执行所述垃圾收集操作的时间。
32.根据权利要求31所述的数据存储设备,其中,所述控制器还配置为基于以下各项中的至少一项来确定用于所述垃圾收集操作的所述时间:处理资源的可用性、所述目的地部分或所述来源部分的可用性、当日时间或者所述主机的活动级别。
33.根据权利要求25所述的数据存储设备,其中,所述控制器还配置为:在完成所述垃圾收集操作之后,将所述目的地部分设置为可用于存储数据。
34.一种用于在包括多个数据存储设备和主机的数据存储系统中管理数据的方法,所述方法包括:
基于由所述主机定义的至少一个属性,识别将从所述多个数据存储设备的来源部分重定位到所述多个数据存储设备的目的地部分的数据和/或针对所述目的地部分的位置;
根据对将重定位的所述数据和/或针对所述目的地部分的所述位置的所述识别,将所述数据从所述来源部分重定位到所述目的地部分;
确定在将所述数据从所述来源部分重定位到所述目的地部分时,是否对存储于所述来源部分中的相关数据做出了改变;以及
如果在将所述数据重定位到所述目的地部分时对存储于所述来源部分中的相关数据做出了改变,则将经改变的相关数据从所述来源部分重定位到所述目的地部分。
35.根据权利要求34所述的方法,还包括:通过比较在重定位所述数据之前和之后所述来源部分的元数据,来确定是否对存储于所述来源部分中的相关数据做出了改变。
36.根据权利要求34所述的方法,还包括:
确定在将经改变的相关数据从所述来源部分重定位到所述目的地部分时,是否对所述来源部分中的额外的相关数据做出了进一步的改变;以及
如果在将经改变的相关数据重定位到所述目的地部分时,对所述来源部分中的额外的相关数据做出了进一步的改变,则:
将由所述进一步的改变所获得的额外的经改变的相关数据从所述来源部分重定位到所述目的地部分;以及
在重定位所述额外的经改变的相关数据时,阻止对所述来源部分的进一步的改变。
37.一种数据存储系统,包括:
主机,其包括处理器;以及
多个数据存储设备,其与所述主机通信;
其中,所述处理器配置为:
基于由所述主机定义的至少一个属性,识别将从所述多个数据存储设备的来源部分重定位到所述多个数据存储设备的目的地部分的数据和/或针对所述目的地部分的位置;
根据对将重定位的所述数据和/或针对所述目的地部分的所述位置的所述识别,将所述数据从所述来源部分重定位到所述目的地部分;
确定在将所述数据从所述来源部分重定位到所述目的地部分时,是否对存储于所述来源部分中的相关数据做出了改变;以及
如果在将所述数据重定位到所述目的地部分时对存储于所述来源部分中的相关数据做出了改变,则将经改变的相关数据从所述来源部分重定位到所述目的地部分。
38.根据权利要求37所述的数据存储系统,其中,所述处理器还配置为:通过比较在重定位所述数据之前和之后所述来源部分的元数据,来确定是否对存储于所述来源部分中的相关数据做出了改变。
39.根据权利要求37所述的数据存储系统,其中,所述处理器还配置为:
确定在将经改变的相关数据从所述来源部分重定位到所述目的地部分时,是否对所述来源部分中的额外的相关数据做出了进一步的改变;以及
如果在将经改变的相关数据重定位到所述目的地部分时,对所述来源部分中的额外的相关数据做出了进一步的改变,则:
将由所述进一步的改变所获得的额外的经改变的相关数据从所述来源部分重定位到所述目的地部分;以及
在重定位所述额外的经改变的相关数据时,阻止对所述来源部分的进一步的改变。
CN201580006048.6A 2014-01-27 2015-01-23 用于数据存储系统的垃圾收集和数据重定位 Active CN105934749B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201461932113P 2014-01-27 2014-01-27
US61/932,113 2014-01-27
US14/538,513 2014-11-11
US14/538,513 US9501393B2 (en) 2014-01-27 2014-11-11 Data storage system garbage collection based on at least one attribute
PCT/US2015/012689 WO2015112864A1 (en) 2014-01-27 2015-01-23 Garbage collection and data relocation for data storage system

Publications (2)

Publication Number Publication Date
CN105934749A CN105934749A (zh) 2016-09-07
CN105934749B true CN105934749B (zh) 2019-10-08

Family

ID=53679184

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580006048.6A Active CN105934749B (zh) 2014-01-27 2015-01-23 用于数据存储系统的垃圾收集和数据重定位

Country Status (6)

Country Link
US (2) US9501393B2 (zh)
EP (1) EP3100165B1 (zh)
CN (1) CN105934749B (zh)
AU (1) AU2015209199A1 (zh)
CA (1) CA2937877A1 (zh)
WO (1) WO2015112864A1 (zh)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10642505B1 (en) 2013-01-28 2020-05-05 Radian Memory Systems, Inc. Techniques for data migration based on per-data metrics and memory degradation
US11249652B1 (en) 2013-01-28 2022-02-15 Radian Memory Systems, Inc. Maintenance of nonvolatile memory on host selected namespaces by a common memory controller
US10445229B1 (en) 2013-01-28 2019-10-15 Radian Memory Systems, Inc. Memory controller with at least one address segment defined for which data is striped across flash memory dies, with a common address offset being used to obtain physical addresses for the data in each of the dies
US9652376B2 (en) 2013-01-28 2017-05-16 Radian Memory Systems, Inc. Cooperative flash memory control
US9542118B1 (en) 2014-09-09 2017-01-10 Radian Memory Systems, Inc. Expositive flash memory control
US10552085B1 (en) 2014-09-09 2020-02-04 Radian Memory Systems, Inc. Techniques for directed data migration
US10552058B1 (en) 2015-07-17 2020-02-04 Radian Memory Systems, Inc. Techniques for delegating data processing to a cooperative memory controller
US10168917B2 (en) 2016-04-05 2019-01-01 International Business Machines Corporation Hotness based data storage for facilitating garbage collection
KR102570367B1 (ko) 2016-04-21 2023-08-28 삼성전자주식회사 불휘발성 메모리 장치 및 컨트롤러를 포함하는 스토리지 장치를 액세스하는 액세스 방법
US10268394B2 (en) * 2016-08-10 2019-04-23 Seagate Technology Llc Data storage device performance optimization method and apparatus
WO2018081582A1 (en) * 2016-10-28 2018-05-03 Atavium, Inc. Systems and methods for random to sequential storage mapping
US10740294B2 (en) * 2017-01-12 2020-08-11 Pure Storage, Inc. Garbage collection of data blocks in a storage system with direct-mapped storage devices
US9990949B1 (en) * 2017-09-05 2018-06-05 Seagate Technology Llc Multi-channel data recording
US11645059B2 (en) 2017-12-20 2023-05-09 International Business Machines Corporation Dynamically replacing a call to a software library with a call to an accelerator
US10572250B2 (en) * 2017-12-20 2020-02-25 International Business Machines Corporation Dynamic accelerator generation and deployment
US10572184B2 (en) 2018-01-11 2020-02-25 International Business Machines Corporation Garbage collection in data storage systems
US11422726B1 (en) * 2018-05-01 2022-08-23 Amazon Technologies, Inc. Efficient storage device data move operation based on priority of garbage collection command
US10754574B1 (en) 2018-05-18 2020-08-25 Amazon Technologies, Inc. Attribute-driven storage for storage devices
CN109445681B (zh) * 2018-08-27 2021-05-11 华为技术有限公司 数据的存储方法、装置和存储系统
KR20200027858A (ko) 2018-09-05 2020-03-13 에스케이하이닉스 주식회사 메모리 컨트롤러 및 이를 포함하는 메모리 시스템
TWI726314B (zh) * 2019-05-02 2021-05-01 慧榮科技股份有限公司 資料儲存裝置與資料處理方法
US10880402B1 (en) * 2019-07-26 2020-12-29 Intuit Inc. System and method for dynamic routing of messages between networks
US10929288B1 (en) * 2019-10-08 2021-02-23 International Business Machines Corporation Protecting against data loss during garbage collection
US11175984B1 (en) 2019-12-09 2021-11-16 Radian Memory Systems, Inc. Erasure coding techniques for flash memory
KR20220093982A (ko) * 2020-12-28 2022-07-05 삼성전자주식회사 파편화율을 이용하는 메모리 컨트롤러, 및 스토리지 장치 및 이의 동작 방법
US20230079698A1 (en) * 2021-09-16 2023-03-16 Western Digital Technologies, Inc. Data Storage Devices, Systems, and Related Methods to Determine Writing Fragmentation Levels of Memory Devices

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1509435A (zh) * 2001-06-19 2004-06-30 ض� 一种使用非暂态流存储来改进垃圾收集算法的方法
CN102243613A (zh) * 2010-05-12 2011-11-16 西部数据技术公司 管理固态存储器中垃圾收集的系统和方法
CN102317923A (zh) * 2009-02-25 2012-01-11 日本电气株式会社 存储系统
CN102999132A (zh) * 2011-09-09 2013-03-27 国际商业机器公司 管理计算系统的存储模块间的热分布的方法和系统
US8521972B1 (en) * 2010-06-30 2013-08-27 Western Digital Technologies, Inc. System and method for optimizing garbage collection in data storage
CN103377285A (zh) * 2012-04-25 2013-10-30 国际商业机器公司 用于增强对存储云去重技术的可靠性的方法与系统
CN103384877A (zh) * 2011-06-07 2013-11-06 株式会社日立制作所 包括闪存的存储系统和存储控制方法

Family Cites Families (439)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5430859A (en) 1991-07-26 1995-07-04 Sundisk Corporation Solid state memory system including plural memory chips and a serialized bus
US6230233B1 (en) 1991-09-13 2001-05-08 Sandisk Corporation Wear leveling techniques for flash EEPROM systems
US5726821A (en) 1995-12-22 1998-03-10 Western Digital Corporation Programmable preamplifier unit with serial interface for disk data storage device using MR heads
US6185063B1 (en) 1997-02-13 2001-02-06 Seagate Technology Llc Methods and apparatus for overlapping data tracks on a storage medium
US6411452B1 (en) 1997-03-11 2002-06-25 Western Digital Technologies, Inc. Disk drive employing read error tolerant sync mark detection
US6092149A (en) 1997-05-28 2000-07-18 Western Digital Corporation Disk drive cache system using a dynamic priority sequential stream of data segments continuously adapted according to prefetched sequential random, and repeating types of accesses
US6208477B1 (en) 1997-06-06 2001-03-27 Western Digital Corporation Hard disk drive having a built-in self-test for measuring non-linear signal distortion
US6105104A (en) 1997-10-20 2000-08-15 Western Digital Corporation Method and apparatus for optimizing the data transfer rate to and from a plurality of disk surfaces
US6246346B1 (en) 1997-10-24 2001-06-12 Western Digital Corporation Storage system employing high-rate code with constraint on run length between occurrences of an influential pattern
US6145052A (en) 1997-11-04 2000-11-07 Western Digital Corporation Disk drive with adaptive pooling for command reordering
US6018789A (en) 1997-11-24 2000-01-25 Western Digital Corporation Disk drive with cache segment providing adaptively managed chunks
US6292912B1 (en) 1998-02-27 2001-09-18 Western Digital Technologies, Inc. Disk drive having built-in self-test system for characterizing performance of the drive
US6175893B1 (en) 1998-04-24 2001-01-16 Western Digital Corporation High bandwidth code/data access using slow memory
US6249393B1 (en) 1998-06-16 2001-06-19 Western Digital Corporation Disk drive having a write condition detector for suspending write operations while a transducer flying height deviates from its operating flying height
US6078452A (en) 1998-06-22 2000-06-20 Western Digital Corporation Disk drive employing method of writing a data block to a data sector following a defective servo sector
US6195218B1 (en) 1998-06-25 2001-02-27 Western Digital Corporation Disk drive which efficiently stores zone parameter sets for a plurality of disk surfaces
US6388833B1 (en) 1998-06-29 2002-05-14 Western Digital Technologies, Inc. Method for manufacturing a disk drive having an overwriteable clock track
US6223303B1 (en) 1998-06-29 2001-04-24 Western Digital Corporation Disk drive having two tiered defect list comprising marginal and reserved data sectors
US6327106B1 (en) 1998-08-21 2001-12-04 Western Digital Technologies, Inc Disk drive having data-guarding firmware
US6205494B1 (en) 1998-12-18 2001-03-20 Western Digital Corporation Controller with automatic generation of linked list of data transfer descriptors for sequential commands, with linked list being used for execution of sequential data transfers
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
US6546489B1 (en) 1999-03-04 2003-04-08 Western Digital Ventures, Inc. Disk drive which provides a secure boot of a host computer system from a protected area of a disk
US6256695B1 (en) 1999-03-15 2001-07-03 Western Digital Corporation Disk drive method of determining SCSI bus state information after a SCSI bus reset condition
US6384999B1 (en) 1999-04-12 2002-05-07 Western Digital Technologies, Inc. Rewrite with embedded reassign for data recovery from marginally defective data sites on a data storage device
US6279089B1 (en) 1999-04-12 2001-08-21 Western Digital Technologies, Inc. Defective data site management through a shared defect management table
US6411458B1 (en) 1999-04-23 2002-06-25 Western Digital Technologies, Inc. Disk drive employing method of monitoring transducer flying height to retire defective data site on recording surface
US6263459B1 (en) 1999-04-29 2001-07-17 Western Digital Corporation On the fly write reallocation
US6480020B1 (en) 1999-05-18 2002-11-12 Western Digital Technologies, Inc. Printed circuit assembly having integrated resistors for terminating data and control lines of a host-peripheral interface
US6289484B1 (en) 1999-05-19 2001-09-11 Western Digital Technologies, Inc. Disk drive employing off-line scan to collect selection-control data for subsequently deciding whether to verify after write
US6337778B1 (en) 1999-05-25 2002-01-08 Western Digital Technologies, Inc. Disk drive employing vector addition of primary phase write clock signals for generating secondary phase write clock signal
US6310740B1 (en) 1999-06-29 2001-10-30 Western Digital Technologies, Inc Disk drive including N-current preamplifier for generating N-independently controlled write currents
US6408406B1 (en) 1999-08-31 2002-06-18 Western Digital Technologies, Inc. Hard disk drive infant mortality test
US6405342B1 (en) 1999-09-10 2002-06-11 Western Digital Technologies, Inc. Disk drive employing a multiple-input sequence detector responsive to reliability metrics to improve a retry operation
US6499083B1 (en) 1999-09-15 2002-12-24 Western Digital Ventures, Inc. Disk-based storage system responsive to a direction-selection signal for autonomously controlling seeks in a sequence determined by the direction-selection signal and a locally-stored doubly linked list
US6412083B1 (en) 1999-09-16 2002-06-25 Western Digital Technologies, Inc. Disk drive that supports a list-requesting command for enabling a host computer to assist in rescuing a rescue-candidate location having a drive-unrecoverable data
US6757481B1 (en) 1999-09-22 2004-06-29 Western Digital Technologies, Inc. Disk drives and disk drive-containing devices having selectively controllable and/or adaptive quiet and high performance modes of operation
US6272694B1 (en) 1999-09-24 2001-08-14 International Business Machines Corporation Enhanced interface for electrostatic discharge garment
US6690882B1 (en) 1999-09-27 2004-02-10 Western Digital Technologies, Inc. Method of operating a disk drive for reading and writing audiovisual data on an urgent basis
US6550021B1 (en) 1999-09-30 2003-04-15 Western Digital Ventures, Inc. Internet-implemented method supporting component repair services
US6493173B1 (en) 1999-11-08 2002-12-10 Western Digital Technologies, Inc. Headerless disk drive comprising repeatable runout (RRO) correction values recorded at a user data rate
US6445524B1 (en) 1999-12-20 2002-09-03 Western Digital Technologies, Inc. Method of operating a disk drive for writing to an addressable location after detecting that a head is within a safe-to-write window
US6973570B1 (en) 1999-12-31 2005-12-06 Western Digital Ventures, Inc. Integrated circuit comprising encryption circuitry selectively enabled by verifying a device
US6317850B1 (en) 2000-01-18 2001-11-13 Western Digital Technologies, Inc. Error rate measurement in disk drive by weighting data-recovery procedures
US6580573B1 (en) 2000-01-24 2003-06-17 Western Digital Technologies, Inc. Disk drive having a channel circuit which receives a read signal representing data in a data sector and data in a servo sector in a first order and demodulates the read signal to provide data sector data and servo-sector data in a second order
US6415349B1 (en) 2000-01-24 2002-07-02 Western Digital Technologies, Inc. Disk drive with unified channel-disk controller bus for transmitting user data, servo data, and register data
US6735693B1 (en) 2000-01-28 2004-05-11 Western Digital Ventures, Inc. Disk drive comprising encryption circuitry selectively enabled by verifying a circuit that provides plaintext data
US6525892B1 (en) 2000-01-28 2003-02-25 Western Digital Technologies, Inc. Method of calibrating a write current-setting for servo writing a disk drive
US6772281B2 (en) 2000-02-17 2004-08-03 Western Digital Ventures, Inc. Disk drive for selectively satisfying a read request from a host computer for a first valid data block with a second valid data block
US6480349B1 (en) 2000-02-25 2002-11-12 Western Digital Technologies, Inc. Disk drive employing a non-volatile semiconductor memory for storing read channel parameter calibrated for the disk drive used to recover disk channel parameter
US6615312B1 (en) 2000-02-29 2003-09-02 Western Digital Ventures, Inc. Method for processing file system service requests in a computer having an attached disk drive that can reproduce stream data and non-stream data
US6799274B1 (en) 2000-03-30 2004-09-28 Western Digital Ventures, Inc. Device comprising encryption circuitry enabled by comparing an operating spectral signature to an initial spectral signature
US6691198B1 (en) 2000-03-30 2004-02-10 Western Digital Ventures, Inc. Automatically transmitting scheduling data from a plurality of storage systems to a network switch for scheduling access to the plurality of storage systems
US6600620B1 (en) 2000-03-31 2003-07-29 Western Digital Technologies, Inc. Self-servo writing a disk drive by propagating interleaved sets of timing clocks and servo bursts during alternate time intervals
US6470420B1 (en) 2000-03-31 2002-10-22 Western Digital Ventures, Inc. Method for designating one of a plurality of addressable storage devices to process a data transfer request
US6693760B1 (en) 2000-03-31 2004-02-17 Western Digital Technologies, Inc. Preamplifier circuit configurable to allow simultaneous read and write operations for self-servo writing a disk drive
US6606714B1 (en) 2000-04-17 2003-08-12 Western Digital Technologies, Inc. Disk drive using defect list to perform uninterrupted writing of non-relocated data blocks and caching of relocated data blocks for deferred writing
US6725329B1 (en) 2000-04-19 2004-04-20 Western Digital Technologies, Inc. Cache control system and method having hardware-based tag record allocation
US6601137B1 (en) 2000-04-19 2003-07-29 Western Digital Technologies, Inc. Range-based cache control system and method
US6553457B1 (en) 2000-04-19 2003-04-22 Western Digital Technologies, Inc. Tag memory disk cache architecture
US6606682B1 (en) 2000-04-19 2003-08-12 Western Digital Technologies, Inc. Cluster-based cache memory allocation
US6954733B1 (en) 2000-04-21 2005-10-11 Western Digital Ventures, Inc. Internet based computer system and method for component exchange
US7526184B1 (en) 2000-04-28 2009-04-28 Keen Personal Media, Inc. Video recording system utilizing external video storage to record streaming video data via an isochronous interface
US6490635B1 (en) 2000-04-28 2002-12-03 Western Digital Technologies, Inc. Conflict detection for queued command handling in disk drive controller
US6483986B1 (en) 2000-05-26 2002-11-19 Keen Personal Media, Inc. Method and apparatus for recording streaming video data upon selection of alternative subject matter
US6724982B1 (en) 2000-05-31 2004-04-20 Western Digital Ventures, Inc. Digital audiovisual magnetic disk doubly linked list recording format extension to multiple devices
US6751402B1 (en) 2000-06-28 2004-06-15 Keen Personal Media, Inc. Set-top box connectable to a digital video recorder via an auxiliary interface and selects between a recorded video signal received from the digital video recorder and a real-time video signal to provide video data stream to a display device
US7146094B1 (en) 2000-05-31 2006-12-05 Keen Personal Technologies, Inc. Set-top box that provides video data stream to a display device based on selection between recorded video signal received from the digital video recorder and a real-time video signal
US6442328B1 (en) 2000-05-31 2002-08-27 Keen Personal Media, Inc. Digital video recorder connectable to an auxiliary interface of a set-top box that provides video data stream to a display device based on selection between recorded video signal received from the dig
US7949564B1 (en) 2000-05-31 2011-05-24 Western Digital Technologies, Inc. System and method of receiving advertisement content from advertisers and distributing the advertising content to a network of personal computers
US6691255B1 (en) 2000-05-31 2004-02-10 Western Digital Technologies, Inc. Accelerated media scan method for detection of disk drive handling damage
US7215771B1 (en) 2000-06-30 2007-05-08 Western Digital Ventures, Inc. Secure disk drive comprising a secure drive key and a drive ID for implementing secure communication over a public network
US7263709B1 (en) 2000-06-30 2007-08-28 Keen Personal Media, Inc. System for displaying video data having a promotion module responsive to a viewer profile to entice a viewer to watch a premium content
US6425128B1 (en) 2000-06-30 2002-07-23 Keen Personal Media, Inc. Video system with a control device for displaying a menu listing viewing preferences having a high probability of acceptance by a viewer that include weighted premium content
US6449767B1 (en) 2000-06-30 2002-09-10 Keen Personal Media, Inc. System for displaying an integrated portal screen
US7150036B1 (en) 2000-07-18 2006-12-12 Western Digital Ventures, Inc. Method of and personal computer for displaying content received from a content delivery server using a disk drive which includes a network address for the content delivery server and a server-contacting program
US6973495B1 (en) 2000-07-18 2005-12-06 Western Digital Ventures, Inc. Disk drive and method of manufacturing same including a network address and server-contacting program
US6983316B1 (en) 2000-07-18 2006-01-03 Western Digital Ventures, Inc. Method of and content delivery server for delivering content to a personal computer having a disk drive which includes a network address for the content delivery server and a server-contacting program
US7054937B1 (en) 2000-07-18 2006-05-30 Western Digital Ventures, Inc. Computer network and connection method for connecting a personal computer and a content delivery system using a disk drive which includes a network address and server-contacting program
US6928470B1 (en) 2000-07-31 2005-08-09 Western Digital Ventures, Inc. Transferring scheduling data from a plurality of disk storage devices to a network switch before transferring data associated with scheduled requests between the network switch and a plurality of host initiators
US6832041B1 (en) 2000-07-31 2004-12-14 Keen Personal Media, Inc. Video recording system utilizing host-processor-resident error recovery to transfer non-time-critical, error-intolerant data segments while transferring time-critical, error-tolerant streaming data segments at a required data transfer rate
US7003674B1 (en) 2000-07-31 2006-02-21 Western Digital Ventures, Inc. Disk drive employing a disk with a pristine area for storing encrypted data accessible only by trusted devices or clients to facilitate secure network communications
US6665772B1 (en) 2000-07-31 2003-12-16 Western Digital Ventures, Inc. Data storage method and device for storing streaming and non-streaming data in common memory space
US7155616B1 (en) 2000-07-31 2006-12-26 Western Digital Ventures, Inc. Computer network comprising network authentication facilities implemented in a disk drive
US6606717B1 (en) 2000-07-31 2003-08-12 Western Digital Technologies, Inc. Cache control method and system for mixed streaming and non-streaming data
US6453115B1 (en) 2000-08-31 2002-09-17 Keen Personal Media, Inc. Digital video recording system which generates an index data structure for displaying a video stream in trickplay mode
US7133600B1 (en) 2000-08-31 2006-11-07 Keen Personal Media, Inc. Video recording system utilizing storage redundancy to transfer non-time-critical, error-intolerant data segments while transferring time-critical, error-tolerant streaming data segments at a required data transfer rate
US7206497B1 (en) 2000-08-31 2007-04-17 Keen Personal Media, Inc. Electronic program guide subsystem for receiving and processing electronic program guide information from a set-top box
US6603625B1 (en) 2000-09-11 2003-08-05 Western Digital Technologies, Inc. Spindle synchronizing a plurality of spindles connected to a multi-dimensional computer network
US6697914B1 (en) 2000-09-11 2004-02-24 Western Digital Ventures, Inc. Switched node comprising a disk controller with integrated multi-port switching circuitry
US7292774B1 (en) 2000-09-26 2007-11-06 Keen Personal Media, Inc. System and method for creating and displaying a preference based menu for a viewing session
US6604220B1 (en) 2000-09-28 2003-08-05 Western Digital Technologies, Inc. Disk drive comprising a multiple-input sequence detector selectively biased by bits of a decoded ECC codedword
US6694477B1 (en) 2000-09-28 2004-02-17 Western Digital Technologies, Inc. Communication channel employing an ECC decoder enhanced by likely error events of a trellis sequence detector
US6888831B1 (en) 2000-09-28 2005-05-03 Western Digital Ventures, Inc. Distributed resource reservation system for establishing a path through a multi-dimensional computer network to support isochronous data
US6965563B1 (en) 2000-09-28 2005-11-15 Western Digital Ventures, Inc. Resource reservation system in a computer network to support end-to-end quality-of-service constraints
US6853731B1 (en) 2000-09-30 2005-02-08 Keen Personal Technologies, Inc. Digital video recorder employing a unique ID to interlock with encrypted video programs stored on a storage device
US6851055B1 (en) 2000-09-30 2005-02-01 Keen Personal Technologies, Inc. Digital video recorder for encrypting/decrypting video programs in segments to facilitate trick play features
US6851063B1 (en) 2000-09-30 2005-02-01 Keen Personal Technologies, Inc. Digital video recorder employing a file system encrypted using a pseudo-random sequence generated from a unique ID
US6578106B1 (en) 2000-10-31 2003-06-10 Keen Personal Media, Inc. Data storage system adapted to select an operational state with corresponding performance levels and acoustic noise levels based on a system profile
US6744772B1 (en) 2000-11-30 2004-06-01 Western Digital Ventures, Inc. Converting asynchronous packets into isochronous packets for transmission through a multi-dimensional switched fabric network
US7002926B1 (en) 2000-11-30 2006-02-21 Western Digital Ventures, Inc. Isochronous switched fabric network
US7657149B2 (en) 2000-12-22 2010-02-02 Keen Personal Media, Inc. Method and apparatus for storing a stream of video data on a storage medium
US6940873B2 (en) 2000-12-27 2005-09-06 Keen Personal Technologies, Inc. Data stream control system for associating counter values with stored selected data packets from an incoming data transport stream to preserve interpacket time interval information
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
US6480932B1 (en) 2001-01-31 2002-11-12 Western Digital Technologies, Inc. Computer system having a host computer coupled to a disk drive with a drive-selected-application partition for storing data for execution by the host computer in response to drive-determined conditions
US6986154B1 (en) 2001-01-31 2006-01-10 Keen Personal Media, Inc. System and method for selecting content to be presented to a user
US6552880B1 (en) 2001-01-31 2003-04-22 Western Digital Technologies, Inc. Disk drive comprising thermal asperity protection by reducing an electrical bias supplied to a magneto-resistive head
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
US6687078B1 (en) 2001-02-28 2004-02-03 Western Digital Technologies, Inc. Disk drive for writing micro-jog values along the centerline of a reserved track and for writing user data offset from the centerline of a data track
US6948165B1 (en) 2001-02-28 2005-09-20 Western Digital Ventures, Inc. Method for installing an application program, to be executed during each bootload of a computer system for presenting a user with content options prior to conventional system startup presentation, without requiring a user's participation to install the program
US6657810B1 (en) 2001-02-28 2003-12-02 Western Digital Technologies, Inc. Disk drive employing separate read and write repeatable runout estimated values for a head having a read element offset from a write element
US6639748B1 (en) 2001-02-28 2003-10-28 Western Digital Technologies, Inc. Disk drive that discerns the polarity of a head signal from a sync mark to enhance data detection
US6369969B1 (en) 2001-02-28 2002-04-09 Western Digital Technologies, Inc. Disk drive for detecting a polarity error of a magnetoresistive head by detecting a sync mark
US6691213B1 (en) 2001-02-28 2004-02-10 Western Digital Ventures, Inc. Computer system and method for accessing a protected partition of a disk drive that lies beyond a limited address range of a host computer's BIOS
US8091112B1 (en) 2001-02-28 2012-01-03 Keen Personal Technologies, Inc. System and a method for transmitting and receiving a program with improved efficiency
US6603622B1 (en) 2001-02-28 2003-08-05 Western Digital Technologies, Inc. Disk drive employing a sync mark detector comprising a matched filter and a dual polarity correlator
US7318088B1 (en) 2001-03-30 2008-01-08 Western Digital Ventures, Inc. Receiving data at a client computer and performing an operation on the data at the client computer based on information in the key file
US6934713B2 (en) 2001-04-20 2005-08-23 Keen Personal Media, Inc. Method and system for presenting programs to a user that facilitate selecting programs from a multitude of programs
US6654193B1 (en) 2001-04-30 2003-11-25 Western Digital Technologies, Inc. Disk drive for relocating a block of data sectors near a defective servo sector to expedite write operations
US6690523B1 (en) 2001-04-30 2004-02-10 Western Digital Technologies, Inc. Disk drive for updating operating zone parameters with adapted zone parameters calibrated in the field
US6611393B1 (en) 2001-04-30 2003-08-26 Western Digital Technologies, Inc. Disk drive employing field calibration based on marginal sectors
US6545830B1 (en) 2001-04-30 2003-04-08 Western Digital Technologies, Inc. Disk drive storing test pattern in calibration sectors that are longer than user data sectors for zone parameter calibration
US6826614B1 (en) 2001-05-04 2004-11-30 Western Digital Ventures, Inc. Caching advertising information in a mobile terminal to enhance remote synchronization and wireless internet browsing
US6931439B1 (en) 2001-05-23 2005-08-16 Western Digital Ventures, Inc. Modifying web page links for display on a mobile terminal to indicate the cache status of linked web pages
US7024491B1 (en) 2001-05-23 2006-04-04 Western Digital Ventures, Inc. Remotely synchronizing a mobile terminal by adapting ordering and filtering synchronization rules based on a user's operation of the mobile terminal
US6708251B1 (en) 2001-05-31 2004-03-16 Keen Personal Media, Inc. Disk drive having separate interfaces for host commands and audiovisual data
US7577973B1 (en) 2001-05-31 2009-08-18 Keen Personal Media, Inc. Client terminal for displaying program guide information associated with different programs within a pop-up
US8769593B1 (en) 2001-05-31 2014-07-01 Keen Personal Media, Inc. Client terminal for storing an initial program segment and appending a remaining program segment to provide a video program on demand
US7319806B1 (en) 2001-06-08 2008-01-15 Keen Personal Media, Inc. Audiovisual system which uses metadata to allow user-initiated jumps from point to point within multiple audiovisual streams
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
US6711660B1 (en) 2001-06-22 2004-03-23 Western Digital Ventures, Inc. System and method for performing disk drive diagnostics and restoration using a host-inaccessible hidden partition
US7274659B2 (en) 2001-07-27 2007-09-25 Western Digital Ventures, Inc. Providing streaming media data
US7275116B1 (en) 2001-07-30 2007-09-25 Western Digital Ventures, Inc. Mobile terminal synchronizing components of a document separately
US7725584B1 (en) 2001-07-30 2010-05-25 Western Digital Ventures, Inc. Using multiple communication channels to synchronize a mobile terminal based on data type
US7596797B1 (en) 2001-07-31 2009-09-29 Keen Personal Media, Inc. Client terminal for providing a subscription to a bundle of channels from a program guide
US7171108B1 (en) 2001-07-31 2007-01-30 Keen Personal Media, Inc. Audiovisual system to interrupt viewing of a first audiovisual program to provide notification of a second audiovisual program of interest to the user
US7024549B1 (en) 2001-07-31 2006-04-04 Western Digital Ventures, Inc. Disk drive having a protected partition configured to load an operating system for performing a user-selected function
US7296284B1 (en) 2001-08-31 2007-11-13 Keen Personal Media, Inc. Client terminal for displaying ranked program listings based upon a selected rating source
US6687073B1 (en) 2001-08-31 2004-02-03 Western Digital Technologies, Inc. Method of simultaneously writing servo tracks on a hard disk drive
US7325244B2 (en) 2001-09-20 2008-01-29 Keen Personal Media, Inc. Displaying a program guide responsive to electronic program guide data and program recording indicators
US7106947B2 (en) 2001-09-20 2006-09-12 Keen Personal Media, Inc. Communicating a channel-change event from a set top box to a digital video recorder
US7027716B1 (en) 2001-09-20 2006-04-11 Keen Personal Media, Inc. Communicating between a digital video recorder (DVR) and a set top box (STB) to coordinate the display of a graphical user interface
US7292775B1 (en) 2001-09-20 2007-11-06 Keen Personal Media, Inc. Communicating program identifiers from a digital video recorder (DVR) to a set top box (STB) independent of when the STB demodulates the associated program data
US8079045B2 (en) 2001-10-17 2011-12-13 Keen Personal Media, Inc. Personal video recorder and method for inserting a stored advertisement into a displayed broadcast stream
US7543117B1 (en) 2001-10-31 2009-06-02 Western Digital Ventures, Inc. Method for installing a mailbox file associated with a disk storage medium
US6710951B1 (en) 2001-10-31 2004-03-23 Western Digital Technologies, Inc. Phase locked loop employing a fractional frequency synthesizer as a variable oscillator
US7415571B1 (en) 2001-10-31 2008-08-19 Western Digital Ventures, Inc. Disk drive and method for using a mailbox file associated with a disk storage medium for performing a function characterized by contents of the mailbox file
TW487177U (en) 2001-10-31 2002-05-11 Coretronic Corp Anti-dust lid of connecting slot
US6895500B1 (en) 2001-10-31 2005-05-17 Western Digital Technologies, Inc. Disk drive for receiving setup data in a self monitoring analysis and reporting technology (SMART) command
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
US7055167B1 (en) 2001-10-31 2006-05-30 Keen Personal Media, Inc. Personal video recorder and method enabling a history pull down function for program selection
US6898730B1 (en) 2001-11-30 2005-05-24 Western Digital Technologies, Inc. System and method for fail-over switching in a disk storage medium
US7171110B1 (en) 2001-11-30 2007-01-30 Keen Personal Media, Inc. System and a method for storing audio/video programs on a hard disk drive for presentation to a viewer
US6986007B1 (en) 2001-11-30 2006-01-10 Western Digital Technologies, Inc. Disk drive comprising an asynchronous partition located on a disk between two isochronous partitions
US6704153B1 (en) 2001-11-30 2004-03-09 Western Digital Technologies, Inc. Method for analyzing magnetic media surface in a disk drive for indications of head impact
US7813954B1 (en) 2001-12-14 2010-10-12 Keen Personal Media, Inc. Audiovisual system and method for displaying segmented advertisements tailored to the characteristic viewing preferences of a user
US7653927B1 (en) 2001-12-21 2010-01-26 Keen Personal Media, Inc. System and method for selecting a pay per view program to be transmitted to a program receiver
US8799977B1 (en) 2001-12-22 2014-08-05 Keen Personal Media, Inc. Set-top box to request a head end to command one of a plurality of other set-top boxes to transmit an available video program
US7249365B1 (en) 2002-01-31 2007-07-24 Keen Personal Media, Inc. System and method for ensuring presentation of embedded rich media across station boundaries
US6826003B1 (en) 2002-01-31 2004-11-30 Western Digital Technologies, Inc. Disk drive comprising a pattern dependent overshoot circuit for controlling write current overshoot
US6647481B1 (en) 2002-01-31 2003-11-11 Western Digital Ventures, Inc. Method for accessing data storage locations having addresses within a hidden logical address range
US6854022B1 (en) 2002-02-22 2005-02-08 Western Digital Technologies, Inc. Disk drive using rotational position optimization algorithm to facilitate write verify operations
US7136244B1 (en) 2002-02-22 2006-11-14 Western Digital Technologies, Inc. Disk drive employing data averaging techniques during retry operations to facilitate data recovery
US6711628B1 (en) 2002-02-22 2004-03-23 Western Digital Technologies, Inc. Disk drive aborting a write command before a last target sector reached if an abnormal condition detected and selecting a second command according to a rotational positioning optimization algorithm
US7031902B1 (en) 2002-02-28 2006-04-18 Western Digital Technologies, Inc. Presilicon disk model for design, development and validation
US6882486B1 (en) 2002-03-29 2005-04-19 Western Digital Technologies, Inc. Disk drive comprising asynchronous/synchronous gain control for fault tolerant detection of servo sync mark after head switch
US6745283B1 (en) 2002-04-16 2004-06-01 Western Digital Technologies, Inc. Disk drive for dynamically allocating memory accessed concurrently by a host interface and a disk interface to facilitate large host commands
US7126776B1 (en) 2002-04-17 2006-10-24 Western Digital Technologies, Inc. Disk drive having a sector clock that is synchronized to the angular speed of the spindle motor
US6995933B1 (en) 2002-04-30 2006-02-07 Western Digital Technologies, Inc. Disk drive for optimizing write current settings relative to drive operating characteristics and ambient temperature readings
US6792486B1 (en) 2002-04-30 2004-09-14 Western Digital Ventures, Inc. System and method for managing information storage among plural disk drives
US6892249B1 (en) 2002-05-02 2005-05-10 Western Digital Technologies, Inc. Dependently adjusting at least three operating levels of a disk drive by dependently adjusting a plurality of disk drive parameters
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
US6782449B1 (en) 2002-06-01 2004-08-24 Western Digital Technologies, Inc. Adaptively modifying a read caching algorithm based upon the detection of a vibration state within a rotating media storage device
US7050252B1 (en) 2002-06-01 2006-05-23 Western Digital Technologies, Inc. Disk drive employing off-line sector verification and relocation of marginal sectors discovered during read error recovery procedure
US6895455B1 (en) 2002-06-26 2005-05-17 Western Digital Technologies, Inc. Disk drive and method for implementing nonstandard disk-drive commands on a serial ATA interface that only supports standard ATA disk-drive commands
US8307156B1 (en) 2002-07-31 2012-11-06 Western Digital Technologies, Inc. Adaptively modifying pre-read operations within a rotating media storage device
US6976190B1 (en) 2002-07-31 2005-12-13 Western Digital Technologies, Inc. Serial ATA disk drive having a parallel ATA test interface and method
US7088538B1 (en) 2002-07-31 2006-08-08 Western Digital Technologies, Inc. Adaptively estimating a read access time to a second track based upon the binned radial position of the second track within a rotating media storage device
US6735650B1 (en) 2002-08-30 2004-05-11 Western Digital Technologies, Inc. Disk drive and method for data transfer initiated by nonstandard disk-drive commands on a serial ATA interface that only supports standard ATA disk-drive commands
US6791779B1 (en) 2002-09-30 2004-09-14 Western Digital Technologies, Inc. Disk drive having a connection-blocking device for use with a serial advanced technology attachment (SATA) power receptacle
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
US6711635B1 (en) 2002-09-30 2004-03-23 Western Digital Technologies, Inc. Disk drive employing thresholds for cache memory allocation
US6961814B1 (en) 2002-09-30 2005-11-01 Western Digital Technologies, Inc. Disk drive maintaining a cache link attribute for each of a plurality of allocation states
US6845427B1 (en) 2002-10-25 2005-01-18 Western Digital Technologies, Inc. Disk drive allocating cache segments by mapping bits of a command size into corresponding segment pools
US7114029B1 (en) 2002-10-31 2006-09-26 Western Digital Technologies, Inc. Disk drive employing a multi-phase rotational position optimization (RPO) algorithm
US6965966B1 (en) 2002-10-31 2005-11-15 Western Digital Technologies, Inc. Disk drive pre-computing seek parameters for a continuation track and a next command to facilitate continuing a read-ahead or aborting the read-ahead
US6811427B2 (en) 2002-11-15 2004-11-02 Western Digital Technologies, Inc. Robust serial advanced technology attachment (SATA) cable connector
US6832929B2 (en) 2002-11-15 2004-12-21 Western Digital Technologies, Inc. Robust serial advanced technology attachment (SATA) PCB connector
US6781826B1 (en) 2002-12-24 2004-08-24 Western Digital Technologies, Inc. External disk drive compatible with a serial advanced technology attachment (SATA) standard including a SATA compatible shielded cable capable of receiving power signals from a host
US6996501B1 (en) 2002-12-24 2006-02-07 Western Digital Technologies, Inc. Disk drive executing a manufacturing program internally by executing disk commands through a vector
US6845405B1 (en) 2002-12-24 2005-01-18 Western Digital Technologies, Inc. Disk drive executing part of a linked disk command
US7024614B1 (en) 2002-12-24 2006-04-04 Western Digital Technologies, Inc. Disk drive employing a configuration data structure comprising a plurality of configuration parameters to facilitate disk commands
US7009820B1 (en) 2002-12-24 2006-03-07 Western Digital Technologies, Inc. Disk drive comprising depletion mode MOSFETs for protecting a head from electrostatic discharge
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
US7076604B1 (en) 2002-12-24 2006-07-11 Western Digital Technologies, Inc. Disk drive employing a disk command data structure for tracking a write verify status of a write command
US7440214B1 (en) 2003-04-30 2008-10-21 Western Digital Technologies, Inc. Disk drive and method having cost-effective storage of the disk drive's internal program code
US6968422B1 (en) 2003-06-27 2005-11-22 Western Digital Technologies, Inc. Disk drive employing a modified rotational position optimization algorithm to account for external vibrations
US6884085B1 (en) 2003-06-27 2005-04-26 Western Digital Technologies, Inc. Raised Serial Advanced Technology Attachment (SATA) connector for high-density mounting on a printed circuit board (PCB)
US7240161B1 (en) 2003-07-31 2007-07-03 Western Digital Technologies, Inc. Instruction prefetch caching for remote memory
US7194576B1 (en) 2003-07-31 2007-03-20 Western Digital Technologies, Inc. Fetch operations in a disk drive control system
US7055000B1 (en) 2003-08-29 2006-05-30 Western Digital Technologies, Inc. Disk drive employing enhanced instruction cache management to facilitate non-sequential immediate operands
US7996645B2 (en) 2003-09-26 2011-08-09 Hitachi Global Storage Technologies Netherlands B.V. Log-structured file system for disk drives with shingled writing
US7490212B2 (en) 2003-09-29 2009-02-10 Hitachi Global Storage Technologies Netherlands B.V. System and method for writing data to dedicated bands of a hard disk drive
US7111116B1 (en) 2003-09-30 2006-09-19 Western Digital Technologies, Inc. Reducing micro-controller access time to data stored in a remote memory in a disk drive control system
US7707374B2 (en) * 2003-10-22 2010-04-27 International Business Machines Corporation Incremental data storage method, apparatus, interface, and system
US6950267B1 (en) 2003-10-31 2005-09-27 Western Digital Technologies, Inc. Disk drive measuring pole tip protrusion by performing a write operation to heat the transducer
US7110202B1 (en) 2003-10-31 2006-09-19 Western Digital Technologies, Inc. Disk drive employing multiple index marks
US7099095B1 (en) 2004-01-30 2006-08-29 Western Digital Technologies, Inc. Track identification codewords having multiple bit error correction capability and generalized gray code property
US6943978B1 (en) 2004-01-31 2005-09-13 Western Digital Technologies, Inc. Servo writing a disk drive by synchronizing a servo write clock to a high frequency signal in a spiral track
US6965489B1 (en) 2004-01-31 2005-11-15 Western Digital Technologies, Inc. Using an external spiral servo writer to write reference servo sectors and spiral tracks to a disk to facilitate writing product servo sectors to the disk
US7237054B1 (en) 2004-02-27 2007-06-26 Western Digital Technologies, Inc. Switching interfaces in external disk drives
US7302579B1 (en) 2004-03-31 2007-11-27 Western Digital Technologies, Inc. Performing backup operations to peripheral data storage systems
US7346790B1 (en) 2004-03-31 2008-03-18 Western Digital Technologies, Inc. Remote power cycling of peripheral data storage system
US7302501B1 (en) 2004-03-31 2007-11-27 Western Digital Technologies, Inc. Peripheral data storage system with multi-state user display
US7023639B1 (en) 2004-03-31 2006-04-04 Western Digital Technologies, Inc. Servo synchronization validation techniques based on both servo synch marks and wedge identifiers in a rotating media storage device
US7274639B1 (en) 2004-05-21 2007-09-25 Western Digital Technologies, Inc. Disk drive performing multi-level prioritization of entries in a suspect sector list to identify and relocate defective data sectors
US6934104B1 (en) 2004-05-28 2005-08-23 Western Digital Technologies, Inc. Servo synchronization based on a servo synch mark that conflicts with self-clocking encoding algorithms
US6967799B1 (en) 2004-05-28 2005-11-22 Western Digital Technologies, Inc. Servo writing a disk drive from spiral tracks by generating a time-stamped sync mark detect signal processed by timing recovery firmware
US8868698B2 (en) * 2004-06-05 2014-10-21 Sonos, Inc. Establishing a secure wireless network with minimum human intervention
US7372650B1 (en) 2004-06-21 2008-05-13 Western Digital Technologies, Inc. Rotating media storage device having a calibration track with unique calibration servo synch marks
US7006316B1 (en) 2004-08-16 2006-02-28 Western Digital Technologies, Inc. Estimating a writer/reader gap in a disk drive by measuring write/read times relative to a sync mark
US7046465B1 (en) 2004-08-27 2006-05-16 Western Digital Technologies, Inc. Disk drive having one or more partial servo wedges that includes a short servo sync mark that is different than the servo sync word of full servo wedges
US7215496B1 (en) 2004-10-20 2007-05-08 Western Digital Technologies, Inc. Disk drive having adaptively-sized sectors to compensate for disk eccentricity
US7205805B1 (en) 2004-11-02 2007-04-17 Western Digital Technologies, Inc. Adjusting power consumption of digital circuitry relative to critical path circuit having the largest propagation delay error
US8316263B1 (en) 2004-11-08 2012-11-20 Western Digital Technologies, Inc. Predicting disk drive failure at a central processing facility using an evolving disk drive failure prediction algorithm
US7129763B1 (en) 2004-11-08 2006-10-31 Western Digital Technologies, Inc. Adjusting power consumption of digital circuitry by generating frequency error representing error in propagation delay
US7496493B1 (en) 2004-11-09 2009-02-24 Western Digital Technologies, Inc. External memory device to provide disk device and optical functionality
US7057836B1 (en) 2004-11-19 2006-06-06 Western Digital Technologies, Inc. Disk drive servo controller utilizing an extended servo header
US7092186B1 (en) 2004-11-23 2006-08-15 Western Digital Technologies, Inc. Demagnetizing a head in a disk drive by increasing the frequency of an AC write signal while maintaining the write current amplitude
US8452938B1 (en) 2004-12-30 2013-05-28 Azul Systems, Inc. Garbage collection with memory quick release
US7106537B1 (en) 2005-02-02 2006-09-12 Western Digital Technologies, Inc. Disk drive using a timer to arbitrate periodic serial communication with a power driver
US7392340B1 (en) 2005-03-21 2008-06-24 Western Digital Technologies, Inc. Disk drive employing stream detection engine to enhance cache management policy
US7366641B1 (en) 2005-03-28 2008-04-29 Western Digital Technologies, Inc. Serial interface amplitude selection for a disk drive in an unknown interconnect environment
US7075746B1 (en) 2005-03-30 2006-07-11 Western Digital Technologies, Inc. Disk drives and disk drive containing devices that include a servo frequency generator and spindle control timer that compensate for disk eccentricity
US7451344B1 (en) 2005-04-08 2008-11-11 Western Digital Technologies, Inc. Optimizing order of error recovery steps in a disk drive
JP2006294162A (ja) 2005-04-13 2006-10-26 Hitachi Global Storage Technologies Netherlands Bv ディスク装置
US7437502B1 (en) 2005-04-20 2008-10-14 Western Digital Technologies, Inc. Disk drive adjusting operating mode based on historical proximity of host commands
US7620772B1 (en) 2005-05-05 2009-11-17 Seagate Technology, Llc Methods and structure for dynamic data density in a dynamically mapped mass storage device
US7502903B2 (en) * 2005-05-13 2009-03-10 3Par, Inc. Method and apparatus for managing data storage systems
US7673075B1 (en) 2005-05-17 2010-03-02 Western Digital Technologies, Inc. Pass-through information transfers in serial communications between a device and a host
US7404013B1 (en) 2005-05-17 2008-07-22 Western Digital Technologies, Inc. Pass-through information transfers inserted after a continued primitive in serial communications between a device and a host
US7149046B1 (en) 2005-05-23 2006-12-12 Western Digital Technologies, Inc. Disk drive implementing wear prevention in a high frequency access band of tracks
US7562282B1 (en) 2005-05-23 2009-07-14 Western Digital Technologies, Inc. Disk drive employing error threshold counters to generate an ECC error distribution
US7088545B1 (en) 2005-06-28 2006-08-08 Western Digital Technologies, Inc. Disk drive decreasing head temperature to increase fly-height during seek operation
US7330323B1 (en) 2005-06-28 2008-02-12 Western Digital Technologies, Inc. Disk drive determining a head-switch preheat period used to format a disk
US8019914B1 (en) 2005-10-07 2011-09-13 Western Digital Technologies, Inc. Disk drive implementing shared buffer memory with reduced interrupt latency
US7436610B1 (en) 2005-10-20 2008-10-14 Western Digital Technologies, Inc. Disk drive employing different zone boundaries across disk surfaces
US7406545B1 (en) 2005-10-20 2008-07-29 Western Digital Technologies, Inc. Disk drive or any serial attached device logging a cable loss event
US7380147B1 (en) 2005-10-24 2008-05-27 Western Digital Technologies, Inc. Computer device employing a sliding window to set an idle mode timeout interval
US7539924B1 (en) 2005-11-15 2009-05-26 Western Digital Technologies, Inc. Disk drive implementing data path protection by encoding large host blocks into sub blocks
US7280302B1 (en) 2005-11-16 2007-10-09 Western Digital Technologies, Inc. Disk drive using loopback to calibrate transmission amplitude
US7647544B1 (en) 2005-11-22 2010-01-12 Western Digital Technologies, Inc. Disk drive implementing data path protection without writing the error detection code data to the disk
US7619841B1 (en) 2005-11-23 2009-11-17 Western Digital Technologies, Inc. Disk drive subtracting low frequency disturbance from a servo burst signal
US8134798B1 (en) 2005-11-23 2012-03-13 Western Digital Technologies, Inc. Disk drive maintaining a substantially constant host transfer rate when reading data from varying data rate data tracks across multiple disk surfaces
US7369340B1 (en) 2005-12-21 2008-05-06 Western Digital Technologies, Inc. Disk drive detecting disk warping by detecting negative correlation between read signal amplitudes from top and bottom disk surfaces
JP4719047B2 (ja) 2006-03-24 2011-07-06 ヒタチグローバルストレージテクノロジーズネザーランドビーブイ 情報記録装置
US7486060B1 (en) 2006-03-30 2009-02-03 Western Digital Technologies, Inc. Switching voltage regulator comprising a cycle comparator for dynamic voltage scaling
US7443630B2 (en) 2006-04-07 2008-10-28 Hitachi Global Storage Technologies Netherlands B.V. Apparatus, system, and method for writing magnetically encoded data to discrete lands
US7551383B1 (en) 2006-06-28 2009-06-23 Western Digital Technologies, Inc. Adjusting voltage delivered to disk drive circuitry based on a selected zone
US7369343B1 (en) 2006-07-27 2008-05-06 Western Digital Technologies, Inc. Disk drive correcting track address during a write operation
US7730295B1 (en) 2006-09-05 2010-06-01 Western Digital Technologies, Inc. Updating firmware of a peripheral device
US7656763B1 (en) 2007-06-04 2010-02-02 Western Digital Technologies, Inc. Calibrating a defect scan parameter for a disk drive
US7804657B1 (en) 2007-06-11 2010-09-28 Western Digital Technologies, Inc. Setting an operating bias current for a magnetoresistive head using ratio of target voltage and measured voltage
US7599139B1 (en) 2007-06-22 2009-10-06 Western Digital Technologies, Inc. Disk drive having a high performance access mode and a lower performance archive mode
US7872822B1 (en) 2007-06-26 2011-01-18 Western Digital Technologies, Inc. Disk drive refreshing zones based on serpentine access of disk surfaces
US8174780B1 (en) 2007-06-27 2012-05-08 Western Digital Technologies, Inc. Disk drive biasing a refresh monitor with write parameter of a write operation
US7672072B1 (en) 2007-06-27 2010-03-02 Western Digital Technologies, Inc. Disk drive modifying an update function for a refresh monitor in response to a measured duration
US7649704B1 (en) 2007-06-27 2010-01-19 Western Digital Technologies, Inc. Disk drive deferring refresh based on environmental conditions
US7945727B2 (en) 2007-07-27 2011-05-17 Western Digital Technologies, Inc. Disk drive refreshing zones in segments to sustain target throughput of host commands
US7518819B1 (en) 2007-08-31 2009-04-14 Western Digital Technologies, Inc. Disk drive rewriting servo sectors by writing and servoing off of temporary servo data written in data sectors
US7471483B1 (en) 2007-09-19 2008-12-30 Western Digital Technologies, Inc. Disk drive compensating for rotational vibrations, physical shocks, and thermal popping
US20090113702A1 (en) 2007-11-01 2009-05-07 Western Digital Technologies, Inc. Disk drive comprising a double sided flex circuit wherein a first side lead provides an etching mask for a second side lead
US7903486B2 (en) * 2007-11-19 2011-03-08 Sandforce, Inc. System, method, and computer program product for increasing a lifetime of a plurality of blocks of memory
US7656603B1 (en) 2007-11-30 2010-02-02 Western Digital Technologies, Inc. Pre-programming of a preamplifier in a disk drive to improve servo-writing characteristics
US8164849B1 (en) 2007-12-10 2012-04-24 Western Digital Technologies, Inc. Information storage device with a conductive shield having free and forced heat convection configurations
US7688540B1 (en) 2007-12-17 2010-03-30 Western Digital Technologies, Inc. Disk drive selecting TPI profile by estimating head geometry
US7471486B1 (en) 2007-12-20 2008-12-30 Western Digital Technologies, Inc. Disk drive estimating seek time according to a seek profile and a variance group
US8085487B1 (en) 2007-12-20 2011-12-27 Western Digital Technologies, Inc. Blocking formats for a disk drive that reduce performance
US7724461B1 (en) 2007-12-21 2010-05-25 Western Digital Technologies, Inc. Determining head non-linearity in a disk drive
US7900037B1 (en) 2008-02-12 2011-03-01 Western Digital Technologies, Inc. Disk drive maintaining multiple logs to expedite boot operation for a host computer
US8082433B1 (en) 2008-02-12 2011-12-20 Western Digital Technologies, Inc. Disk drive employing boot disk space to expedite the boot operation for a host computer
US7934030B1 (en) 2008-02-14 2011-04-26 Western Digital Technologies, Inc. Disk drive comprising code segments for interfacing with a component such as a read channel
US8390952B1 (en) 2008-02-22 2013-03-05 Western Digital Technologies, Inc. Information storage device having a conductive shield with a peripheral capacitive flange
US8094401B1 (en) 2008-03-17 2012-01-10 Western Digital Technologies, Inc. Writing high frequency pattern over a DC background to detect skip track erasure for a disk drive
US7827320B1 (en) 2008-03-28 2010-11-02 Western Digital Technologies, Inc. Serial ATA device implementing intra-command processing by detecting XRDY primitive while in the XRDY state
US8201066B1 (en) 2008-03-28 2012-06-12 Western Digital Technologies, Inc. Disk drive comprising a trellis detector having a read signal whitener in the ACS circuit
US8004785B1 (en) 2008-05-09 2011-08-23 Western Digital Technologies, Inc. Disk drive write verifying unformatted data sectors
US7839588B1 (en) 2008-05-18 2010-11-23 Western Digital Technologies, Inc. Method of alternating track write for defect identification
US7859782B1 (en) 2008-05-18 2010-12-28 Western Digital Technologies, Inc. Selecting highest reliability sync mark in a sync mark window of a spiral servo track crossing
US8078943B1 (en) 2008-05-23 2011-12-13 Western Digital Technologies, Inc. Error correction code for correcting shift and additive errors
US7933087B1 (en) 2008-06-18 2011-04-26 Western Digital Technologies, Inc. Disk drive storing parameters of a write operation in a plurality of data sectors
US8159768B1 (en) 2008-06-25 2012-04-17 Western Digital Technologies, Inc. Detecting a servo address mark (SAM) in a servo field sync-up operation
US7898756B1 (en) 2008-07-23 2011-03-01 Western Digital Technologies, Inc. Disk drive adapting target values of a sequence detector relative to bit error rate of the sequence detector
US7944639B1 (en) 2008-07-23 2011-05-17 Western Digital Technologies, Inc. Disk drive adapting equalizer relative to bit error rate of sequence detector
US7760458B1 (en) 2008-08-12 2010-07-20 Western Digital Technologies, Inc. Disk drive adjusting head bias during servo synchronization to compensate for over/under sensitivity
US8190575B1 (en) 2008-08-27 2012-05-29 Western Digital Technologies, Inc. Disk drive maintaining multiple copies of code segments
US7907364B2 (en) 2008-08-29 2011-03-15 Western Digital Technologies, Inc. Disk drive including a delay circuit to provide a delayed reset signal
US8006027B1 (en) 2008-09-11 2011-08-23 Western Digital Technologies, Inc. Method of staging small writes on a large sector disk drive
US7940491B2 (en) 2008-09-15 2011-05-10 Western Digital Technologies, Inc. Information storage device having a disk drive and a bridge controller PCB within a monolithic conductive nest
US7984200B1 (en) 2008-09-23 2011-07-19 Western Digital Technologies, Inc. Configuring a data storage device with a configuration data record set in response to a configuration code
US7768776B1 (en) 2008-10-17 2010-08-03 Western Digital Technologies, Inc. Disk drive enclosure with a sliding door having tabs with adjacent through-slots
US8289656B1 (en) 2008-11-19 2012-10-16 Western Digital Technologies, Inc. Disk drive comprising stacked and stepped traces for improved transmission line performance
US7843660B1 (en) 2008-11-25 2010-11-30 Western Digital Technologies, Inc. Disk drive adjusting erasure window based on a number of non-read data sectors during a retry operation
US8285923B2 (en) 2008-12-08 2012-10-09 Western Digital Technologies, Inc. Disk drive and method using native command queuing tags to identify logical block size and implement protection information
US8116025B1 (en) 2008-12-18 2012-02-14 Western Digital Technologies, Inc. Disk drive executing retry operation after adjusting jog value in response to gain control
US7982993B1 (en) 2008-12-19 2011-07-19 Western Digital Technologies, Inc. Disk drive employing different servo TPI to data TPI ratios across the disk surface
US7933090B1 (en) 2009-01-14 2011-04-26 Western Digital Technologies, Inc. Disk drive establishing write current limits prior to optimizing the write current for a plurality of tracks
US7852596B2 (en) 2009-02-25 2010-12-14 Western Digital Technologies, Inc. Disk drive returning dummy data to a host when reading an unwritten data sector
US8040625B1 (en) 2009-03-06 2011-10-18 Western Digital Technologies, Inc. Condensing a defect scan log for a disk of a disk drive
US8413010B1 (en) 2009-03-12 2013-04-02 Western Digital Technologies, Inc. Data storage device employing high quality metrics when decoding logical block address appended to a data sector
US8375274B1 (en) 2009-03-23 2013-02-12 Western Digital Technologies, Inc. Disk drive recovering multiple codewords in data sectors using progressively higher order parity codewords
US7929234B1 (en) 2009-03-27 2011-04-19 Western Digital Technologies, Inc. Disk drive prioritizing in-the-field defect scanning based on number of write operations in each of a plurality of defect zones
US8116020B1 (en) 2009-04-21 2012-02-14 Western Digital Technologies, Inc. Disk drive mapping entries of a defect list into clusters
US8090902B1 (en) 2009-05-22 2012-01-03 Western Digital Technologies, Inc. Disk drive adjusting command execution in response to control circuitry die temperature
US8838995B2 (en) 2009-05-29 2014-09-16 Western Digital Technologies, Inc. Physically modifying a data storage device to disable access to secure data and repurpose the data storage device
US8090906B1 (en) 2009-06-10 2012-01-03 Western Digital Technologies, Inc. Dynamic processor bandwidth allocation in response to environmental conditions
US7974039B1 (en) 2009-06-17 2011-07-05 Western Digital Technology, Inc. Disk drive to reduce head instability
US8356184B1 (en) 2009-06-25 2013-01-15 Western Digital Technologies, Inc. Data storage device comprising a secure processor for maintaining plaintext access to an LBA table
US8035285B2 (en) * 2009-07-08 2011-10-11 General Electric Company Hybrid interference coatings, lamps, and methods
US8139301B1 (en) 2009-07-22 2012-03-20 Western Digital (Fremont), Llc Disk drive comprising a dual read element and delay circuitry to improve read signal
US8370683B1 (en) 2009-07-31 2013-02-05 Western Digital Technologies, Inc. System and method to reduce write splice failures
US7974029B2 (en) 2009-07-31 2011-07-05 Western Digital Technologies, Inc. Disk drive biasing refresh zone counters based on write commands
US8448009B2 (en) * 2009-08-17 2013-05-21 Sandisk Il Ltd. Method and memory device for generating a time estimate
US8462466B2 (en) 2009-08-31 2013-06-11 Western Digital Technologies, Inc. Disk drive comprising impedance discontinuity compensation for interconnect transmission lines
US8014094B1 (en) 2009-08-31 2011-09-06 Western Digital Technologies, Inc. Disk drive expediting defect scan when quality metric exceeds a more stringent threshold
US8149528B1 (en) 2009-09-02 2012-04-03 Western Digital Technologies, Inc. Disk drive connecting defect shapes to preempt data loss
US8631188B1 (en) 2009-09-02 2014-01-14 Western Digital Technologies, Inc. Data storage device overlapping host data transfer for a write command with inter-command delay
US8478725B2 (en) * 2009-09-14 2013-07-02 Vmware, Inc. Method and system for performing live migration of persistent data of a virtual machine
US7898762B1 (en) 2009-10-21 2011-03-01 Western Digital Technologies, Inc. Disk drive excluding servo sub-bursts when computing position error signal
US8281218B1 (en) 2009-11-02 2012-10-02 Western Digital Technologies, Inc. Data manipulation engine
US7990648B1 (en) 2009-12-09 2011-08-02 Western Digital Technologies, Inc. Disk drive margining read channel using predictable disturbance samples generated as a function of a written pattern
US8489841B1 (en) 2009-12-10 2013-07-16 Western Digital Technologies, Inc. Manufacturing station dynamically configuring a data storage device with a validated configuration data record
US8375225B1 (en) 2009-12-11 2013-02-12 Western Digital Technologies, Inc. Memory protection
US8589773B1 (en) 2009-12-18 2013-11-19 Western Digital Technologies, Inc. Disk drive margining read channel by biasing log-likelihood ratios of an iterative decoder
US8626463B2 (en) 2009-12-23 2014-01-07 Western Digital Technologies, Inc. Data storage device tester
US8332695B2 (en) 2009-12-23 2012-12-11 Western Digital Technologies, Inc. Data storage device tester
US8458526B2 (en) 2009-12-23 2013-06-04 Western Digital Technologies, Inc. Data storage device tester
US8139310B1 (en) 2010-01-06 2012-03-20 Western Digital Technologies, Inc. Fly height sensor control circuit
US8578242B1 (en) 2010-01-29 2013-11-05 Western Digital Technologies, Inc. Data storage device employing seed array for data path protection
US8094396B1 (en) 2010-02-11 2012-01-10 Western Digital Technologies, Inc. Media defect scan
US8315006B1 (en) 2010-03-09 2012-11-20 Western Digital Technologies, Inc. Adaptive data writing mode based on drive environment
US8438361B2 (en) * 2010-03-10 2013-05-07 Seagate Technology Llc Logical block storage in a storage device
US8458417B2 (en) 2010-03-10 2013-06-04 Seagate Technology Llc Garbage collection in a storage device
US8194340B1 (en) 2010-03-18 2012-06-05 Western Digital Technologies, Inc. Disk drive framing write data with in-line mapping data during write operations
US8693133B1 (en) 2010-03-22 2014-04-08 Western Digital Technologies, Inc. Systems and methods for improving sequential data rate performance using sorted data zones for butterfly format
US8687306B1 (en) 2010-03-22 2014-04-01 Western Digital Technologies, Inc. Systems and methods for improving sequential data rate performance using sorted data zones
US8699185B1 (en) 2012-12-10 2014-04-15 Western Digital Technologies, Inc. Disk drive defining guard bands to support zone sequentiality when butterfly writing shingled data tracks
US8341337B1 (en) 2010-03-31 2012-12-25 Western Digital Technologies, Inc. Data storage device booting from system data loaded by host
US8407393B1 (en) 2010-03-31 2013-03-26 Western Digital Technologies, Inc. Modifying a disk drive while preserving calibrated parameters stored in a non-volatile semiconductor memory
US8194338B1 (en) 2010-03-31 2012-06-05 Western Digital Technologies, Inc. Parallel media defect scan in sector read
US8593753B1 (en) 2010-04-22 2013-11-26 Western Digital Technologies, Inc. Touchdown detection
US9183134B2 (en) * 2010-04-22 2015-11-10 Seagate Technology Llc Data segregation in a storage device
US8144419B1 (en) 2010-04-23 2012-03-27 Western Digital Technologies, Inc. Disk drive detecting head touchdown from microactuator signal
US8305705B1 (en) 2010-05-05 2012-11-06 Western Digital Technologies, Inc. Disk drive cross correlating track crossing signal with ideal signal to calibrate jog value
US8320067B1 (en) 2010-05-18 2012-11-27 Western Digital Technologies, Inc. Refresh operations using write/read commands
US8467151B1 (en) 2010-05-21 2013-06-18 Western Digital Technologies, Inc. Disk drive comprising an interconnect with transmission lines forming an approximated lattice network
US8392689B1 (en) 2010-05-24 2013-03-05 Western Digital Technologies, Inc. Address optimized buffer transfer requests
US8390948B2 (en) 2010-05-26 2013-03-05 Western Digital Technologies, Inc. Disk drive employing a preamp comprising read/write pass throughs for cascading integrated circuits
US8161328B1 (en) 2010-05-27 2012-04-17 Western Digital Technologies, Inc. Debugger interface
US8089719B1 (en) 2010-06-01 2012-01-03 Western Digital Technologies, Inc. Finding touchdown frequency for a head in a disk drive
US8799747B2 (en) * 2010-06-03 2014-08-05 Seagate Technology Llc Data hardening to compensate for loss of data retention characteristics in a non-volatile memory
US8554741B1 (en) 2010-06-16 2013-10-08 Western Digital Technologies, Inc. Timeline application for log structured storage devices
US8134793B1 (en) 2010-06-17 2012-03-13 Western Digital Technologies, Inc. Methods and systems for fast release of data from a host by a disk drive
US8380922B1 (en) 2010-06-25 2013-02-19 Western Digital Technologies, Inc. Data storage device comprising host interface state machine blocking on target logical block address
US8621133B1 (en) 2010-06-29 2013-12-31 Western Digital Technologies, Inc. Reading multiple metadata files across multiple tracks
US8433937B1 (en) 2010-06-30 2013-04-30 Western Digital Technologies, Inc. Automated transitions power modes while continuously powering a power controller and powering down a media controller for at least one of the power modes
US20120023144A1 (en) * 2010-07-21 2012-01-26 Seagate Technology Llc Managing Wear in Flash Memory
US8773802B1 (en) 2010-08-24 2014-07-08 Western Digital Technologies, Inc. Disk drive resetting fly height reference generated from a degrading calibration track
US8576511B1 (en) 2010-08-25 2013-11-05 Western Digital Technologies, Inc. Disk drive executing log structured writes to physical zones based on power mode
US8667248B1 (en) 2010-08-31 2014-03-04 Western Digital Technologies, Inc. Data storage device using metadata and mapping table to identify valid user data on non-volatile media
US8683295B1 (en) 2010-08-31 2014-03-25 Western Digital Technologies, Inc. Hybrid drive writing extended error correction code symbols to disk for data sectors stored in non-volatile semiconductor memory
US8630052B1 (en) 2010-09-09 2014-01-14 Western Digital Technologies, Inc. Disk drive calibrating radial density then adjusting linear density to balance off-track read capability
US8635412B1 (en) 2010-09-09 2014-01-21 Western Digital Technologies, Inc. Inter-processor communication
US8782334B1 (en) 2010-09-10 2014-07-15 Western Digital Technologies, Inc. Hybrid drive copying disk cache to non-volatile semiconductor memory
US8498074B1 (en) 2010-09-23 2013-07-30 Western Digital Technologies, Inc. Disk drive choosing command from command queue based on a window defined by a probability of a seek miss
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
US8825977B1 (en) 2010-09-28 2014-09-02 Western Digital Technologies, Inc. Hybrid drive writing copy of data to disk when non-volatile semiconductor memory nears end of life
US8670205B1 (en) 2010-09-29 2014-03-11 Western Digital Technologies, Inc. Hybrid drive changing power mode of disk channel when frequency of write data exceeds a threshold
US8310775B1 (en) 2010-09-30 2012-11-13 Western Digital Technologies, Inc. Disk drive implementing a read channel optimization process
US8699171B1 (en) 2010-09-30 2014-04-15 Western Digital Technologies, Inc. Disk drive selecting head for write operation based on environmental condition
US8756361B1 (en) 2010-10-01 2014-06-17 Western Digital Technologies, Inc. Disk drive modifying metadata cached in a circular buffer when a write operation is aborted
US8271692B1 (en) 2010-10-01 2012-09-18 Western Digital Technologies, Inc. Throttled command completion time
US8422172B1 (en) 2010-10-01 2013-04-16 Western Digital Technologies, Inc. Actuator trace through a die
US8427771B1 (en) 2010-10-21 2013-04-23 Western Digital Technologies, Inc. Hybrid drive storing copy of data in non-volatile semiconductor memory for suspect disk data sectors
US8612798B1 (en) 2010-10-21 2013-12-17 Western Digital Technologies, Inc. Hybrid drive storing write data in non-volatile semiconductor memory if write verify of disk fails
US8429343B1 (en) 2010-10-21 2013-04-23 Western Digital Technologies, Inc. Hybrid drive employing non-volatile semiconductor memory to facilitate refreshing disk
US9569351B2 (en) * 2010-10-25 2017-02-14 Seagate Technology Llc Storing corresponding data units in a common storage unit
US8560759B1 (en) 2010-10-25 2013-10-15 Western Digital Technologies, Inc. Hybrid drive storing redundant copies of data on disk and in non-volatile semiconductor memory based on read frequency
US8661193B1 (en) 2010-10-29 2014-02-25 Western Digital Technologies, Inc. Disk drive with partial sector management
US8578100B1 (en) 2010-11-08 2013-11-05 Western Digital Technologies, Inc. Disk drive flushing write data in response to computed flush time
US8499198B1 (en) 2010-12-14 2013-07-30 Western Digital Technologies, Inc. Testing data storage devices running different versions of an operating system
US8324974B1 (en) 2010-12-17 2012-12-04 Western Digital Technologies, Inc. Regulating power consumption of digital circuitry using a multi-layer ring oscillator
US8743502B1 (en) 2010-12-17 2014-06-03 Western Digital Technologies, Inc. Disk drive spinning down disk to a spin rate based on spin-up parameter
US20120159042A1 (en) 2010-12-21 2012-06-21 Western Digital Technologies, Inc. Data storage device executing a unitary command comprising two cipher keys to access a sector spanning two encryption zones
US8611032B2 (en) 2010-12-23 2013-12-17 Western Digital Technologies, Inc. Directional write retry for shingled disk drive application
US8619383B1 (en) 2010-12-24 2013-12-31 Western Digital Technologies, Inc. Disk drive with dynamic head fly height back-off
US8350628B1 (en) 2011-02-15 2013-01-08 Western Digital Technologies, Inc. Gate speed regulator dithering ring oscillator to match critical path circuit
US8421663B1 (en) 2011-02-15 2013-04-16 Western Digital Technologies, Inc. Analog-to-digital converter comprising dual oscillators for linearity compensation
US8699172B1 (en) 2011-02-16 2014-04-15 Western Digital Technologies, Inc. Disk drive generating off-track read capability for a plurality of track segments
US8512049B1 (en) 2011-03-25 2013-08-20 Western Digital Technologies, Inc. Solderless compression connector comprising constant width conducting elements housed substantially within a dielectric when installed
US8601248B2 (en) 2011-03-28 2013-12-03 Western Digital Technologies, Inc. Disk drive booting from volatile semiconductor memory when exiting power save mode
US8755143B2 (en) 2011-04-27 2014-06-17 Western Digital Technologies, Inc. Disk drive adjusting rotational position optimization (RPO) algorithm to compensate for repeatable runout (RRO)
US8599510B1 (en) 2011-05-04 2013-12-03 Western Digital Technologies, Inc. Disk drive adjusting data track density based on write condition when writing to contiguous data tracks
US9176864B2 (en) * 2011-05-17 2015-11-03 SanDisk Technologies, Inc. Non-volatile memory and method having block management with hot/cold data sorting
US8683457B1 (en) 2011-06-17 2014-03-25 Western Digital Technologies, Inc. Updating firmware of an electronic device by storing a version identifier in a separate header
US9047907B2 (en) 2011-06-23 2015-06-02 Western Digital Technologies, Inc. Electronic device avoiding false detection of free fall event based on detected operating modes
US8700850B1 (en) 2011-06-24 2014-04-15 Western Digital Technologies, Inc. Data storage device evaluating a SATA connector to detect a non-SATA host
US8756382B1 (en) 2011-06-30 2014-06-17 Western Digital Technologies, Inc. Method for file based shingled data storage utilizing multiple media types
US8527544B1 (en) 2011-08-11 2013-09-03 Pure Storage Inc. Garbage collection in a storage system
US8630056B1 (en) 2011-09-12 2014-01-14 Western Digital Technologies, Inc. Hybrid drive adjusting spin-up profile based on cache status of non-volatile semiconductor memory
US8595432B1 (en) 2011-09-20 2013-11-26 Western Digital Technologies, Inc. Scheduling commands in a dependent array of disk drives
KR20130032155A (ko) * 2011-09-22 2013-04-01 삼성전자주식회사 데이터 저장 장치 및 그것의 데이터 관리 방법
US8640007B1 (en) 2011-09-29 2014-01-28 Western Digital Technologies, Inc. Method and apparatus for transmitting diagnostic data for a storage device
US8654619B1 (en) 2011-09-29 2014-02-18 Western Digital Technologies, Inc. Method and apparatus for operating a disk drive
KR101867282B1 (ko) * 2011-11-07 2018-06-18 삼성전자주식회사 비휘발성 메모리 장치의 가비지 컬렉션 방법
US8634158B1 (en) 2011-11-16 2014-01-21 Western Digital Technologies, Inc. Disk drive generating feed-forward actuator compensation based on a speaker driver signal
US8819375B1 (en) 2011-11-30 2014-08-26 Western Digital Technologies, Inc. Method for selective defragmentation in a data storage device
US8612706B1 (en) 2011-12-21 2013-12-17 Western Digital Technologies, Inc. Metadata recovery in a disk drive
US8751699B1 (en) 2011-12-22 2014-06-10 Western Digital Technologies, Inc. Systems and methods for indication of activity status of a storage device
KR101861545B1 (ko) * 2012-01-02 2018-05-29 삼성전자주식회사 저장 장치의 데이터 관리 방법
US8793532B1 (en) 2012-01-25 2014-07-29 Western Digital Technologies, Inc. Hard-disk drive work load profiling and capturing systems and methods
US8531791B1 (en) 2012-02-01 2013-09-10 Western Digital Technologies, Inc. Methods for adaptive throttling of data refresh operations and disk drives implementing the same
US8612650B1 (en) 2012-03-13 2013-12-17 Western Digital Technologies, Inc. Virtual extension of buffer to reduce buffer overflow during tracing
US8755141B1 (en) 2012-05-07 2014-06-17 Western Digital Technologies, Inc. Hard disk drive assembly including a NVSM located within a preamplifier to store configuration data for controlling disk drive operations
US8749910B1 (en) 2012-05-07 2014-06-10 Western Digital Technologies, Inc. Hard disk drive assembly including a NVSM to store configuration data for controlling disk drive operations
US8699159B1 (en) 2012-06-18 2014-04-15 Western Digital Technologies, Inc. Reducing effects of wide area track erasure in a disk drive
US8565053B1 (en) 2012-06-19 2013-10-22 Western Digital Technologies, Inc. Methods and devices for preventing media errors due to media scratches
US8694841B1 (en) 2012-06-20 2014-04-08 Western Digital Technologies, Inc. Methods and devices for preventing potential media errors from growing thermal asperities
SG196732A1 (en) * 2012-07-16 2014-02-13 Agency Science Tech & Res Data storage system, method of writing to storage in the data storage system, hard disk and method of forming the hard disk
US8699175B1 (en) 2012-07-20 2014-04-15 Western Digital Technologies, Inc. Disk drive mapping low frequency write addresses to circular buffer write zone
US8780478B1 (en) 2012-09-26 2014-07-15 Western Digital Technologies, Inc. Grease wear leveling for a disk drive
US9720627B2 (en) 2013-01-17 2017-08-01 Western Digital Technologies, Inc. Data management for a data storage device
US9569352B2 (en) * 2013-03-14 2017-02-14 Sandisk Technologies Llc Storage module and method for regulating garbage collection operations based on write activity of a host
US9940019B2 (en) * 2013-06-12 2018-04-10 International Business Machines Corporation Online migration of a logical volume between storage systems
US9477407B1 (en) * 2013-06-28 2016-10-25 EMC IP Holding Company LLC Intelligent migration of a virtual storage unit to another data storage system
US9842032B2 (en) * 2013-08-27 2017-12-12 Red Hat, Inc. Memory first live snapshot
US8797669B1 (en) 2013-08-30 2014-08-05 Western Digital Technologies, Inc. Disk drive executing rotational position optimization (RPO) algorithm to facilitate a read-modify-write operation
US9229858B2 (en) * 2013-10-08 2016-01-05 Red Hat, Inc. Concurrent garbage collector thread
KR20150121562A (ko) * 2014-04-21 2015-10-29 삼성전자주식회사 비휘발성 메모리 시스템 및 비휘발성 메모리 시스템의 동작방법
US9626210B2 (en) * 2014-09-11 2017-04-18 Amazon Technologies, Inc. Resource credit pools for replenishing instance resource credit balances of virtual compute instances

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1509435A (zh) * 2001-06-19 2004-06-30 ض� 一种使用非暂态流存储来改进垃圾收集算法的方法
CN102317923A (zh) * 2009-02-25 2012-01-11 日本电气株式会社 存储系统
CN102243613A (zh) * 2010-05-12 2011-11-16 西部数据技术公司 管理固态存储器中垃圾收集的系统和方法
US8521972B1 (en) * 2010-06-30 2013-08-27 Western Digital Technologies, Inc. System and method for optimizing garbage collection in data storage
CN103384877A (zh) * 2011-06-07 2013-11-06 株式会社日立制作所 包括闪存的存储系统和存储控制方法
CN102999132A (zh) * 2011-09-09 2013-03-27 国际商业机器公司 管理计算系统的存储模块间的热分布的方法和系统
CN103377285A (zh) * 2012-04-25 2013-10-30 国际商业机器公司 用于增强对存储云去重技术的可靠性的方法与系统

Also Published As

Publication number Publication date
EP3100165A4 (en) 2017-08-30
US20170068485A1 (en) 2017-03-09
CA2937877A1 (en) 2015-07-30
CN105934749A (zh) 2016-09-07
US9501393B2 (en) 2016-11-22
EP3100165A1 (en) 2016-12-07
AU2015209199A1 (en) 2016-08-04
EP3100165B1 (en) 2021-06-30
US10282130B2 (en) 2019-05-07
WO2015112864A1 (en) 2015-07-30
US20150212938A1 (en) 2015-07-30

Similar Documents

Publication Publication Date Title
CN105934749B (zh) 用于数据存储系统的垃圾收集和数据重定位
US9263088B2 (en) Data management for a data storage device using a last resort zone
US9720627B2 (en) Data management for a data storage device
US9129628B1 (en) Data management for data storage device with different track density regions
US8959281B1 (en) Data management for a storage device
US9923562B1 (en) Data storage device state detection on power loss
US9448919B1 (en) Data storage device accessing garbage collected memory segments
CN102576293B (zh) 固态存储设备和分层存储系统中的数据管理
JP5941489B2 (ja) 動的粒状体に基づく中間記憶領域を利用する方法、データ記憶システムおよび記憶媒体
US9367451B2 (en) Storage device management device and method for managing storage device
US10394493B2 (en) Managing shingled magnetic recording (SMR) zones in a hybrid storage device
CN105280197A (zh) 使用区段重定位对数据存储装置进行数据管理
US10140067B1 (en) Data management for data storage device with multiple types of non-volatile memory media
US20100250826A1 (en) Memory systems with a plurality of structures and methods for operating the same
JP6161721B2 (ja) ホストからストレージ装置への削除されたデータの示唆
US8953269B1 (en) Management of data objects in a data object zone
CN106557428B (zh) 数据存储设备的映射系统选择
CN114730290A (zh) 将变化日志表移动至与分区对准
US20160299698A1 (en) Realm partitioning in hard drives
US10268386B2 (en) Data storage device including temporary storage locations
US10459658B2 (en) Hybrid data storage device with embedded command queuing
US9785563B1 (en) Read command processing for data storage system based on previous writes
CN114730291A (zh) 具有分区的ssd的数据停放
US9875055B1 (en) Check-pointing of metadata
US11657847B1 (en) Dynamic track interference write counting for magnetic disks

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant