通过动态重新映射来适应数据存储介质上介质缺陷的增长的制作方法

文档序号:6761160阅读:203来源:国知局
专利名称:通过动态重新映射来适应数据存储介质上介质缺陷的增长的制作方法
技术领域
本发明涉及如硬盘驱动器,光驱动器,以及类似的数据存储设备。尤其是,它涉及到这些存储设备中对缺陷的检测,纠正和报告。
背景技术
诸如硬盘驱动器,磁带驱动器,及类似的典型数据存储设备利用了磁性的存储介质,可以从这种介质中读出数据和/或向它写入数据。典型的磁性存储介质包括可磁化的材料层,它可以进行有选择的磁化,并产生磁性转换(transition)以表示已存储的信息。技术的革新不断的减少了在存储介质上表示每一比特信息所需的面积,这样就允许在存储介质上存储更多的信息量。例如,硬盘驱动器可以由一个或者多个磁盘构成,其中每个磁盘被划分成若干个同心的磁道,并且每个磁道划分为扇区的极座标阵列(polar array of sectors)。存储密度的增加既降低了现代硬盘驱动器中所使用的磁盘上磁道的间距(pitch),又降低了其扇区的大小,其结果使存储容量不断增大。
但是,当存储密度增加时,数据存储设备对介质缺陷的敏感度也会增加。特别地,对于磁盘以及其他的磁性存储介质,磁性层的不完整性可以反映(render)在不能使用的存储介质上的特定区域存储信息。这样的介质缺陷的大小范围可以从非常小,例如,仅仅影响包含很少磁道的几个扇区,到相对较大的区域范围,例如,影响包含很多的磁道的许多扇区。此外,随着存储密度的增加,给定大小的介质缺陷将会相反地影响成比例的较大数量的扇区和磁道。
不考虑坚持适当的制造技术,在特定的每个制造的磁盘中至少存在一些介质缺陷。通常,这些介质缺陷是由于磁盘驱动器的电子元件,通过从由驱动器识别为可使用的存储区域中未损坏的去除“损坏的(defective)”扇区获得的。在很多的磁盘驱动器的设计中,在磁盘驱动器制造过程中要执行表面分析测试(SAT),例如,在磁盘初始低级格式化时。在SAT的过程中,磁盘中已损坏的扇区被识别出来,然后将其存储在表格中,并重新映射到位于磁盘上未损坏区域内可用的替代扇区,或者“空闲”扇区。接着,只要驱动器试图访问该已损坏的扇区,就可以访问到已经被映射到该损坏扇区上的空闲区域上。
相似的,在某些磁盘驱动器的标准操作过程中,可能会检测到其他的缺陷,例如,在不成功的读操作中检测到的软性错误(softerror)。在这种例子中,可以用与在SAT过程中执行的重新映射相似的操作在由驱动器识别为可用的存储区域中清除最新检测到缺陷。
然而,已经发现,由于诸如热力学和机械应力及其他介质损害机制等多种因素,某些介质缺陷的大小会随着时间的增加而有所增加。这样,介质缺陷有时可能会影响那些与已经识别为损坏的扇区相邻的、但是在SAT过程中原本被识别为未损坏的扇区。在未损坏扇区所占空间上的介质缺陷增长所造成的一个结果就是存储在该扇区内的信息的丢失。
通常,为了适应介质缺陷的增长,在被识别为损坏的扇区附近的多个扇区,它们通常被称为“填充”扇区,可以在SAT过程中和/或随后的重新映射新的缺陷的时候被标志为不可用,这样就在每个介质缺陷的周围建立一个缓冲区。从驱动器电子学的观点上来看,就是把填充扇区作为损坏的扇区来处理,这样,每个介质缺陷的周围的缓冲区域就不能够用来存储信息。
使用填充扇区的方法在提供了适应介质缺陷增长的能力的同时,也在存储容量和可靠度之间形成了不希望的折衷。增大每个介质缺陷周围的缓冲器区域的大小,就可以适应相对更多的缺陷增长,也就增加了可靠度,但是这样做的代价是降低了磁盘上可用的面积。同样的,在每个介质缺陷的周围选择最小的填充扇区数量就增大了存储容量,但是很有可能发生介质缺陷超过它设定的缓冲器区域的情况,这样就导致了数据丢失。
因此,在本领域中非常需要对在磁盘或者其他数据存储介质上处理介质缺陷增长方法进行改进,并且特别地,也需要经过改进的方法可以更好地调节存储容量和可靠性之间的平衡。

发明内容
本发明解决了这些问题以及其他和现有技术相关的问题,它提供了映射数据存储介质上缺陷的设备、程序产品及方法,其中分析了在该介质上被预先识别(previously-identified)的一个或者多个缺陷,以检测这些缺陷随着时间的增长,这样任何检测到的预先识别的缺陷增长就可以通过将缺陷附近其他的表面区域动态重新映射到一个或者多个位于存储介质其他位置上的替换区域上,以进行适应。这样,当这些缺陷随着时间增长的时候,预先存在(pre-existing)的缺陷周围确定为缓冲区的区域得到了有效的保持,这样可以保证适当的保护以免数据丢失,否则如果试图在该区域存储器储信息就会造成数据丢失。
例如,在和本发明一致的一个实施例中,在磁盘驱动器的用户初始化操作之后可能会访问由硬盘驱动器使用的缺陷图(defectmap),来识别一个或者多个填充扇区,这些扇区已经重新映射到磁盘上与已识别为介质缺陷相关的空闲扇区上。然后可以扫描这样的填充扇区,来检测它们本身是否已经损坏,这样就可以指示介质缺陷是否实际上已经随着时间增长了。对于任何这样检测到的已损坏的填充扇区,应该对缺陷图进行更新来标识那些已损坏的填充扇区,并且重新映射一个或多个与这些填充扇区相邻的附加扇区,并在缺陷图中创建另外的填充扇区。
这些以及其他成为本发明的特征的优点和特点将在附在后面的权利要求中详细说明,并且形成了本发明的另一个部分。但是,为了更好地理解本发明,理解本发明的优点,以及通过使用它而达到的目标,应该参考附图进行说明,它详细说明了本发明的示例性实施例。


图1是数据存储设备的框图,它包含了与本发明相一致的动态重新映射。
图2是几种数据结构的框图,它们被应用在图1中的数据存储设备的动态重新映射中。
图3A和3B是图1所示的数据存储设备中动态重新映射的一个应用程序的流程图。
图4是参考图3A和3B所示的重新映射处理器程序的流程图。
图5A到5D是磁盘表面上示范性的介质缺陷的框图,以及这些缺陷增长和应用图3A和3B的动态重新映射程序实现的容错的框图。
具体实施例方式
在下文中讨论的实施例应用了动态重新映射来适应已超出为这种缺陷建立的原始缓冲区的介质缺陷的增长,例如,数据存储设备中数据存储介质在操作过程中由于可能遭受的热力学或者机械的应力,或者其他介质的损害机制造成的缺陷的增长。
在与本发明相一致的一些实施例中,可以提供空闲时间重新映射的特性来周期性地检查存在的缺陷,并确定在缺陷周围建立的缓冲区域(典型地用填充扇区实现)没有被损害(compromised)。例如,在空闲的时间里,与本发明相一致的一个实施例可以扫描已识别的填充扇区来标识任何不能再读取的这样的扇区。通常,在填充扇区中不能修复的数据就表示这个相邻的介质缺陷已经增长,因此为了阻止缺陷的进一步增长,这样的实施例可以执行另外的重分配程序,以在已扩大的缺陷周围建立一个更大的缓冲区或者填充区域,否则如果缺陷增大到可用的区域内将会导致数据的丢失。
在不同的实施例中,原始的缺陷可以在SAT过程中检测到,或者可以稍后检测到,例如在已经初始化的数据存储设备的操作使用之后。但是如果不考虑这些缺陷的来源,应该应用相似的动态重新映射过程来标记这些缺陷的增长。
与本发明相一致的实施例典型地执行动态重新映射程序,通过试图在数据存储介质上检测预先识别的缺陷增长,然后作为检测到这样的增长的响应,将一个或多个和缺陷相关区域相邻的区域重新映射来实现,在此把它称作“缺陷区域”。典型地这种重新映射发生在将相邻区域重新映射到一个或多个替代区域的过程中,典型的这种替代区域是在所述的动态重新映射过程之前由缺陷区域重新映射的其他替代区域之外的区域。
在下文讨论的一个示范性的实施例中,例如,诸如硬盘驱动器的数据存储设备可能包含一个或者多个磁盘,该磁盘的表面在逻辑上排列成扇区阵列,并进一步排列成多个同心圆的磁道或柱面。典型地,缺陷区域既包含数据无法修复的损坏扇区,还包含本身并没有损坏的填充扇区,但是它在损坏扇区的周围提供了缓冲区域,来适应由预先存在的缺陷增长造成的数据的丢失。典型地,作为SAT或者随后的测试的结果,在缺陷区域内的损坏扇区和填充扇区将被重新映射到位于磁盘其他位置的可用的空闲扇区上(例如通过内联(inline)或者外部(offsite)重分配),这样试图访问这样的扇区的结果就是将该访问转移到对应的空闲扇区上。
由于在这里描述的实施例是基于固定的硬盘驱动器的,所以它使用包含磁性层的磁盘,可以理解本发明可以应用到其他的环境中,在这种环境下应用的存储介质也可能遭受介质缺陷的影响,例如,多种可去除的或者固定的磁性或者光介质。因此,本发明并不限于在此讨论的特定的环境。
正如在下文中将要变得更加明显的,通过重新分配在缺陷区域附近的额外的填充扇区来增大缓冲区域的算法可以根据不同的情况而改变。例如,希望根据观察到的增长的类型来设计算法。有方向性的填充将填充扇区的增加仅限制在检测到的增长方向上,这样的算法也许适合诸如介质的裂开的缺陷,而这样的缺陷决定了缺陷将沿着特定的方向增长。另一方面,圆周填充算法试图在增长的缺陷周围保持统一的缓冲器,这种算法在整个缺陷区域周围设置额外的重分配的时候比较理想,例如,标记(address)嵌入的颗粒或者介质的凹点(pit)。但是,由于这两种的算法可以单独使用,在某些实施例中,根据检测到的介质缺陷的特性动态选择不同的算法是理想的。
通过应用在这里描述的动态重新映射方法,数据存储设备可以进行激活前(pro-active)测量来减小由增长的缺陷造成的数据丢失。此外,可以在检测到的介质缺陷区域的周围应用典型的更小以及更加具有侵蚀性(aggressive)的缓冲区域来使从数据存储介质的可用空间中去除的空间量最小化,这样就最大化了存储的容量。
在与本发明相一致的一些实施例中,在动态重新映射中应用的不同的参数和特性可以由制造者或者用户配置。这些参数中的一些可以包含,例如(1)在空闲时间内将缺陷增长检测开启或者关闭的能力,(2)在执行额外的填充程序之前读取填充扇区所允许的数据恢复的步骤数,(3)在预测故障分析(PFA)操作被触发之前可以发生的重新分配的总数,(4)所使用的填充算法(例如,方向性填充或者圆周填充),及(5)确定对特定缺陷可以增加的额外填充的次数的能力。
通过下文描述的实施例,其他的变化和修改将变得更加明显。
现在来看附图,其中相同的附图标记在多个附图中标注了相同的部分,图1显示了具有示范性的硬盘驱动器10,它应用了与本发明相一致的动态重新映射。驱动器10整体上包含一个或多个磁盘12,一个致动臂14,它包含一个或多个数据记录转换器(transducer)16(也被称作记录头或者读/写头),一个音圈电机18,一个驱动控制器或者控制电路20。
控制电路20例如可以包括,诸如微处理器或者微控制器22的处理器,它用来管理整个驱动器的操作。由处理器执行的固件(firmware)或者微码(microcode)程序代码存储在一个ROM 24或者其他形式的非易失性存储器中,和/或存储在磁盘12的保留区域上,其处理器的工作存储器由RAM 26表示。另外,控制电路20典型地包含其他的电子电路,它受到处理器22管理的控制,来向磁盘12存储数据或者从磁盘12重新获取数据。电子电路典型地包含多种功能,这些功能可以由读/写电路28,伺服(servo)电路30,接口电路32和格式化(formatter)电路34表示。
典型地磁盘12为了进行头(head)定位而被划分成一组径向间隔的磁道,其中每个磁道沿着圆周被划分成多个数据扇区。扇区之间彼此可以是相同大小或者不同大小。如果磁盘驱动器具有多个磁盘和/或多个读/写头,那么在所有磁盘表面上的这一组磁道就具有相同的半径,被称作“柱面”。
读/写电路28从读/写头16接收到信号,并传递伺服信息到伺服电路30,然后将数据信号传送到格式化电路34。伺服电路30用伺服信息产生驱动信号,它驱动语音线圈电机18来定位读/写头16。接口电路32通过接口与主机系统(没有显示)进行通信,将数据和命令信息传送给它。接口电路32也和格式化电路34通信。处理器22也需要和电路28-34中的每个电路通信,根据需要管理整个驱动器的操作。
在驱动器10的操作中,接口电路32典型地从主机系统接收到一个读或写数据扇区的请求。格式化电路34从接口电路32接收到逻辑块地址形式的所请求的数据扇区列表,并将这些地址转化为柱面、头和扇区号,这些参数通过本领域所熟知的方法可以唯一标识所期望得到的数据扇区的位置。头和柱面的信息将被传递给伺服电路30,伺服电路响应该信息并把读/写头16定位在适当的柱面上适合的数据扇区上。如果提供给伺服电路30的柱面号和读/写头16目前位置所对应的磁道号不一致,伺服电路30首先执行查询操作,以将读/写头定位在适合的柱面上。
一旦伺服电路30将读/写头16定位在适当的柱面上,期望得到的数据扇区就通过读取其ID字段来定位。可选地,在使用了无头结构的磁盘驱动器中,正如在本领域所熟知的那样,伺服电路30为了定位和识别期望得到的数据扇区,开始执行扇区计算。一旦定位完成,就再次应用本领域熟知的通用的方法,执行适当的读或者写操作。
与本发明相一致的动态重新映射典型地应用在驱动控制器20内部,并且典型地使用由处理器22执行的程序代码。但是,应该理解在动态重新映射中执行的不同的操作可能被用在不同范围(extent)里,如硬件、软件或者二者结合的范围。因此,本发明并不仅限于这里描述地的特定程序代码应用。
通常,从软件的角度来讲,实现本发明不同实施例所使用的任何功能而执行的任何程序作为微代码的一部分或者作为较高级别程序来实现,诸如操作系统,应用程序,组件,程序,对象,模块或者指令序列,甚至是其子集(subset),在这里称作“计算机程序代码”,或者简称“程序代码”。程序代码典型地包含一个或者多个指令,它们在不同的时间存放在不同的存储器位置以及计算机或可编程电子设备的存储设备中,并且,当设备中的一个或者多个处理器读取程序代码并执行的时候,设备将执行那些必须执行的步骤或者组件,体现本发明不同的方面。另外,当本发明已经描述或者如下面将要描述的全功能磁盘驱动器中的那样,本领域技术人员将会理解,本发明不同的实施例可以具有不同形式的程序产品,并且本发明的应用也是一样的,而不用考虑使用特殊类型的信号承载介质来实际进行分配。信号承载介质的例子包括但是不限于可记录类型的介质,如易失性(volatile)和非易失性(non-volatile)存储器设备,软盘和其他可移动的磁盘,硬盘驱动器,磁带,光盘(例如CD-ROM,DVD等),其他类型中,以及传输类型介质,如数字和模拟的通信链路。
此外,从硬件的角度上来讲,对于这些在硬件中已经实现或者将要在硬件中实现的功能,这些功能可以被看成是在组合了一个或者多个集成电路设备的电路系统中实现,以及通过另外的支持电子元件来实现的。另外,如在本领域中所熟知的那样,典型的集成电路设备的设计和制造也要应用一个或多个计算机数据文件,在这里称其为硬件定义程序,它定义了设备上电路系统的布线图(layout)。该程序通常由设计工具生成,并且在随后的制造过程中用它来制作布线模掩膜(mask),它定义了敷设到半导体晶片上的电路排列。典型地,该程序具有预先给定的形式,并且使用硬件描述语言(HDL)如VHDL,Verilog,EDIF等等。当本发明已经描述并在以后的应用在全功能集成电路设备内容中描述的电路系统中那样,电子设备将应用相同的设备,本领域技术人员将会理解本发明所述的电路系统也可以作为多种形式的程序产品销售,并且本发明应用也是一样的,而不考虑使用特殊类型信号承载介质来实际上实现分配(distribution)。
现在来描述图2,为了实现本发明的动态重新映射,典型地需要某种类型的缺陷图,来保存与磁盘上已存在的缺陷相关的信息,以及与这些缺陷相关联的扇区是怎样重新映射到位于磁盘其他位置上的空闲扇区上的信息。
总体上来看,为了实现本发明的动态重新映射,最好扩展保存在常规缺陷图中的信息,以允许实际损坏的扇区可以从任何在已识别的缺陷区域周围为了形成缓冲区而创建的填充扇区中分别识别出来。然后,随着缺陷增长及填充扇区变成已损坏的,这样的填充扇区将被更新并标识为已损坏,例如,通过将这种填充扇区从填充扇区列表移动到损坏的扇区列表中。
硬盘驱动器的缺陷图通常使用的数据结构典型的包含两个不同的逻辑列表。一个制造缺陷列表(PLIST),它典型地包含在驱动器的制造过程中映射为缺陷的地址,还包含一个生长缺陷列表(GLIST),它典型地包含不和任何PLIST条目相关,但是在通常驱动器的操作过程中变为损坏的区域的地址。PLIST和GLIST由图2显示的缺陷图中的40和42分别表示。
为了在下文中所要描述的实施例中实现动态重新映射,应用了两个新的附加列表,一个被称作制造填充列表(PPLIST)44及增长填充列表(GPLIST)46。在这个实施例中,GPLIST和PPLIST不仅仅存储位置信息,并且明确地表示出或者暗示出它与特定缺陷位置后向关联,这些缺陷来自GLIST或者来自PLIST。最好是应用另一个被称作已损坏的填充列表(DPLIST)48,它定义了在PPLIST或者GPLIST中变为已损坏的填充扇区。可以理解,在与本发明相一致的缺陷图中可以使用多种替代的数据结构。例如,在某些实施例中可以不使用DPLIST。或者,并不由于缺陷是在SAT过程中还是在操作使用中检测出来的而区别对待缺陷及填充。另外,对于每一个列表可以使用多种不同的数据结构。
图3A,图3B和图4接下来显示了本发明的示范性的动态重新映射程序50,它可以由图1中的控制电路20执行。另外,为了更进一步显示这一程序的操作,图5A-5D显示了磁盘驱动器表面示范性的缺陷,它也将结合图3A,图3B和图4中的示范性动态重新映射程序来寻址。
为了实现这一示范的程序,假设用户需要选择多个配置选项,包括(1)开启或者关闭增长检测的能力;(2)在读PPLIST地址的时候所允许的数据恢复的步骤数;(3)在读GPLIST地址的时候所允许的数据恢复的步骤数;(4)在PFA试验之前允许加入DPLIST条目的总数;(5)在PFA试验之前允许加入与特定PLIST和GLIST缺陷地址相关的DPLIST条目的总数;(6)在缺陷周围使用的填充算法(例如方向性填充或者圆周填充)。
现在简要说明图5A,假设一个简单的情况,即一个制造缺陷区域包含3个相邻的扇区。在制造的过程中,这些缺陷扇区被加入到缺陷图中,并且使用制造算法来将这些缺陷扇区以及与之相邻的填充扇区映射到未损坏的空闲扇区上。但是,和常规的SAT算法不同的是,已损坏的扇区和填充扇区通常存储在不同的列表中,例如,PLIST用来存放已损坏的扇区,而PPLIST用来存放填充扇区。在这一例子中,扇区由柱面号/头号/扇区号识别。因此,在图5A中可以看到,在SAT之后,检测到三个已损坏的扇区,标识为29053/0/338,29054/0/338,29055/0/338(假设头号为0),并加入PLIST,然后应用SAT算法进行重新映射。此外,例如,在29052/0/339到29056/0/339,29052/0/337到29056/0/337,29051/0/338到29052/0/338及29056/0/338到29057/0/338的填充扇区也被加入到PPLIST,并通过SAT算法重新映射。该示范性的驱动器缺陷图在SAT之后的状态在下面的表格1中显示表1制造之后的缺陷图

现在假设用户使用如下设置配置驱动器(1)启动缺陷增长的检测功能;(2)在制造填充扇区中允许一次数据恢复步骤;(3)对于增长填充扇区不允许数据恢复步骤;(4)在PFA问题试验后最大允许三个填充扇区变为损坏的;(5)在PFA问题试验之后对于特定的缺陷最多可以填充两次;及(6)填充算法选择方向性填充。
现在来看图3A和图3B,它们显示了本发明的动态重新映射程序50。首先,如块(block)52所示,可以假设驱动器以本领域熟知的方法执行典型的标准文件操作。周期性的,程序50在块54位置检查驱动器是否处于空闲状态,例如,没有挂起的读或写操作,并且没有发生其他高优先级的功能。如果不是,控制将返回到块52。但是,无论什么时候驱动器进入空闲状态,块54将会跳转到块56来检查所配置的设置确定是否使能了缺陷增长的检查。
如果没有,控制将返回块52;否则控制将进入块58来确定先前是否存在任何缺陷的增长,例如,通过观察DPL1ST中是否包含任何条目,这些条目会指示填充扇区以前在动态重新映射的过程中被确定为已损坏的。在初始状态下,DPLIST没有列出任何的扇区,所以块58将控制传递给块60,来初始化一个循环以检测PPLIST中的每个填充扇区,保证所有已知的填充扇区在所允许的数据恢复步骤数内都是可读的(在这种情况下1)。特别地,块60设置一个指向PPLIST的指针,它特别指向最后被检查的扇区,这样下一次驱动器进入空闲状态的时候,缺陷增长检查可以在它离开的地方继续检查,直到整个列表都检查完毕(有可能在检查最后一个扇区的时候被较高优先级的驱动器操作预先占用,这个高优先级的操作将驱动器带出空闲状态,例如,读或者写操作请求)。如果驱动器在完成PPLIST全部的检查后仍然保持空闲状态,检查就从列表的开头重新开始。
一旦指针被初始化,在块62读取当前的填充扇区。然后由块64确定读操作是否在允许的恢复步骤内成功。如果成功,控制将进入块66来确定是否所有PPLIST的填充扇区都已经检查,如果没有,控制将进入块68增加指针值,让它指向PPLIST中下一个填充扇区。否则将返回到块52来执行正常文件操作。
现在返回到块64,如果对填充扇区的读操作不成功,块64将调用重新映射处理器程序70来重新映射现在已损坏的填充扇区,这一方法将在下文中详细描述。然后控制将进入块66检查PPLIST中其他的填充扇区。
图4详细地显示了重新映射处理器程序70。程序70开始于块72,它将在DPLIST中加入新的损坏的扇区。接下来,通过使用已选择的填充算法(例如,方向性填充或者圆周填充),将与新损坏的扇区相邻的扇区重新映射到空闲扇区上,并把它们加入到GPLIST(块74)。在接下来,在块76确定与当前缺陷扇区相关联的增长填充扇区的数目(例如,与特定缺陷相关联的GPLIST扇区的数目)。
如果填充扇区增长的数目没有超过配置的门限,块78将控制传递至块80来确定填充扇区增长的总数(例如,GPLIST中扇区的总数)。否则,块78将控制传递给块82以通知系统,例如,使用预测故障分析(PFA)结果或者通知,然后终止程序70。
现在返回到块80,一旦确定了填充扇区增长的总数,块84就确定这个总数是否超过了配置的门限,如果没有,终止程序70。否则,控制进入块86,建立一个PFA结果或者通知,并在这之后终止程序。
现在来看图5B,为了实现本例,假设在填充扇区检查的过程中,填充扇区中的一个(29056/0/338)要求5个恢复步骤才能读出。由于在本例中,步骤计数超过了配置的门限1,过程流程执行了与程序70相关的操作。得到的结果就是,该填充扇区将被加入到DPLIST中,然后根据所选择的填充算法(例如,通过如图5B所示的方向性填充)在其预计的缺陷增长的方向上,相邻的可用扇区被当作新的填充扇区加入,并且为它重新指配空闲扇区。另外,加入新的填充扇区到GPLIST中。
另外,假设在用户读操作过程中,定位了软错误(soft error)的地址,并且该错误地址被重新指配到空闲的扇区区域。这将被看作增长的缺陷,所以将会建立一个GLIST条目,以及任何相关联的填充(例如,通过如图5B所示的圆周填充)。在GLIST扇区周围的填充扇区将典型地在GPLIST中标识,由于其相关的缺陷在制造的过程中并不存在。因此增长的缺陷典型地被看成是损坏的填充扇区,只是与他相关的缺陷并不是原始就有的。表2显示了在加入新的填充扇区后的缺陷图的状态
表2在已损坏的填充扇区事件和缺陷增长之后的缺陷图

如上面所述的程序70中,在加入新的填充扇区之后,将会检测预测故障分析(PFA)的触发器。每个DPLIST条目表示了一个缺陷增长的步骤,所以需要检查DPLIST中条目的总数是否超过了配置的门限值。如果对于驱动器允许增长的总数,以及特定缺陷的增长没有达到配置的门限值,不会触发PFA结果。
现在回到图3A,一旦建立了一个GPLIST条目,它指示了增长的缺陷的地址,下次执行块58的时候,控制将会进入块88(图3B)。在这一方面,理想的是GPLIST的优先级要高于PPLIST,因为GPLIST的条目指示了此前该缺陷地址已经增长的历史。
块88初始化一个两个步骤的过程,用来扫描已增长的缺陷区域。首先,使用没有复位的指针遍历GPLIST,这样就可以继续由于用户的操作或者高优先级的功能而中断的操作。但是,块88最初将指针设置成为指向GPLIST的开始。然后块90执行检查,以保证已损坏并加入到DPLIST中的GPLIST扇区没有被检查到。
如果一个GPLIST中的扇区不在DPLIST中,控制进入到块92,对扇区执行一个读操作。然后由块94确定在允许的恢复步骤数内读操作是否成功。块94中使用和块64中相同的门限,或者使用不同的门限。在本例中,配置在读失败之前不允许数据恢复步骤。如果读失败发生了,块94将调用程序70来重新映射坏的扇区。否则,控制将进入到块96来确定是否所有的GPLIST条目都检查过了。
如果不是所有的条目都检查过了,控制进入块98增加指针使之指向GPLIST中的下一个扇区。然后控制返回到块90。而且,现在返回到块90,如果GPLIST中的一个扇区也在DPLIST中,控制将会直接进入块96。
一旦GPLIST中所有的扇区都经过了检查,控制将进入块100,循环检查DPLIST的条目,检查所有和相同的原始缺陷相关的PPLIST条目,就像对待每个这样的DPLIST条目(需要说明的是,对于GLIST缺陷,将不会存在相关联的PPLIST条目)。特殊的,块100复位了指向PPLIST的指针,从PPLIST中的第一个扇区开始,该扇区连接到DPLIST中的一个条目。然后块101执行了一个检查来保证该扇区不是已经存在于DPLIST中。如果该扇区并没有已经存在于DPLIST中,控制进入块102执行对该扇区的读操作,及块104决定读操作在允许的恢复步骤数内是否成功(例如,由于正在读取的是PPLIST条目,所以使用和块64相同的门限)。如果读取失败,调用重新映射处理器程序70,及控制进入块106。否则,块104将控制直接传递到块106。
块106确定是否PPLIST中在增长的缺陷地址附近的所有扇区都经过了检查(例如,连接到DPLIST条目)。如果没有,控制进入块108增加指针值,使之指向下一个连接到DPLIST条目的PPLIST扇区,然后返回到块101处理下一个扇区。否则,块106将控制传送给块60(图3A)继续检查PPLIST。另外,现在返回到块101,如果DPLIST中已经存在一个扇区,控制直接进入块106。由于在块88-108执行的检查查找了所有PPLIST中与特定缺陷相关的填充,最好是为由块62-68定义的循环分别保留指向PPLIST的指针。
继续前面的例子,假设读/写操作在图5B所示的事件以后被初始化。也假设实际上,在随后的空闲周期中,另外一个填充扇区(例如29057/0/338)被检测为已损坏的。其结果就是要在DPLIST中加入新的条目,并重新分配另外一个填充扇区(例如29059/0/338),这样就要在GPLIST中加入另外一个填充扇区。这些扇区的重新分配在图5C中显示。此外,作为结果的缺陷图在下面的表3中显示表3额外的填充已损坏

还需要说明的是,在执行和重新分配额外的填充扇区相关的程序70的时候,也需要检查PFA的门限。应用前面提到的例子的设置,发现相同的缺陷具有两个增长的事件,这是试验(trip)门限,随后应该给系统或者用户报告一个PFA通知或者结果。得到的结果就是,用户放弃对驱动器的继续操作,并将所有的数据从该驱动器复制到新的驱动器上。否则,然而,用户将会忽略最初的PFA警告而继续执行。
在后者的情况下,假设驱动器在执行完一些操作之后再次进入空闲状态,并且在块90-98(图3B)的循环中遍历GPLIST的时候,另外一个填充扇区变为已损坏的(例如,29058/0/338),碰巧的是该填充扇区也在GPLIST中标识。前面描述的加入新的填充扇区的操作还会发生,但是,即使缺陷的总数现在已经超过了所配置的门限值3,将会报告与之相比更加重要的PFA事件,该事件为一个单独的缺陷已经增长超过了两次。另外,如果另外一个填充扇区,例如,在GLIST条目的周围(例如,填充29059/0/332)变为已损坏,它将会因为增长步骤的总数太大而触发PFA。在本例中,配置的门限设置成3,并且4个缺陷被加入到DPLIST中。这些额外的错误的存在及重新映射在图5D中显示。
在这两种情况下GPLIST中变为已损坏的条目被放置到DPLIST中,但是在GPLIST中仍然将其保留,正如DPLIST在原理上是计算机制。这就是为什么在试图检查一个条目,确保该条目不是对应一个已知的缺陷之前,应该最好检查每个GPLIST条目。
关于缺陷图,最好将每个PLIST,PPLIST,GLIST和GPLIST列表在存储桶(bucket)中,隔离以将所有的填充扇区关联到它们所填充的缺陷扇区上。这可以通过多种不同的方法实现,但是为了实现本实施例,一种方法就是给每个缺陷或者相关的缺陷组分配一个存储在列表中的缺陷号,在列表中还存储着它的位置。通过这种方法,PPLIST和GPLIST条目将参考它们所填充的缺陷桶号。这将启动对相关填充扇区的检查,就像在相关的图3B中对块104-108的循环中所描述的那样。
由于在此提供的简单的例子在缺陷图中不包含多个制造缺陷,为了清楚而省略了存储桶号。典型的三个PLIST条目应该与一个缺陷存储桶相关联,并且GLIST缺陷扇区将是独立的缺陷存储桶。为了显示的目的,在表4中,所有与GLIST条目相关联的填充扇区都用“*”符号标出。将表格分割仅仅是因为要清楚地关联表4GPLIST中变为已损坏的额外的填充扇区

正如前面所述的,可以应用多种替代的数据结构来表现缺陷图中不同的扇区。另外,用于检测已损坏的填充扇区的方法也可以替代使用。同样的,本发明并不限于图3A,图3B和图4所显示的特定的动态重新映射程序。
其他改进对于本领域的普通技术人员来讲是非常明显的。因此本发明就在后面附加的权利要求中说明。
权利要求
1.一种用于操作具有缺陷图的类型的硬盘驱动器的方法,该缺陷图标识该硬盘驱动器的磁盘上的至少一个缺陷,并且将至少一个与该缺陷相关联的已损坏的扇区、以及在其附近的至少一个无缺陷的填充扇区重新映射到位于磁盘其他位置的空闲扇区上,在该硬盘驱动器的初始化操作之后,该方法包括(a)访问所述缺陷图以标识所述填充扇区;(b)扫描所述填充扇区并检测有缺陷的填充扇区,其中检测到有缺陷的填充扇区表明磁盘上的缺陷随着时间而增长;并且(c)作为检测到有缺陷的填充扇区的响应,更新缺陷图,以标识所述填充扇区作为有缺陷的填充扇区,并将位于有缺陷的填充扇区附近的附加的扇区重新映射到磁盘上附加的空闲扇区,从而在缺陷图中创建一个附加的填充扇区。
2.一种用于映射在数据存储介质上的缺陷的方法,该方法包括(a)检测数据存储介质上预先标识的缺陷的增长,其中预先标识的缺陷和已经映射到第一替代区域的缺陷区域相关联;并且(b)将至少一个与缺陷区域相邻的区域重新映射到第二替代区域,以适应预先标识的缺陷的增长。
3.如权利要求2的方法,其中所述缺陷区域包括至少一个有缺陷的扇区以及至少一个位于有缺陷的扇区附近的填充扇区,并且其中检测预先标识的缺陷增长包括扫描填充扇区是以便发现缺陷。
4.如权利要求3的方法,其中重新映射至少一个与缺陷区域相邻的区域包括作为在填充扇区中检测到缺陷的响应,重新分配至少一个与填充扇区相邻的扇区。
5.如权利要求3的方法,其中所述有缺陷的扇区在缺陷扇区列表中被标识,并且填充扇区在填充扇区列表中被标识,该方法进一步包含在缺陷图中指示已损坏的填充扇区,作为检测预先标识的缺陷增长的响应。
6.如权利要求5的方法,其中将至少一个与缺陷区域相邻的区域重新映射包括在缺陷图中加入至少一个与填充扇区相邻的扇区。
7.如权利要求6的方法,其中在缺陷图中加入至少一个与填充扇区相邻的扇区包括在增长的填充扇区列表中存储至少一个扇区,并且其中指示该填充扇区是有缺陷的扇区包括在有缺陷的填充列表中指示该填充扇区是有缺陷的。
8.如权利要求3的方法,其中重新映射至少一个与缺陷区域相邻的区域包括重新分配基本上沿着相对于填充扇区增长的方向设置的至少一个扇区。
9.如权利要求3的方法,其中重新映射至少一个与缺陷区域相邻的区域包括重新分配围绕所述缺陷区域周边设置的多个扇区。
10.如权利要求3的方法,其中第一个和第二个替代区域中的每一个替代区域包含至少一个空闲扇区。
11.如权利要求2的方法,其中在包括数据存储介质的数据存储设备的制造过程中分配缺陷区域,并且其中检测预先标识的缺陷增长以及重新映射至少一个区域将在数据存储设备的操作使用之后执行。
12.如权利要求2的方法,其中检测预先标识的缺陷增长以及重新映射至少一个区域在包括数据存储介质的数据存储设备的操作使用之后的空闲时间内执行。
13.如权利要求2的方法,进一步包括启动预测故障分析操作,以作为检测到的预先标识的缺陷增长超过预先定义的门限的响应。
14.如权利要求13的方法,其中预先确定的门限至少与检测到的多个有缺陷的填充扇区的数量以及为该缺陷区域添加至少一个填充扇区的次数中之一相关。
15.如权利要求2的方法,其中数据存储介质包括硬盘驱动器中的磁盘构成。
16.一种设备,包括(a)数据存储介质;及(b)耦合到数据存储介质的控制电路,被配置用来检测数据存储介质上预先标识的缺陷的增长,其中预先标识的缺陷和已经映射到第一替代区域的缺陷区域相关,进一步配置所述控制电路,以便将至少一个与缺陷区域相邻的区域重新映射到第二替代区域,以适应预先标识缺陷的增长。
17.如权利要求16的设备,其中所述缺陷区域包括至少一个有缺陷的扇区以及至少一个位于有缺陷的扇区附近的填充扇区,并且其中通过扫描填充扇区以便发现缺陷,配置控制电路以检测预先标识缺陷的增长,。
18.如权利要求17的设备,其中响应检测填充扇区中的缺陷通过重新分配至少一个与填充扇区相邻的扇区来配置控制电路,以重新映射至少一个与缺陷区域相邻的区域。
19.如权利要求17的设备,其中有缺陷的扇区在缺陷扇区列表中被标识,并且填充扇区在填充扇区列表中被标识,并且进一步配置控制电路,以在缺陷图中指示填充扇区是有缺陷的,作为检测到以前标识的缺陷增长的响应。
20.如权利要求19的设备,其中配置控制电路以重新映射至少一个与缺陷区域相邻的区域,这通过在缺陷图中加入至少一个与填充扇区相邻的扇区来完成。
21.如权利要求17的设备,其中配置控制电路以重新映射至少一个与缺陷区域相邻的区域,这通过重新分配基本上沿着相对于填充扇区增长的方向设置的至少一个扇区来完成。
22.如权利要求17的设备,其中配置控制电路以重新映射至少一个与缺陷区域相邻的区域,这通过重新分配在缺陷区域周围的周边上设置的多个扇区来完成。
23.如权利要求17的设备,其中第一个和第二个替代区域中的每一个替代区域包含至少一个空闲扇区。
24.如权利要求16的设备,其中在包括数据存储介质的数据存储设备的制造过程中分配所述缺陷区域,并且其中配置控制电路,用于检测预先标识的缺陷增长以及在数据存储设备的操作使用之后重新映射至少一个区域。
25.如权利要求16的设备,其中配置控制电路,用于检测预先标识的缺陷增长,以及在包括数据存储介质的数据存储设备的操作使用之后的空闲时间重新映射至少一个区域。
26.如权利要求16的设备,进一步配置控制电路,用于响应检测超过预先定义的门限的预先标识的缺陷增长,启动预测故障分析操作。
27.如权利要求16的设备,其中所述数据存储介质包括硬盘驱动器中的一个磁盘。
28.一种程序产品,包含(a)程序代码,被配置用于检测数据存储设备中的数据存储介质上预先标识的缺陷的增长,其中预先标识的缺陷和已经映射到第一替代区域的缺陷区域相关,进一步配置所述程序代码用来将至少一个与缺陷区域相邻的区域重新映射到第二替代区域,以适应预先标识的缺陷的增长;以及(b)用于承载所述程序代码的信号承载介质。
29.如权利要求28的程序产品,其中所述信号承载介质包括至少传输介质和可记录的介质中的至少一个。
全文摘要
映射数据存储介质上缺陷的设备、程序产品和方法,分析存储介质上一个或者多个预先标识的缺陷,以发现这些缺陷随时间的增长,这样对于任何检测到的预先标识的缺陷的增长,可以通过将缺陷附近的其他表面区域动态重新映射到一个或者多个位于存储介质其他位置的替代区域来进行适应。这样,任何在预先存在的缺陷周围定义的缓冲区域在那些缺陷随时间增长的时候可以得到有效的保持,这样给数据丢失提供了适当的保护,否则试图在已被相邻的缺陷增长影响的存储器区域内放信息将会导致数据的丢失。
文档编号G11B20/10GK1503264SQ20031011833
公开日2004年6月9日 申请日期2003年11月21日 优先权日2002年11月21日
发明者戴维·L·史密斯, 唐纳德·E·沃斯伯格, 道格拉斯·M·齐歇尔, E 沃斯伯格, 戴维 L 史密斯, 斯 M 齐歇尔 申请人:日立环球储存科技荷兰有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1