CN200410059048.6
2004.07.29
CN1577587A
2005.02.09
撤回
无权
发明专利申请公布后的视为撤回|||实质审查的生效|||公开
G11B20/18; G11B19/04
日立环球储存科技荷兰有限公司
理查德·M.·H·纽; 斯潘塞·W.·影
荷兰阿姆斯特丹
2003.07.29 US 10/629,675
中国国际贸易促进委员会专利商标事务所
李德山
具有多个硬盘驱动器的RAID系统使其每个控制器自主地对其磁盘执行数据擦洗,而不是需要RAID控制器来执行数据擦洗。可以响应来自RAID控制器的I/O请求而中断该数据擦洗操作,或者如果没有达到有保证擦洗速率,可以继续擦洗。数据被存储于同心数据磁道的大段中,可以基于对该段的读取频率或写入该段的新近程度,优先选择对该段进行擦洗。
1. 一种硬盘驱动器,包括:至少一个存储盘;至少一个驱动器控制器,用于针对该盘读出数据或写入数据,该驱动器控制器执行包括下述的逻辑:执行擦洗周期,包含:读取至少一个数据单元;确定该数据单元中是否存在错误,如果存在错误,采取以下步骤的至少一个:记录错误,和报告错误;对后继数据单元执行读取和确定逻辑;如果接收到用于以下操作中的至少一个的用户请求:数据读取和数据写入,则中断该擦洗周期以完成该请求,然后恢复该擦洗周期。2. 如权利要求1中的磁盘驱动器,其与RAID系统相结合,其中由驱动器控制器从RAID控制器接收用户请求。3. 如权利要求2中的磁盘驱动器,包括在重新恢复擦洗周期之前,在完成用户请求队列中的所有用户请求之后等待一个延迟周期。4. 如权利要求3中的磁盘驱动器,其中延迟周期是自适应的延迟周期,它取决于从RAID控制器接收的用户请求的频率和数量中的至少一个。5. 如权利要求1中的磁盘驱动器,其中磁盘驱动器被划分成数据段,驱动器控制器维护至少指示对这些段的最近访问的段表。6. 如权利要求1中的磁盘驱动器,包括对磁盘上与用户请求所涉及的数据直接相邻的数据执行擦洗周期,以作为完成该请求的一部分。7. 如权利要求1中的磁盘驱动器,包括对比第二数据更新近写入的第一数据执行擦洗周期,然后擦洗第二数据。8. 如权利要求1中的磁盘驱动器,包括对比其它较少频繁使用的磁盘区域更频繁访问的磁盘区域执行擦洗周期,然后再擦洗该较少频繁使用的区域。9. 一种硬盘驱动器,包括:至少一个存储盘;至少一个驱动器控制器,用于对该盘读取和写入数据,该驱动器控制器执行包括以下的逻辑:执行擦洗周期,包含:读取至少一个数据单元;确定数据单元中是否存在错误,如果存在错误,采取以下步骤的至少一个:记录错误,和报告错误;对后继数据单元执行读取和确定逻辑;如果接收到用于以下操作中的至少一个的用户请求:数据读取和数据写入,并且如果当前擦洗速率超过门限速率,则中断该擦洗周期以完成该请求,然后重新恢复该擦洗周期,否则不中断擦洗周期的至少已有擦洗读取。10. 如权利要求9中的硬盘驱动器,其与RAID系统相结合,其中由驱动器控制器从RAID控制器接收用户请求。11. 如权利要求10中的硬盘驱动器,包括在重新恢复擦洗周期之前,在完成用户请求队列中的所有用户请求之后等待一个延迟周期。12. 如权利要求11中的硬盘驱动器,其中延迟周期是自适应的延迟周期,它取决于从RAID控制器接收的用户请求的频率和数量中的至少一个。13. 如权利要求9中的硬盘驱动器,其中磁盘驱动器被划分成数据段,驱动器控制器维护至少指示对这些段的最近访问的段表。14. 如权利要求9中的硬盘驱动器,包括对磁盘上与用户请求所涉及的数据直接相邻的数据执行擦洗周期,以作为完成该请求的一部分。15. 如权利要求9中的硬盘驱动器,包括对比第二数据更新近写入的第一数据执行擦洗周期,然后擦洗第二数据。16. 如权利要求9中的硬盘驱动器,包括对比其它较少频繁使用的磁盘区域更频繁访问的磁盘区域执行擦洗周期,然后再擦洗该较少频繁使用的区域。17. 一种硬盘驱动器,包括:至少一个存储盘;至少一个驱动器控制器,用于对该盘读取和写入数据,该驱动器控制器执行包括以下的逻辑:执行擦洗周期,包含:读取至少一个数据单元;确定数据单元中是否存在错误,如果存在错误,采取以下步骤的至少一个:记录错误,和报告错误;对后继数据单元执行读取和确定逻辑,其中对比第二数据更新近写入的第一数据执行擦洗周期,然后再对第二数据执行擦洗周期。18. 如权利要求17中的硬盘驱动器,其中如果接收到用于以下操作中的至少一个的用户请求:数据读取和数据写入,则中断该擦洗周期以完成该请求,然后重新恢复该擦洗周期。19. 如权利要求18中的硬盘驱动器,其与RAID系统相结合,其中由驱动器控制器从RAID控制器接收用户请求。20. 如权利要求17中的硬盘驱动器,其中如果接收到用于以下操作中的至少一个的用户请求:数据读取和数据写入,并且如果当前擦洗速率超过门限速率,则中断该擦洗周期以完成该请求,然后重新恢复该擦洗周期,否则不中断擦洗周期的至少已有擦洗读取。21. 一种硬盘驱动器,包括:至少一个存储盘;至少一个驱动器控制器,用于对该盘读取和写入数据,该驱动器控制器执行包括以下的逻辑:执行擦洗周期,包含:读取至少一个数据单元,其中如果该数据单元在磁盘上与用户请求所涉及的数据直接相邻,则优先选择该数据单元进行擦洗;确定数据单元中是否存在错误,如果存在错误,采取以下步骤的至少一个:记录错误,和报告错误;对后继数据单元执行读取和确定逻辑。22. 如权利要求21中的硬盘驱动器,其中如果接收到用于以下操作中的至少一个的用户请求:数据读取和数据写入,则中断该擦洗周期以完成该请求,然后重新恢复该擦洗周期。23. 如权利要求22中的硬盘驱动器,其与RAID系统相结合,其中由驱动器控制器从RAID控制器接收用户请求。24. 如权利要求21中的硬盘驱动器,其中如果接收到用于以下操作中的至少一个的用户请求:数据读取和数据写入,并且如果当前擦洗速率超过门限速率,则中断该擦洗周期以完成该请求,然后重新恢复该擦洗周期,否则不中断擦洗周期的至少已有擦洗读取。25. 一种硬盘驱动器,包括:至少一个存储盘;至少一个驱动器控制器,用于对该盘读取和写入数据,该驱动器控制器执行包括以下的逻辑:执行擦洗周期,包含:读取至少一个数据单元;确定数据单元中是否存在错误,如果存在错误,采取以下步骤的至少一个:记录错误,和报告错误;对后继数据单元执行读取和确定逻辑,其中对比其它较少频繁使用的磁盘区域更频繁访问的磁盘区域执行擦洗周期,然后再对该较少频繁使用的区域执行擦洗周期。26. 如权利要求25中的硬盘驱动器,其中如果接收到用于以下操作中的至少一个的用户请求:数据读取和数据写入,则中断该擦洗周期以完成该请求,然后重新恢复该擦洗周期。27. 如权利要求26中的硬盘驱动器,其与RAID系统相结合,其中由驱动器控制器从RAID控制器接收用户请求。28. 如权利要求25中的硬盘驱动器,其中如果接收到用于以下操作中的至少一个的用户请求:数据读取和数据写入,并且如果当前擦洗速率超过门限速率,则中断该擦洗周期以完成该请求,然后重新恢复该擦洗周期,否则不中断擦洗周期的至少已有擦洗读取。29. 一种独立磁盘冗余阵列(RAID)系统,包括RAID控制器和多个硬盘驱动器,每个硬盘驱动器包括至少一个存储盘,和至少一个用于对盘读取数据和写入数据的驱动器控制器,其中每个磁盘驱动器的驱动器控制器与RAID控制器相连,每个驱动器的驱动器控制器自主地对其磁盘执行擦洗周期,并且如果接收到用于以下操作中的至少一个的用户请求:数据读取和数据写入,则中断该擦洗周期以完成该请求,然后重新恢复该擦洗周期。
硬盘驱动器的自主数据擦洗系统及方法 技术领域 本发明一般性地涉及硬盘驱动器,,尤其涉及但不限于独立磁盘冗余阵列(RAID)系统的硬盘驱动器。 背景技术 数据完整性是许多数据存储子系统最为关心的问题。这些子系统使用各种RAID技术来提供数据的冗余,使得当数据无法从一个磁盘驱动器获取时,该数据能够从RAID子系统的其它驱动器中重新获得。多数子系统仅提供单容错,因为多容错的成本很高。不幸的是,不能恢复的读错误(也被称之为硬错误)在磁盘驱动器中出现。如果即使在进行完所有的驱动器错误恢复过程(ERP)步骤之后,扇区都不能读出,就引起这种读取失败的情形。这样的步骤包含调用所有级别的已经实现的错误纠正控制(ECC),并使用不同的磁头偏移量进行重试。当遇到不可恢复的读取错误,而在RAID中所有其它的驱动器仍然可以访问时,该扇区能够由那些驱动器重构。不过,如果当RAID中的一个驱动器已经失败时遇到硬错误,则读取失败的驱动器中的硬错误和其对应扇区是不能恢复的。这造成了数据的丢失情况。 为了减少在驱动器已经失败后遇到硬错误的概率,某些存储子系统实现某种数据擦洗(scrubbing)例程,以在实际需要该数据之前刷新掉这样的错误。在这种方案中,RAID控制器本身周期性地向每个驱动器控制器发出验证读(即,不从高速缓存中读取,而是从磁盘介质中读取)命令,并且循环遍历每个驱动器的每个地址。当一个驱动控制器遇到不可恢复的错误并报告该错误时,RAID控制器将利用RAID的冗余性从其它驱动器重构该数据。某些子系统在磁盘驱动器中启用自动重新分配,使得具有硬错误的扇区自动地被重新分配到空余的位置上。而其它则关掉自动重新分配,使得RAID控制器能够决定是否首先尝试重写该数据回到最初的位置,以检查问题是否得到清除,从而只有当问题持续存在(即,介质上的划痕)时,才进行重新分配。在所有这些情形中,RAID控制器记录不可恢复错误的统计数据。当这样的错误超过预定的门限时,调度该驱动器准备替换。 上述的子系统控制器管理的数据擦洗具有两个缺点。第一,RAID系统控制器的资源需要管理和执行该擦洗过程。第二,即使控制器实际不需要数据,数据也从驱动器返回。这在总线上产生不必要的业务量并且可能潜在地退化系统的性能。由于这种限制,数据擦洗周期可以比希望的要长。 本发明认识到上述问题能够通过在磁盘驱动器控制器级别上实施数据擦洗而得到缓解,而不需要RAID控制器的任何动作,除非遇到了不可恢复的错误。 发明内容 硬盘驱动器包含至少一个存储磁盘和从磁盘中读出数据和写入数据的驱动器控制器。驱动器控制器执行这样的逻辑,包含执行需要读出至少一个数据单元和确定该数据单元中是否存在错误的擦洗周期(scrub cycle)。如果存在,则错误被记录和/或报告。针对随后的数据单元执行错误检测逻辑。如果收到用户数据读出或数据写入请求,则擦洗周期被中断以完成该请求,然后重新恢复擦洗。 在优选实施例中,磁盘驱动器与RAID系统进行组合,并且由驱动控制器从RAID控制器接收用户请求。 在一个非限制性的实施例中,驱动器控制器逻辑包含在重新恢复擦洗周期之前,在满足用户请求队列中的所有用户请求之后等待一个延迟周期。延迟周期可以是自适应的延迟周期,它取决于从RAID控制器接收的用户请求的频率和/或数量。 磁盘驱动器可以被划分成数据段(data band)。驱动器控制器最好维护例如指示最近对段的访问的表。 可以优先对磁盘上与用户请求所涉及的数据直接相邻的数据进行擦洗,同时完成该请求。同样可以优先对比其它数据更新近写入的数据,和/或比其它磁盘区域更频繁访问的磁盘区域执行擦洗。 另一方面,硬盘驱动器包含至少一个存储盘和针对该盘读出数据和写入数据的驱动器控制器。驱动器控制器执行这样的逻辑,包含执行需要读出至少一个数据单元并确定该数据单元中是否存在错误的擦洗周期。如果存在错误,该错误被记录和报告。对随后的数据单元执行错误检测逻辑。如果接收了数据读或写的用户请求,并且如果当前擦洗速率超过了门限速率,则中断该擦洗周期以完成该请求,然后恢复擦洗周期。否则,不中止擦洗周期中现有擦洗读取。 在另一个方面,硬盘驱动器包含至少一个存储盘和针对该盘读出数据和写入数据的驱动器控制器。驱动器控制器执行这样的逻辑,包含执行需要读出至少一个数据单元并确定该数据单元中是否存在错误的擦洗周期。如果存在错误,那么该错误被记录和/或报告。对随后的数据单元进行错误检测逻辑。可以对比第二数据更新近写入的第一数据执行擦洗周期,然后再对第二数据执行。或者,可以优先对频繁访问的磁盘区域执行擦洗周期。 附图说明 本发明关于它的结构和操作的详细说明,最好能够参照附图加以理解,其中同样的参考数字表示同样的部分,其中: 图1是与客户机处理器配合的RAID系统的方框图; 图2是图1中所示的系统中一个硬盘驱动器(HDD)地方框图; 图3是数据擦洗过程的流程图,示出的是支持有保证擦洗速率(guaranteed rate of scrub)的可选逻辑; 图4是中断图3所示的擦洗过程的处理的流程图,示出了将擦洗的恢复延迟一个固定或自适应的周期的可选逻辑,和用于寻机(opportunistic)进行数据擦洗的可选逻辑; 图5示出的是利用图3中的擦洗过程建立有保证擦洗速率的过程的流程图; 图6是图3的擦洗过程期间用于选择要擦洗的下一个数据单元的优选过程的流程图; 图7是图4的擦洗中断逻辑期间用于执行用户请求的读或写的优选处理过程的流程图; 图8示出的是优选数据段表; 图9是维护图8的表的优选处理过程的流程图; 图10是选择要擦洗的单元的优选处理过程的流程图。 具体实施方式 从参照图1开始,示出的是一般性地标明为10的RAID系统,它包含为了存储和检索多个硬盘驱动器(HDD)16中的数据而与一个或多个客户机处理器14通信的RAID控制器12。图2示出的是本发明的硬盘驱动器16,它包含响应RAID控制器12的请求而针对一个或多个数据存储盘20读写数据的驱动器控制器18。如现有技术已知的HDD原理所示,每个HDD 16也可以包含固态数据高速缓存22。根据本发明的原理,RAID系统10的每个HDD控制器18自主执行下述的擦洗逻辑,即每个驱动器控制器18均负责其自己的盘上的数据擦洗,并且不为RAID控制器12所控制地自主进行。 图3示出的是本发明的擦洗循环的逻辑,其最好由驱动器控制器18无限地重复进行。在开始状态24处开始,当如参照图5所详细描述的那样实现有保证擦洗速率时,逻辑移到框26以记录擦洗周期的开始时间。 当实现无保证擦洗速率时,如参照下面的图6所讨论的或使用其它下面所讨论的准则,从框26或从开始状态24,该逻辑继续进行到框28以选择下一个数据单元进行擦洗。在非限制性的实施例中,数据以“段”的形式存储在磁盘20上,其中段是通过对磁盘的可用空间进行逻辑划分而建立的。例如,100GB驱动器可以被划分成100个均为1GB的段,或1000个均为100MB的段,等等。单个数据单元可以是针对相对大数目的扇区,例如512个扇区,或针对整个磁道。对于全磁道读取的情形,当进行擦洗读取操作时,能够容易地使用零等待读取技术(即一旦磁头在磁道上便开始读取),使得旋转等待开销得以消除。正如下面进一步所提出的,可以使用与擦洗数据单元对应的位映射来跟踪已经擦洗过的单元,但是也可以使用任何其它的方法。在每个擦洗周期的开始处,位映射被重新设置。 一旦待被擦洗的数据单元被识别出来,在框30处读取该数据单元。在菱形决策框32中,驱动器控制器18确定在数据单元中是否存在有任何不可纠正的错误。如果检测到错误,该错误的位置在框34中被记录下来。可选地,可以在这个步骤中立即向RAID控制器12通报该错误。然后,在框36处,驱动器控制器18更新其有关已经擦洗过的数据单元的列表(即位映射)。当使用了有保证擦洗速率时,该逻辑也进行到框38,其中擦洗速率通过用框26处所记录的擦洗过的数据量,除以自框36所记录的擦洗周期开始起已经过的总时间来确定。最后,在菱形决策框40中,确定整个磁盘是否已经得到了擦洗,如果不是,该逻辑循环回到框28。否则,该逻辑重新在起始状态24开始另一个擦洗周期。 图4示出的是当启用无保证擦洗速率时,驱动器控制器18可以实现的逻辑。假定图3所示的擦洗周期正在不停地执行,在状态42处接收到对磁盘20进行读取或写入的用户请求(来自例如RAID控制器12)。在菱形决策框44中,驱动器控制器18确定擦洗读取操作是否正进行,如果是,该擦洗读取操作在框46处被中止或暂停。图4中的虚线表示图3中(用多边形48来表示)的擦洗周期子程序得到通告或者暂停。 如果没有擦洗读取操作正在进行,从框46或从菱形决策框44,该逻辑继续执行到框50,以将I/O请求加入到请求队列中。通过移到菱形决策框52处,确定在队列中是否有任何未完成的请求。如果有,则在框54处对该请求进行服务。在选择队列中哪一个请求将在下一次得到服务时,可以使用任何调度算法,包含先到先服务,最短时间先服务等等。 在一个改进(augmentation)中,作为框54的逻辑的一部分,当完成用户请求的同时,可以寻机对磁盘上直接靠近用户请求所涉及的数据的数据执行擦洗循环。这能够通过扩展该请求以包含一个或多个邻近的数据擦洗单元来完成。例如,读取请求可以是读取128个扇区,比如说从地址5020到地址5147。当调用寻机擦洗时,驱动器控制器18可以读取含有所请求扇区的整个擦洗单元(比如说,从地址5000到5999),从而在此同时擦洗整个单元。 如果需要,一旦已经完成了所有的用户I/O请求,该逻辑能够移到框56处,以在图3中的擦洗循环重新恢复之前等待一个延迟周期。该延迟周期可以是固定的,也可以是自适应的,并且取决于例如所接收的用户请求的频率(对于较多的请求,例如会导致较长的延迟周期)和/或取决于从RAID控制器接收的用户请求的数量,其中对于较多的请求,例如会导致较长的延迟周期。延迟周期增加了新请求不可能在近期到达的概率,即HDD正进入到空闲时间周期。如果新请求在该延迟周期内到达,该逻辑回到起始状态42;否则,它重新进入状态48处的擦洗循环。 在确定自适应延迟周期时,驱动器控制器18能够计算自从状态42处所记录的最后用户请求的到达所经过的时间量。在这个例子中,利用这个经过时间计算待执行的延迟。这种计算的一个例子是延迟=k/经过时间,其中k是常数。于是,如果该经过时间较短,则延迟较长,因为另一请求很快到达的可能性很高;如果该经过时间较长,则延迟较短,因为在一段延长的时间周期内没有任何关于HDD的活动,因此更频繁地进行擦洗不可能影响性能。如上所述,可以使用其它自适应的方法或方式。 图5示出了当希望至少按照可由用户定义的某个门限速率进行擦洗时能够遵循的逻辑。假定图3所示的擦洗循环不断地执行,在状态58处(从例如RAID控制器12)所接收的对磁盘20进行读取或写入的用户请求。在菱形决策框60中,确定擦洗读取是否正在进行,如果是,则该逻辑继续到菱形决策框63,以确定当前的擦洗速率(如图3中的框38所确定的)是否低于门限速率。如果不是,则该逻辑移到框64,其中擦洗读取被中止或暂停。虚线表示图3的擦洗循环子程序(用多边形66来表示)被通知中止或暂停擦洗。 相反,当在菱形决策框62中确定擦洗速率不足(即太慢)时,在服务任何用户请求之前,该逻辑移到框68以完成当前的擦洗读取。从菱形决策框60(当没有擦洗读取正在进行时),或从框64和68(当读取正在进行并取决于擦洗速率时),该逻辑移到框70,以将用户请求加入到请求队列中。 移到菱形决策框72,确定是否在队列中有任何未完成的请求。如果有,在框74处服务请求。如果需要,就象图4中逻辑的情形那样,可以寻机对磁盘上与用户请求所涉及的数据直接相邻的数据执行擦洗循环,同时作为框74中的逻辑部分,完成该请求。 从框74处,驱动器控制器18的逻辑移到框76处以计算新的擦洗速率,然后继续到菱形决策框78处确定该擦洗速率是否太慢。如果是,该逻辑重新进入图3的擦洗循环(如多边形66所示),并且停留在状态66和78之间的循环中,直到擦洗速率等于用户定义的门限。当发生此情况时,该逻辑移回到菱形决策框72。如图5所示,当如菱形决策框72所确定的那样已经完成了队列中所有的用户请求时,该逻辑可以在重新进入状态66的擦洗循环之前,可选地移到框80以启用上述延迟周期。 如上所述,本发明的优选实施例使用物理磁道或其一部分作为数据擦洗单元。当调度要擦洗的数据单元时,不是顺序地从开始执行到结束,而是可以调度下一个擦洗读取操作在最接近磁盘驱动器16的磁头的位置的附近进行。因此,在一个非限制性实施例中,图3的框28处执行的该逻辑可以通过图6所示的逻辑来实现。 在框82处开始,磁头当前所在位置的物理柱面号“C”被记录下来。在菱形决策框84中,驱动器控制器18确定柱面C上的所有磁道是否已经擦洗。如果至少有一个磁道还没有被擦洗,则该逻辑移到框86以从该柱面选择未擦洗的磁道,然后该逻辑移到图3的框30。 当在决策框84处确定柱面“C”上的所有磁道已经擦洗时,该逻辑移到框88处,其中索引变量“i”被初始化成1。继续进行到菱形决策框90,确定柱面C+i上所有磁道是否已经擦洗。如果不是这样,该逻辑移到框86。否则,该逻辑继续进行到菱形决策框92,其中确定柱面C-i上的所有磁道是否已经擦洗。如果在柱面C-i上还至少有一个磁道未得到擦洗,该逻辑移到框86,但当菱形决策框92处的测试结果为肯定时,该逻辑移到框94,以将索引变量“i”加1。 继续进行到菱形决策框96,确定索引变量“i”是否超过门限。如果不是,该逻辑回到菱形决策框90。然而,如果超过了该门限,则进入框98,其中可以使用不同的算法选择下一个擦洗单元。这就将搜索限制到合理的时间量,并且在“i”变得太大以致不具有任何性能优势之后,也切换到不同的选择方法。 作为可以用来选择要擦洗的数据单元的不同选择方法的非限制性例子,可以选择比其它数据更新近写入的数据在擦洗其它数据之前进行擦洗。或者,可以在擦洗其它不经常使用的区域之前擦洗频繁访问的磁盘区域。 更具体地,本发明认为到某些不可恢复的错误可以由坏写(badwrite)引起。为了更快地发现这样的错误,驱动器控制器18能够调度擦洗最近写入的磁道和相邻磁道,如图7所示。根据分别结合图4、图5中的框54和框74所进行的描述,对请求的服务可以包含在框100中执行所请求的读或写命令,然后,在菱形决策框102处,确定刚完成的命令是否写入命令。如果它是写入命令,在框104处,驱动器控制器18将受写入命令影响的擦洗单元标记为尚未擦洗过,不管它们在这个周期中是否已经擦洗。在使用位映射跟踪已擦洗单元的优选实施例中,那些单元的对应位被重新设置。以这种方式,那些单元在它们被调度进行擦洗之前,不会等待下一个擦洗周期,而是可以立刻得到擦洗。而且,当使用图6的调度策略时,这些数据单元有可能会被迅速地调度。在擦洗单元是物理磁道的优选实施例中,受影响的擦洗单元会是包含那些刚写入数据的磁道和同一表面上与其相邻的磁道。 如前所述,磁盘20可以被逻辑地分成不必大小相等的数据段。与段有关的是图8所示的表106,每个表项对应一段。每个表项包含如第一列所示的计数域。为了减少计数,这些表项最好建立双链表,因此每一表项包含这个链表的前向指针和后向指针,如第二列和第三列所示。除段表之外,HDD维护一个指向这个链表的顶部(该表项具有最高的计数)的指针。 在这个非限制性实施方案中,并且现在参照图9,每当在图9中状态108处HDD 16收到新的用户I/O请求时,驱动器控制器18在框110处确定该请求所处的段。在框112处,递增该段的计数。移到菱形决策框114,确定得到的计数是否超过计数域能够保存的最大值。例如,如果计数域使用了16个位,则该计数域的最大计数是65535。如果大于该数值,则逻辑移到框116以将表中的每项的计数域除以2。 从框116继续到菱形决策框116,或在测试结果为否定的情况下从菱形决策框114继续到菱形决策框116,驱动器控制器18确定新计数现在是否大于由与当前段有关的后向指针所指向的表项,即有序链表中次最高表项的计数。如果现在的计数较大,该逻辑移到框120,在这里将这两项在链表中的位置交换。然后循环返回到菱形决策框118,并重复执行,直至链表被适当地排序。 最后,图10示出的是针对图8和9的上述表实现,在状态122处进入的选择算法。在框124中,选择链表中顶部的表项(该项具有最高的计数)。移到菱形决策框126,确定这段中所有的擦洗单元是否已经擦洗。如果所有的单元已经擦洗,该逻辑移到框128,其中选择链表的下一段,然后回到菱形框126。如果在菱形决策框126中发现一个段中并不是所有单元已经得到擦洗,则进入框130以从该段中选择擦洗单元。 对于使用错误恢复过程(ERP)可恢复的错误,驱动器控制器18能够尝试将数据写回到原来的位置,然后读出该数据以确定它是否再次包含错误。如果还包含错误,则表明该物理位置被损坏。能够使用新模式页参数来控制这个选项。如果用户已经在它的模式页中指定了自动重新分配,则控制器18就将恢复的数据写到新的位置。当没有指定自动重新分配,但也没有指定在原位置进行重写时,恢复的数据能够存储在保护区域中,可以在随后出现不可恢复的错误时检查该保护区域以确定丢失的数据是否驻留在保护区域中。 虽然这里所示和详细描述的硬盘驱动器的自主数据擦洗的系统和方法完全能够达到本发明的上述目的,但是应当理解,它只是本发明当前提出的优选实施例,因此它只是本发明所广泛考虑的主题的代表,本发明的范围完全涵盖本领域技术人员可以想到的其它实施例,因此,本发明的范围仅受附加的权利要求的限制,其中对单数要件的引用不意味着“一个且唯一一个”,除非专门指出,而是表示“一个或多个”。用一种设备或方法解决本发明试图解决的每个问题是不必要的,因为它被本发明的权利要求所涵盖。而且,在本发明的公布中没有任何要件、部件或方法步骤是仅限于所公开内容的,无论元件、部件或方法步骤是否明确在权利要求中进行了叙述。这里没有任何权利要求要件将按照35U.S.C.’112,第六款的规定加以解释,除非该要件明确使用短语“用于...的装置”加以表述,或者在方法权利要求中,该要件被表述为“步骤”而不是“动作”。这里没有明确的定义,权利要求中的术语具有所有普通的和习惯的含义,其与本说明书和文件的历史是一致的。
《硬盘驱动器的自主数据擦洗系统及方法.pdf》由会员分享,可在线阅读,更多相关《硬盘驱动器的自主数据擦洗系统及方法.pdf(24页珍藏版)》请在专利查询网上搜索。
具有多个硬盘驱动器的RAID系统使其每个控制器自主地对其磁盘执行数据擦洗,而不是需要RAID控制器来执行数据擦洗。可以响应来自RAID控制器的I/O请求而中断该数据擦洗操作,或者如果没有达到有保证擦洗速率,可以继续擦洗。数据被存储于同心数据磁道的大段中,可以基于对该段的读取频率或写入该段的新近程度,优先选择对该段进行擦洗。 。
copyright@ 2017-2020 zhuanlichaxun.net网站版权所有经营许可证编号:粤ICP备2021068784号-1