混合表面格式硬盘驱动器的制作方法

文档序号:11161300阅读:548来源:国知局
混合表面格式硬盘驱动器的制造方法与工艺

本发明涉及一种磁记录硬盘驱动器(HDD)。更具体地,本发明涉及一种包括叠瓦式磁记录(shingled magnetic recording,SMR)表面和随机块覆写(random block overwrite,RBO)表面的混合表面格式HDD。



背景技术:

主要针对SMR格式化的HDD采用SMR格式的写磁头,所述写磁头通过制造部分重叠的多个连续的圆形路径来写入磁转变。相邻磁道的区域被写入从而与一个或多个先前写入的磁道重叠。叠瓦磁道必须按顺序写入。相邻路径的非重叠部分形成比写磁头的宽度窄的叠瓦数据磁道。较窄的叠瓦数据磁道允许增加的数据密度。一旦在叠瓦结构中写入,单个磁道不能被在原位更新,原因是这将覆写和破坏重叠磁道中的数据。相比之下,针对RBO格式化的磁盘驱动器允许随机块覆写而不会干扰现有数据。

叠瓦写入数据磁道提供高磁道密度。然而,叠瓦写入数据磁道不允许随机块覆写。为了覆写叠瓦数据磁道中的数据块,在进行写入时必须擦除磁盘的大部分。



技术实现要素:

本发明提供一种使用用RBO和SMR格式的写磁头格式化的混合HDD的方法、计算机程序产品和系统。

提供一种用不同写磁头配置混合HDD的方法、计算机程序产品和系统,每个写磁头相对于混合HDD的多个表面格式格式化数据。HDD带有将数据写入到HDD的RBO格式化表面的至少一个RBO格式的写磁头,和将数据写入到HDD的SMR格式化表面的至少一个SMR格式的写磁头。随机写入性能用RBO格式化表面扩充并且存储密度用SMR格式化表面扩充,两者都存在于单个HDD中。

本发明的其它特征和优点将从结合附图进行的本发明的当前优选的(一个或多个)实施例的以下详细描述变得明显。

附图说明

这里引用的附图形成说明书的一部分。附图中所示的特征仅意在说明本发明的一些实施例,而不是本发明的所有实施例,除非另外明确指出。

图1描绘示出具有多个数据表面的硬盘驱动器的框图。

图2描绘示出混合硬盘驱动器(HDD)的框图。

图3描绘示出混合HDD的功能(具体地是混合HDD的一般写入操作)的流程图。

图4描绘示出用于确定存储写入数据的RBO位置的过程的流程图。

图5描绘示出用于在RBO指定区域中创建空闲空间的过程的流程图。

图6描绘示出与HDD通信的主机系统的框图。

图7描绘显示用于实现本发明的实施例的系统的框图。

具体实施方式

将容易地理解,如在本文的附图中一般地描述和示出的本发明的部件可以以各种各样的不同配置来布置和设计。因此,如图所示,本发明的装置、系统和方法的实施例的以下详细描述并不旨在限制所要求保护的本发明的范围,而是仅代表本发明的选择实施例。

贯穿本说明书对“选择实施例”、“一个实施例”或“实施例”的引用意味着结合实施例描述的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,贯穿本说明书的各处出现的短语“选择实施例”、“在一个实施例中”或“在实施例中”不一定指的是相同的实施例。

通过参考附图将最好地理解本发明的所示实施例,其中相似的部件始终由相似的附图标记表示。以下描述仅旨在作为例子,并且简单地示出与如本文所要求保护的本发明一致的设备、系统和过程的某些选定实施例。

参考图1,提供示出具有多个数据表面的HDD的框图(100)。在这里显示六个数据表面(110),(120),(130),(140),(150)和(160)。每个表面具有关联的写磁头。也就是说,表面(110)具有写磁头(112),表面(120)具有写磁头(122),表面(130)具有写磁头(132),表面(140)具有写磁头(142),表面(150)具有写磁头(152),并且表面(160)具有写磁头(162)。在这里所示的例子中,写磁头中的两个被格式化为RBO磁头,并且写磁头中的四个被格式化为SMR磁头。在一个实施例中,RBO表面被限制到整数个磁头。如该例子中所示,RBO磁头标识为(112)和(122),并且SMR磁头标识为(132),(142),(152)和(162)。RBO磁头(112)和(122)分别服务RBO表面(110)和(120),并且SMR磁头(132),(142),(152)和(162)分别服务(130),(140),(150)和(160)。

如图1中所示,混合HDD带有将数据写入到RBO格式化表面(在下文中称为RBO表面)的至少一个RBO磁头以及将数据写入到SMR格式化表面(在下文中称为SMR表面)的至少一个SMR磁头。参考图2,提供显示HDD的框图(200)。如图所示,HDD(210)配置有多个读/写磁头(212),(214),(216)和(218)。读/写磁头中的至少一个将数据写入到RBO格式化表面(230),并且读/写磁头中的至少一个将数据写入到SMR格式表面(240)。具体地,HDD包括至少一个RBO格式化表面(230)和至少一个SMR格式化表面(240)。RBO格式化表面(230)是具有非重叠数据磁道(232),(234),(236)和(238)的常规表面。相反地,SMR格式化表面(240)包括多个重叠磁道。SMR格式化磁道至少部分重叠以增加面密度。

如上所述,存储在SMR数据磁道中的数据在称为擦除单元的单元中被组织。每个擦除单元显示为具有多个磁道,但是这里所示的量不应当被认为是限制性的。例如,擦除单元(290)显示具有磁道(242),(244),(246)和(248),并且擦除单元(292)显示为具有磁道(252),(254),(256)和(258)。与SMR擦除单元有关的数据存储在RBO表面(230)中。在一个实施例中,在一个或多个RBO格式化表面中提供与SMR擦除单元的位置有关的SMR元数据(260)。例如,在一个实施例中,元数据(260)包括位于非重叠磁道(232)-(238)中的一个中的索引(262)。索引包括关于一个或多个SMR擦除单元(包括至少一个部分空闲擦除单元)的位置的信息。在一个实施例中,元数据(260)包括两个或更多个SMR擦除单元的布局和排序。在一个实施例中,擦除单元可以重建到SMR表面(240)的不同部分。所以,在RBO表面(230)中提供索引(262)使得关于擦除单元的信息是可更新的并且每条数据是可访问的。因此,SMR表面(240)中的数据被组织成擦除单元、元数据,并且这些单元的索引存储在RBO格式化表面(230)中。

如本文中所示,SMR格式化表面(240)和RBO格式化表面(230)显示为具有多个数据磁道。尽管仅仅显示在两个擦除单元(290)和(292)中的四个RBO数据磁道和八个SMR数据磁道,但是该量不应当被认为是限制性的。在一个实施例中,可以提供更大量的磁道和/或SMR和RBO数据磁道的数量可以相等。因此,HDD在单个存储设备中包括用于RBO和SMR格式化数据两者的独立数据磁道,具有将数据写入到RBO格式化磁道的至少一个RBO格式的磁头,和将数据写入到SMR格式化磁道的至少一个SMR格式的磁头。

在一方面,混合硬盘驱动器的SMR和RBO区域以分层关系起作用。参考图3,提供示出包括至少一个RBO写磁头和至少一个SMR写磁头的混合HDD的功能(具体地是用于混合HDD的一般写入操作)的流程图(300)。接收不在队列中的写入数据和关联的逻辑块地址(302)。写入数据的最终表面目的地是HDD的SMR表面,原因是该区域具有最大存储密度。在步骤(302)接收数据之后,确定接收的数据是否可以附加到SMR表面区域中的擦除单元(304)。在一个实施例中,存在与逻辑块地址关联的一个擦除单元,并且写入数据可以附加到关联的擦除单元或存储在硬盘驱动器的RBO表面区域中。在一个实施例中,RBO和SMR表面上的数据存储以数据块为单元,并且在一个实施例中,RBO格式化表面中的数据块可以具有不同于SMR格式化表面中的数据块的长度或大小。因此,SMR表面上的数据的存储以将存储数据组织成擦除单元为代价提供增加的数据存储密度。

返回图3和混合HDD的功能,对步骤(304)的确定的否定响应之后是确定存储数据的HDD的RBO区域中的位置(306)。相反地,对步骤(304)的确定的肯定响应之后是将数据排队以便附加到HDD的SMR区域中的擦除单元(308)。在一个实施例中,HDD的RBO表面用作存储层以便在将数据提交到SMR区域之前暂存待写入到SMR区域的数据。在步骤(306)或(308)之后,处理写入操作(310)。因此,对于每个写入操作,目标是将数据附加到与逻辑块地址关联的擦除单元,并且在一个实施例中,使用RBO区域将数据排队以便最终传送到SMR格式化区域。

如图3中所示,混合HDD中的焦点是将数据存储在SMR指定区域中。然而,在各种情况下,数据可以存储在HDD的RBO指定区域中。图4是示出用于确定存储写入数据的RBO位置的过程的流程图(400)。如图所示,接收数据和关联的逻辑块地址(402)。当处理这些数据时,专门针对这些数据使用和更新RBO索引和表(404)。然后,确定用于接收的逻辑块地址的关联数据块是否已经存储在RBO指定区域中(4046)。在一个实施例中,在步骤(406)执行确定以确保关联的逻辑块地址中的数据已经存在于RBO指定区域中。对步骤(406)的确定的肯定响应之后是将数据和关联的逻辑块地址放置在用于覆写HDD的RBO指定区域中的现有数据的队列中(408),接着放弃对RBO指定区域的独占访问(410)。

如果在步骤(406)确定数据尚未存在于HDD的RBO指定区域中,则确定在RBO区域中是否有空闲空间(412)。对步骤(412)的确定的肯定响应之后是在RBO区域中为数据和逻辑块地址保留空间(414),接着返回到步骤(408)。然而,对步骤(412)的确定的否定响应之后是触发用于在RBO指定区域(416)中创建空闲空间的过程,接着返回到步骤(410)。描述在RBO指定区域中创建空闲空间的过程的细节在图5中显示和描述。因此,图4中所示的过程展示将数据存储在HDD的RBO指定区域中。

参考图5,提供示出用于在HDD的RBO指定区域中创建空闲空间的过程(在本文中也称为垃圾收集)的流程图(500)。最初,确保对RBO指定区域的独占访问(502),并且收集数据和统计(504)。在一个实施例中,在步骤(504)确定的数据专用于RBO指定区域,并且在一个实施例中,包括用于SMR指定区域的数据。在步骤(504)之后确定重建过程是否在进行(506)。在一个实施例中,重建过程包括将数据块覆写到一个或多个擦除单元。对步骤(506)的确定的否定响应之后是确定重建的擦除单元(508)。在步骤(508)或对步骤(506)的确定的肯定响应之后,使用来自HDD的RBO和SMR区域的数据来进行被选择擦除单元的一部分的重建(510)。来自已重建的RBO区域的数据标记为可以被覆写的数据,即创建空闲空间(512)。更具体地,在步骤(512)重建数据是已拷贝到一个或多个擦除单元的数据,并且因此RBO区域中的数据的第二拷贝是不必要的。存储复制数据的RBO区域可以用不同的数据覆写。因此,通过将数据从RBO区域移动到一个或多个擦除单元,在RBO区域中以可覆写数据的形式重建空闲空间。

在一个实施例中,如果擦除单元将在相同的地方重建,则可以采用用于在前面的至少一个磁道保存数据的系统。在步骤(512)之后,可以触发一般写入操作(514),如图3中所示和所述。在垃圾收集操作完成之后,放弃对在步骤(502)获取的RBO区域的独占访问(516)。因此,本文中所示的过程通过用来自RBO区域的数据重建一个或多个擦除单元,并且然后使存储在RBO区域中的复制数据能够被覆写以接受新的数据块,从而在RBO区域中创建新的空间。

图3-5中所示的过程示出在HDD的RBO和SMR格式化表面上存储数据的方面。数据存储位置(特别地是HDD内的表面)可以取决于数据内部固有的特性,可以取决于与写入请求关联的特性,并且在一个实施例中,可以在写入请求中指定。例如,在一个实施例中,与写入请求关联的主机系统可以指定HDD内的数据存储位置,包括在RBO或SMR格式化表面中的数据的指定存储。

参考图6,提供显示与HDD(630)通信的主机系统(610)的框图(600)。更具体地,主机系统(610)带有通过总线(616)与存储器(614)通信的处理单元(612)。HDD(630)可以在系统本地,或如本文中所示,通过网络连接(605)与系统(610)通信被提供。HDD(630)包括多个写磁头,其包括用于将数据写入到RBO格式化表面的至少一个RBO格式的写磁头以及用于将数据写入到SMR格式化表面的至少一个SMR格式的写磁头。写磁头和数据表面的细节在图1和图2中被描述。在一个实施例中,可以提供与处理单元(612)通信的写入管理器(640)以便于响应于HDD(630)的写磁头和关联表面来处理一个或多个写入请求。具体地,管理器(640)可以在将数据提交到SMR表面之前将RBO表面用作用于将数据写入到SMR区域的暂存区域。在一个实施例中,管理器(640)可以将数据写入到RBO表面中的一个,在SMR表面中定位空闲擦除单元,并且将RBO格式化数据拷贝到空闲擦除单元。在一个实施例中,管理器(640)可以通过将数据附加到部分空闲的SMR擦除单元来促进压缩。如图所示,如图2中所示,元数据和与擦除单元相关的索引保持在(一个或多个)RBO表面中。在一个实施例中,管理器(640)扩充元数据和索引以有效地采用和定位SMR擦除单元。因此,管理器(640)支持HDD的功能以有效地使用HDD。

管理器(640)和支持HDD的功能的任何其它工具可以在诸如现场可编程门阵列,可编程阵列逻辑,可编程逻辑器件等的可编程硬件设备中实现。工具也可以在用于由各种类型的处理器执行的软件中实现。可执行代码的被识别功能单元可以例如包括可以例如被组织为对象、过程、函数或其他构造的计算机指令的一个或多个物理或逻辑块。然而,工具的可执行代码不需要物理地位于一起,而是可以包括存储在不同位置的不同指令,当逻辑地连接在一起时,其包括工具并实现工具的所述目的。

实际上,可执行代码可以是单个指令或许多指令,并且甚至可以分布在若干不同的代码段上,不同的应用之间,并且跨越若干存储器设备。类似地,操作数据可以在这里在工具内被识别和示出,并且可以以任何合适的形式体现并且在任何合适类型的数据结构内组织。操作数据可以作为单个数据集被收集,或者可以分布在包括在不同存储设备的不同的位置上,并且可以至少部分地作为电子信号存在于系统或网络上。

此外,所述的特征、结构或特性可以以任何合适的方式组合在一个或多个实施例中。在下面的描述中,提供许多具体细节(例如代理的例子)以提供对本发明的实施例的透彻理解。然而,相关领域的技术人员将认识到,可以在没有一个或多个具体细节的情况下或者利用其他方法、部件、材料等来实施本发明。在其他情况下,公知的结构、材料或操作未详细显示或描述以避免模糊本发明的方面。

现在参考图7的框图,现在关于实现本发明的实施例描述附加细节。计算机系统包括一个或多个处理器,例如处理器(702)。处理器(702)连接到通信基础设施(704)(例如,通信总线、交叉杆或网络)。

计算机系统可以包括从通信基础设施(704)(或从未显示的帧缓冲器)转发图形、文本和其他数据以便在显示单元(708)上显示的显示接口(706)。计算机系统也包括主存储器(710),优选地随机存取存储器(RAM),并且也可以包括辅助存储器(712)。辅助存储器(712)可以例如包括表示例如软盘驱动器、磁带驱动器或光盘驱动器的硬盘驱动器(714)和/或可移动存储驱动器(716)。可移动存储驱动器(716)以本领域普通技术人员公知的方式从可移动存储单元(718)读取和/或写入。可移动存储单元(718)例如表示由可移动存储驱动器(716)读取和写入的软盘、紧凑盘、磁带或光盘等。

在替代实施例中,辅助存储器(712)可以包括用于允许将计算机程序或其他指令加载到计算机系统中的其他类似装置。这样的装置例如可以包括可移动存储单元(720)和接口(722)。这样的装置的例子可以包括程序包和包接口(如在视频游戏设备中发现的),可移动存储器芯片(如EPROM或PROM)和关联的插口,以及其他可移动存储单元(720)和接口(722),其允许软件和数据从可移动存储单元(720)传送到计算机系统。

计算机系统也可以包括通信接口(724)。通信接口(724)允许软件和数据在计算机系统和外部设备之间传输。通信接口(724)的例子可以包括调制解调器,网络接口(例如以太网卡),通信端口,或PCMCIA插槽和卡等。经由通信接口(724)传送的软件和数据呈信号的形式,其可以是例如能够由通信接口(724)接收的电子、电磁、光或其它信号。这些信号经由通信路径(即,信道)(726)提供给通信接口(724)。该通信路径(726)携带信号并且可以使用线或电缆、光纤、电话线、蜂窝电话链路、射频(RF)链路和/或其他通信信道来实现。

在本文中,术语“计算机程序介质”、“计算机可使用介质”和“计算机可读介质”用于一般地指代诸如主存储器(710)和辅助存储器(712)、可移动存储驱动器(716)和安装在硬盘驱动器(714)中的硬盘的介质。

计算机程序(也称为计算机控制逻辑)存储在主存储器(710)和/或辅助存储器(712)中。也可以经由通信接口(724)接收计算机程序。这样的计算机程序在运行时使计算机系统能够执行如本文中所讨论的本发明的特征。特别地,计算机程序在运行时使得处理器(702)能够执行计算机系统的特征。因此,这样的计算机程序表示计算机系统的控制器。

本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质(或媒体),其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。

计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他空闲传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。

这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。

用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。

这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。

这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。

也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。

附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

本文所使用的术语仅是为了描述特定实施例的目的,并不意在限制本发明。当在本文中使用时,除非上下文另外明确说明,否则单数形式“一”和“所述”也旨在包括复数形式。还应当理解,当在本说明书中使用时,术语“包括”和/或“包含”指定所述特征、整数、步骤、操作、元件和/或部件的存在,但不排除存在或加入一个或多个其它特征、整数、步骤、操作、元件、部件和/或其组合。

以下权利要求中的对应结构、材料、动作和所有装置或步骤加功能元件的等同物旨在包括用于与具体要求权利的其他要求权利的元件组合地执行功能的任何结构、材料或动作。出于示例和描述的目的已给出本发明的描述,但是其并不旨在穷举或者以公开的形式限制本发明。在不脱离本发明的范围和精神的情况下,许多修改和变化对于本领域的普通技术人员将是显而易见的。选择和描述实施例是为了最好地解释本发明的原理和实际应用,并且使本领域的其他普通技术人员能够针对具有适合于预期的特定用途的各种修改的各种实施例理解本发明。因此,HDD的实现在单个存储单元中组合至少两种不同的格式化技术。

应当理解,尽管为了示例的目的在本文中描述了本发明的具体实施例,但是在不脱离本发明的精神和范围的情况下可以进行各种修改。特别地,尽管描述了将分层数据分配给RBO区域的系统,但是可以使用使用日志结构化写入的相关技术,由此没有数据被写入到RBO。然而,日志结构需要在RBO区域中原位有效更新的索引和元数据。因此,本发明的保护范围仅由以下权利要求及其等同物限定。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1