使用4k块尺寸的hdd中处理写入的系统和方法

文档序号:6763450阅读:109来源:国知局
专利名称:使用4k块尺寸的hdd中处理写入的系统和方法
技术领域
本发明一般地涉及硬盘驱动器(HDD),虽然不是专门地但特别地涉及独立磁盘冗余阵列(RAID)系统中的硬盘驱动器。
背景技术
自从早在二十年前固定块硬盘结构的引入,磁盘块或数据扇区的标准尺寸仍然保持不变,典型地按512字节,而一些专用驱动器按520和528字节。随着磁盘驱动器的记录密度不断增加,从而扇区占用的物理空间的量不断缩小。但是,如本发明所了解的,磁媒介上的物理缺陷的尺寸,例如划痕和污染物,并没有以相似比例缩小,如果不是根本没有缩小的话。因此,本发明认为,当缺陷在扇区中出现时,与原来的较小密度驱动器相比,其数据的更大部分被破坏。
为了对抗这种结果,需要更强大的差错校正码(ECC)方法。但是,更强大的ECC需要更多冗余,这意味着需要增加的磁盘存储空间百分比用于ECC而不是存储用户数据。如这里所了解的,为了避免这种数据格式化效率的降低,更强大的ECC可以应用于更大的块尺寸,以便在更多字节上摊销增加的冗余。此外,不管ECC有多么强大,为了校正起作用,数据块的基本部分必须是无差错的。缺陷跨越的字节数越多,数据块必须越大。由于这个缘故,本发明认识到,标准块尺寸应当增加到例如四千字节(4KB)。应当理解,虽然4KB在这里用于讨论,但是本发明并不局限于该块尺寸。
实现这种改变的一种方法是,将当前512字节的工业标准接口改变成4KB。可惜地,这将要求对操作系统软件和BIOS固件的普遍改变。
实现这种改变的另一种方法是,制造在内部实施4KB ECC块尺寸的磁盘驱动器。在外部,接口可以保持于今天的512字节块尺寸,而驱动器仿真512字节块尺寸接口。本发明认识到,这种仿真可以是直接且简单的。更特别地,对于读命令,驱动器简单地读取包含被请求的512字节块的那些自然4KB块,然后将被请求数据返回到主机。对于写命令,如果写数据碰巧是4KB的几倍,并且数据碰巧对准自然4KB块的边界,那么ECC可以为新数据简单地产生,并写入到磁盘上。但是,如这里所了解的,如果这两种情形的任何一种都不符合,那么新数据的开头和/或结尾部分地位于HDD的自然4KB块中,在这种情况下,驱动器必须首先读取前端4KB块和/或后端4KB块,将新数据插入到块中,为修改块产生ECC,并将所有新块写入到磁盘上。实际上要求额外驱动器转数的这种读-修改-写过程降低了驱动器性能。
更特别地,有两种方法用于在HDD中实施4KB ECC块。第一种方法是将自然扇区尺寸从512字节增加到4KB,并且4KB扇区的扇区ECC强于512字节扇区的扇区ECC。对于仍然使用512字节扇区接口的主机,这种4KB扇区在逻辑上是八个512字节逻辑扇区。该方法的4KB块在这里称作自然4KB块。第二种方法是保持512字节的自然扇区尺寸,并对增加数目的这种扇区集合体应用增加级别的ECC;第二级和更强大的ECC将被计算并添加到一组4个连续扇区;而第三级和更强大的ECC将被计算并添加到一组八个连续扇区。使用多个级别以及每个级别多个扇区的这种多级ECC方法称作集合扇区格式(ISF)。一组八个连续512字节ISF扇区将构成一个4KB ECC块(与所给出的实例中的第三级ECC相关联)。这种4KB块在这里称作ISF 4KB块。
如通过本发明认识到的,虽然单独地访问自然512字节扇区是可能的,但是ISF块必须作为整体来更新,以便正确地保持完整的多级ECC。在这里公开的本发明可适用于上述两种类型的4KB ECC块,并且所给出特征的一些仅可适用于ISF 4KB块。在下文中,块指的是自然4KB块或ISF 4KB块,除非另外地指定。

发明内容
本发明意识到一块数据经常在它写之前首先被读取。这发生在当记录被更新或用户文件(文本、绘图、演示文稿,图片,影片剪辑等)被编辑时。另外,冗余在多个驱动器(例如RAID 4,5和6)上计算的RAID应用中,对驱动器中一个的写入,在新数据和新奇偶性被写入之前,总是需要RAID控制器从该驱动器中读取老数据,以及从奇偶性驱动器中读取老奇偶性。
基于此认识,硬盘驱动器(HDD)包括至少一个存储磁盘,数据高速缓冲存储器,以及访问磁盘和高速缓冲存储器的驱动器控制器。驱动器控制器响应于从使用具有小于第一尺寸的第二尺寸(例如512字节)的块的系统接收的至少一个写请求,实施以具有第一尺寸(例如4KB)的块将至少一些数据存储到磁盘上的逻辑。驱动器的逻辑包括接收写数据请求,并确定与写数据的起始地址和结尾地址相关联的磁盘上至少起始块和结尾块。起始和结尾块具有第一块尺寸。写数据仅部分地填充起始块和结尾块。
接下来,逻辑确定至少起始块和结尾块是否在高速缓冲存储器中存在。如果起始和结尾块在高速缓冲存储器中存在,逻辑包括将与请求相关联的新数据写入到高速缓冲存储器中的起始块和结尾块的至少一个中以提供至少一个修改块,然后为该修改块产生差错校正码(ECC)。与请求相关联的新数据被写入到起始和结尾块之间的块中。
在优选实施方案中,如果起始和结尾块在高速缓冲存储器中存在,由驱动器控制器执行的逻辑还包括为起始块和结尾块之间的每个块产生ECC。起始和结尾块优选地根据磁盘上数据的读取版本保存在高速缓冲存储器中。
对于使用ISF的驱动器,如果起始和/或结尾ISF块在高速缓冲存储器中不存在,驱动器控制器可以执行高数据完整性例程或高性能例程来实现写数据请求。对于使用自然4KB块的HDD,如果起始和/或结尾块在高速缓冲存储器中不存在,高数据完整性例程总是被执行;而没有高性能例程的选项。由驱动器控制器执行的高数据完整性例程可以包括将起始块和结尾块从磁盘复制到高速缓冲存储器中,将与请求相关联的新数据写入到高速缓冲存储器中的起始和结尾块的至少一个中,以提供至少一个修改块,然后为该修改块产生差错校正码(ECC)。起始块和结尾块之间的每个块的ECC也被产生。与请求相关联的新数据和新ECC从起始块到结尾块被写入到磁盘上。
相反地,由ISF HDD的驱动器控制器执行的高性能例程可以包括确定起始ISF块或结尾ISF块是否在高速缓冲存储器中存在,并且当有一个在高速缓冲存储器中存在时,新数据写入到高速缓冲存储器中的ISF块中,然后为该ISF块产生完整的多级ECC。对于在高速缓冲存储器中不存在的每个起始和结尾ISF块,为该块的新扇区产生仅第一级ECC。
在另一个方面,硬盘驱动器控制器访问高速缓冲存储器以及数据以具有第一尺寸的块存储于其上的至少一个存储磁盘,并且驱动器控制器接收来自使用具有小于第一尺寸的第二尺寸的块的请求者的输入/输出请求。控制器包括用于接收对磁盘上被请求数据的读请求的装置。被请求数据部分地占用起始块和部分地占用结尾块。装置被提供来将起始块和结尾块以它们的整体复制到高速缓冲存储器中。控制器也具有用于接收将新数据写入到磁盘上的写请求的装置,其中新数据与被请求数据相关联。装置被提供来将新数据写入到起始和结尾块中,以提供至少一个修改块,当起始块和结尾块被确定处于高速缓冲存储器中时。控制器也具有为修改块产生差错校正码(ECC)的装置,以及将与请求相关的新数据写入到起始和结尾块之间的块中的装置。
在又一方面,硬盘驱动器控制器访问高速缓冲存储器以及包含以具有第一尺寸的块的数据的至少一个磁盘,并且控制器应答来自实施具有小于第一尺寸的第二尺寸的块的客户端的读请求和写请求。磁盘驱动器控制器执行逻辑,逻辑包括根据对仅部分地填充起始和结尾块的数据的读请求,将起始块和结尾块以它们的整体存储到高速缓冲存储器中。对于请求数据的随后写请求,控制器确定起始块和结尾块是否在高速缓冲存储器中,如果在,控制器将与写请求相关联的新数据写入到起始和结尾块中以提供修改块,完整的差错校正码(ECC)为该修改块而产生。


本发明的细节、关于器结构和操作,可以参考附图来最好地理解,在附图中相似参考数字指的是相似部分,并且其中图1是在一种计划环境中的本发明HDD的框图;图2是HDD的框图;图3是显示被请求数据的逻辑块地址(LBA)的示意图;图4是显示执行读请求的逻辑的流程图;图5是显示执行写请求的逻辑的流程图;图6是显示当被请求的写数据不在高速缓冲存储器中时确定图7和8的哪一个被使用的逻辑的流程图;图7是显示关于非高速缓冲存储的数据执行写请求同时保持高数据完整性的逻辑的流程图;图8是显示关于非高速缓冲存储的数据执行写请求同时保持高性能的逻辑的流程图;以及图9是显示基本的数据擦拭回路的逻辑的流程图。
具体实施例方式
首先参考图1,一般地特指为10的RAID系统被显示,其包括RAID控制器12,RAID控制器12与一个或多个客户端处理器14通信以存储和获取使用相对小的块尺寸例如512字节的多个硬盘驱动器16上的数据。图2显示本发明的硬盘驱动器16包括驱动器控制器18,其响应于来自使用相对大的块尺寸例如四千字节(4KB)的RAID控制器12的请求,读出和写入数据到一个或多个数据存储磁盘20上。每个HDD 16也可以包括根据本领域中已知HDD原理的如所示的固态数据高速缓冲存储器22。在优选的非限制性实施方案中,执行这里的逻辑的驱动控制器18的部分是内部驱动器控制电子学,而不是外部主机总线适配器控制电子学。
图3显示起始和结尾4KB块24,26,以及跨越在起始和结尾块24,26之间的被请求的连续扇区28。在大部分情况下,作为读请求或写请求的对象的数据(与512字节扇区的所谓逻辑块地址(“LBA”)相关联)仅部分地填充起始和结尾块24,26,如由图3的交叉影线区域所示的,并且被请求的起始扇区的地址标注为“Start LBA”30,而被请求的结尾扇区的地址标注为“End LBA”32,并且就是在这些情况下,本发明找到特别的有效性。对于小请求例如一个或两个512字节扇区,起始块24和结尾块26可以是同一块。
在任何情况下,与客户或用户例如图1中所示的RAID控制器12所使用的HDD-主机接口块的尺寸(例如512字节)相比,HDD内部块24,26的尺寸相对大,例如为4KB,如在图3中以34指示的。如图3中所示的,起始块24具有起始地址36,其在图3中表示为“StartLBA”,而结尾块26具有结尾地址38,其在图3中表示为“EndLBA”。也就是,在优选实施方案中,Start LBA 30处于关于例如八个512字节扇区的具有Start LBA’36的优选4KB块中,并且End LBA 32处于关于八个扇区的具有End LBA’38的4KB块中。
图4显示执行读请求的驱动器控制器18的逻辑,在这里应当认识到,根据上面的公开内容,作为写请求的对象的数据经常首先被读出。在状态40处开始,读请求到达HDD。驱动器控制器18在方框42确定读请求的Start LBA 30和End LBA 32。接着,在方框44,确定包含Start LBA 30的起始块24的Start LBA’36,接下来是方框46,在那里确定包含End LBA 32的结尾块26的End LBA’38。然后,逻辑进行到方框48,其中驱动器控制18从磁盘中读取在Start LBA’36和EndLBA’38之间的所有512字节扇区,包括Start LBA’36和End LBA’38在内。在方框50,驱动器控制器18至少将整个起始块24和整个结尾块26存储到高速缓冲存储器22中。如果希望的话,起始块24和结尾块26之间的块也可以通过驱动器控制器18保存在高速缓冲存储器22中。
对于ISF驱动器,上面的逻辑必须慎重地由控制器18执行,因为有可能读取单独的512字节块。对于使用自然块尺寸真实地是4KB的其他ECC模式的驱动器,上面的逻辑自然地发生,因为驱动器16不能读取小于4KB。如果被请求数据的尺寸是小的,当控制器将正常地高速缓冲存储读请求数据时,上舍入成包括起始和结尾块的整个读请求可以存储到高速缓冲存储器中。相反,如果被请求数据的尺寸是大的,其中控制器18通常不会高速缓冲读请求数据,仅起始和结尾块24,26需要被高速缓冲。
图5显示执行写请求的驱动器控制器18的逻辑。在状态52处开始,写请求到达驱动器控制器18。驱动器控制器18在方框54确定作为写请求对象的数据的Start LBA 30和End LBA 32。接着,在方框56,逻辑确定起始块24的Start LBA’36和结尾块26的End LBA’38。
进行到判定菱形58,确定整个起始块24是否能够在高速缓冲存储器22中找到。如果不能,逻辑在状态60处结束,指示着搜索的块不在高速缓冲存储器22中,以进行在下面参考图6而描述的进一步处理。否则,逻辑进行到方框62,将写请求的起始扇区插入到在高速缓冲存储器22中的起始块24中,替换相应的原扇区。然后,新的、优选地完整的ECC根据本领域中已知的ECC原则,为修改的起始块而产生。
进行到判定菱形64,驱动器控制器18接着确定整个结尾块26是否能够在高速缓冲存储器22中找到。如果不能,逻辑在状态60处结束,否则逻辑流向方框66,其中写请求的结尾扇区插入到在高速缓冲存储器22中的结尾块26中,替换相应的原扇区。新的,优选地完整的ECC为修改的结尾块而产生。
逻辑从方框66移到方框68,其中驱动器控制器18的逻辑为起始块24和结尾块26之间的所有新数据块产生完整ECC。优选地,在方框68的步骤之后,在方框70,从Start LBA’36到End LBA’38的所有扇区,包括Start LBA’36和End LBA’38在内,连同全部新的ECC被写出到磁盘20上。
上述的写方法导致非常小的开销,但是将使驱动器避免必须执行写请求的读(从磁盘)-修改-写,当那些写请求的前面是对相同地址的读请求时,例如在RAID和许多典型用户应用的情况中。
现在参考图6,当到达图5中的状态60(起始和结尾块24,26的任一个或两者没有在高速缓冲存储器22中找到来为写数据产生完整ECC)时,逻辑在状态72处开始,并移到判定菱形74,其中确定用户已选择高数据完整性还是高性能。高性能选项仅对于ISF驱动器可用,而对于自然4KB块的驱动器不可用。该选择可以当驱动器控制器18被用户首次安装时执行,或者驱动器控制器18可以具有缺省设置。如果高数据完整性被选择,驱动器控制器18进行到状态76,以执行图7的逻辑;否则,对于高性能选择,控制器18移到状态78以执行图8和9的逻辑。
图7的高数据完整性逻辑在状态80处开始,并进行到方框82,以从磁盘中读取缺少的起始和/或结尾块到高速缓冲存储器22中。移到方框84,驱动器控制器18通过将写请求的起始扇区插入到在高速缓冲存储器中的起始块中替换相应的原扇区来修改起始块,并且新的ECC为该修改起始块产生。在方框86,驱动器控制器18通过将写请求的结尾扇区插入到在高速缓冲存储器中的结尾块中替换相应的原扇区来修改结尾块,并且新的ECC为该修改结尾块产生。然后,驱动器控制器18移到方框88,在那里为起始块和结尾块之间的全部新数据块产生ECC。最后,在方框90,从Start LBA’到End LBA’的所有扇区,包括StartLBA’和End LBA’在内,连同所有新的ECC,被写出到磁盘上。
在上述高数据完整性逻辑中,读-修改-写被执行,从而导致性能损失,但是保护4KB ECC的数据可靠性特征。
相反地,仅可用于ISF驱动器的图8的高性能逻辑在状态92处开始,并进行到判定菱形94,以确定与待写入数据相关联的整个起始ISF块24是否能够在高速缓冲存储器22中找到。如果不能,逻辑移到方框96,以根据本领域中已知的ECC级别原则为起始ISF块的新扇区产生仅第一级ECC。不为起始ISF块产生完整ECC,因为不是所有必需的扇区都在高速缓冲存储器22中可获得。另外,在方框96,持有者变量“SLBA”设置为Start LBA 30。
当与待写入数据相关联的整个起始ISF块24能够在高速缓冲存储器22中找到,逻辑从判定菱形94移到方框98,其中写请求的起始扇区插入到在高速缓冲存储器22中的起始ISF块24中,替换相应的原扇区。也为修改起始ISF块产生完整(所有级别)的新ECC。另外,在方框98,SLBA设置为Start LBA’36。
从方框96或98,逻辑移到判定菱形100,以确定与待写入数据相关联的整个结尾ISF块26是否能够在高速缓冲存储器22中找到。如果不能,逻辑移到方框102,为结尾ISF块的新扇区产生仅第一级ECC。另外,在方框102处,持有变量“ELBA”设置为End LBA 32。
当整个结尾ISF块26能够在高速缓冲存储器22中找到时,逻辑从判定菱形100移到方框104,其中写请求的结尾扇区插入到在高速缓冲存储器22中的结尾ISF块26中,替换相应的原扇区。也为修改的结尾ISF块产生完整(所有级别)新ECC。另外,在方框104,ELBA设置为End LBA’38。
进行到方框106,驱动器控制器18为起始块和结尾块之间新数据的所有ISF块产生完整的多级ECC。最后,在方框108,从SLBA到ELBA的所有扇区,包括SLBA和ELBA在内,被写出到磁盘上。
因为当图8的高性能选项被选择时,不是所有块都产生它们的完整多级ECC,自主的后台处理优选地用于在驱动器控制器18的空闲时间里擦拭磁盘,以寻找这些块,并更新它们的ECC。整个驱动器16存储空间在逻辑上分块成许多小的数据擦拭单元。这些单元可以是固定尺寸的或可变尺寸的。为了效率,擦拭单元优选地应当是至少512个扇区。优选实施方案使用物理轨道作为数据擦拭单元。这样,当进行擦拭读取时,零等待时间读取技术(即磁头一处于轨道上就开始读取)能够容易地实施,使得旋转等待时间开销可以消除。对应于这些擦拭数据单元的位映像可以用来保存单元已被擦拭的轨道,但是任何其他方法也可以使用。在每个擦拭循环的起始,位映像被重新设置。
基本擦拭循环在图9中显示。以状态110开始,逻辑移到方框112,其中待擦拭的下一个数据单元被选择,然后在方框114被驱动器控制器18读取。在判定菱形116,确定具有过时ECC的任何ISF块是否冲突,如果冲突,在方框118为这些扇区产生新的多级ECC。具有它们新的多级ECC的那些块被写出到磁盘上。在方框120,驱动器控制器18更新数据单元已被擦拭的它的列表(或位映像)。在方框122,驱动器控制器18确定整个磁盘20是否已被擦拭,如果不是,逻辑循环回到方框112。如果整个磁盘已被擦拭,逻辑循环回到方框110来开始新的擦拭循环。
在图8中所示的高性能逻辑的ISF驱动器的情况下,因为单独512字节扇区可以被读取和写入,驱动器可以进行到仅写入被更新的扇区,产生第一级ECC,但不更新第二和第三级ECC。这种ECC部分更新将不会导致任何性能损失,因为读-修改-写不被执行,虽然4KB ECC的数据可靠性特征将暂时对于这些块失效。由于部分更新的ECC/CRC检查,错误检测被担保。随后,后台擦拭处理可以扫描磁盘,并完整地更新那些ECC还没有正确更新的块,从而恢复这些块的完整数据可靠性特征。
现在应当认识到,本发明在HDD中具体实施。HDD所连着的主机并不知道HDD实施大块的ECC,因此不需要以任何方式修改。换句话说,主机可以继续使用今天的标准接口来工作。
虽然在这里显示并详细描述的具体的“使用4K块尺寸的驱动器控制器中用于处理写入的系统和方法”完全能够达到本发明的上述目的,应当明白,它是本发明的当前优选实施方案,因此是本发明所广泛考虑的主旨的代表,本发明的范围完全包括可能对于本领域技术人员是显然的其他实施方案,因此本发明的范围不是由别的而是附加权利要求书来限定,其中以单数提到的元件并不是指“一个和仅一个”,除非明确地这么说,而是指“一个或多个”。装置或方法不需要满足本发明所设法解决的各个和每个问题,因为它将被本权利要求所包括。此外,本公开内容中的任何元件,组件和方法步骤都不打算献给公众,不管该元件,组件或方法步骤是否在权利要求书中明确陈述。这里的权利要求元素都不是在35 U.S.C‘112第六段的规定下解释,除非元素使用词语“…的装置”明确地陈述,或者在方法权利要求的情况下,元素陈述为“步骤”而不是“技术”。在这里缺省的明确定义,权利要求项将由不会和本说明书及文档历史矛盾的所有通常和惯常意义来给出。
权利要求
1.一种硬盘驱动器(HDD)包括至少一个存储磁盘;至少一个数据高速缓冲存储器;以及访问磁盘和高速缓冲存储器的驱动器控制器,驱动器控制器实施响应于从使用具有小于第一尺寸的第二尺寸的块的系统接收到的至少一个写请求,将至少一些数据以具有第一尺寸的块存储到磁盘上的逻辑,该逻辑包括接收至少一个写数据请求;识别与磁盘上的数据版本相关联的至少起始块和结尾块,起始块和结尾块具有第一尺寸,磁盘上数据版本的一部分仅部分地填充起始块和结尾块;确定至少起始和结尾块是否在高速缓冲存储器中存在;以及如果起始和结尾块在高速缓冲存储器中存在将与请求相关联的新数据写入到在高速缓冲存储器中的起始和结尾块的至少一个中,以提供至少一个修改块;为该修改块产生差错校正码(ECC);将与请求相关联的新数据写入到至少起始和结尾块之间的块中。
2.根据权利要求1的HDD,其中如果起始和结尾块在高速缓冲存储器中存在,由驱动器控制器执行的逻辑还包括为起始块和结尾块之间的所有块产生ECC。
3.根据权利要求1的HDD,其中起始和结尾块根据磁盘上数据的读取版本来保存在高速缓冲存储器中。
4.根据权利要求1的HDD,其中如果起始和结尾块在高速缓冲存储器中不存在,驱动器控制器执行高数据完整性例程和高性能例程的至少一个来完成写数据请求。
5.根据权利要求4的HDD,其中由驱动器控制器执行的高数据完整性例程包括将起始块和结尾块从磁盘中复制到高速缓冲存储器中;将与请求相关联的新数据写入到高速缓冲存储器中的起始和结尾块的至少一个中,以提供至少一个修改块;为该修改块产生差错校正码(ECC);为起始块和结尾块之间的所有块产生ECC;以及将与请求相关联的新数据写入到至少起始和结尾块之间的块中。
6.根据权利要求4的HDD,其中驱动器控制器是ISF驱动器控制器,并且由ISF驱动器控制器执行的高性能例程包括确定起始块和结尾块的至少一个是否在高速缓冲存储中存在;对于在高速缓冲存储器中存在的每个起始和结尾ISF块,将新数据写入到块中,然后为该块产生完整的多级ECC;以及对于在高速缓冲存储器中不存在的每个起始和结尾ISF块,为该块产生仅第一级ECC。
7.一种访问至少一个高速缓冲存储器以及数据以具有第一尺寸的块存储于其上的至少一个存储磁盘的硬盘驱动器控制器,该驱动器控制器接收来自使用具有小于第一尺寸的第二尺寸的块的请求者的输入/输出请求,包括用于接收对磁盘上的被请求数据的至少一个读请求的装置,被请求数据部分地占用起始块并部分地占用结尾块;用于将至少起始块和结尾块以它们的整体复制到高速缓冲存储器中的装置;用于接收将新数据写到磁盘上的写请求的装置,其中新数据与被请求数据相关联;如果起始块和结尾块被确定处于高速缓冲存储器中,用于将至少一些新数据写入到起始和结尾块的至少一个中,以提供至少一个修改块的装置;用于为修改块产生差错校正码(ECC)的装置;以及用于将与请求相关联的新数据写入到至少起始和结尾块之间的块中的装置。
8.根据权利要求7的硬盘驱动器控制器,还包括如果起始和结尾块在高速缓冲存储器中存在,为起始块和结尾块之间的所有块产生ECC的装置。
9.根据权利要求7的硬盘驱动器控制器,还包括如果起始和结尾块在高速缓冲存储器中不存在,执行高数据完整性例程和高性能例程的至少一个,以完成写数据请求的装置。
10.根据权利要求9的硬盘驱动器控制器,其中用于执行高数据完整性例程的装置包括用于将起始块和结尾块的至少一个从磁盘中复制到高速缓冲存储器中的装置;用于将与请求相关联的新数据写入到在高速缓冲存储器中的起始和结尾块的至少一个中,以提供至少一个修改块的装置;用于为修改块产生差错校正码(ECC)的装置;用于为起始块和结尾块之间的所有块产生ECC的装置;以及用于将与请求相关联的新数据写入到至少起始和结尾块之间的块中的装置。
11.根据权利要求9的硬盘驱动器控制器,其中用于执行高性能例程的装置包括用于确定起始块、作为起始ISF块的起始块、结尾块、以及作为结尾ISF块的结尾块的至少一个是否在高速缓冲存储器中存在的装置;用于对高速缓冲存储器中存在的每个起始和结尾ISF块,将新数据写入到块上,然后为ISF块产生完整的多级ECC的装置;以及用于对高速缓冲存储器中不存在的每个起始和结尾ISF块,为ISF块产生仅第一级ECC的装置。
12.一种访问至少一个数据高速缓冲存储器以及包含具有第一尺寸的块的数据的至少一个磁盘的硬盘驱动器控制器,控制器响应来自实施具有小于第一尺寸的第二尺寸的块的客户端的读请求和写请求,该磁盘驱动器控制器执行逻辑,包括根据对仅部分地填充起始和结尾块的数据的读请求,将至少起始块和结尾块以它们的整体存储到高速缓冲存储器中;对于随后要求至少一些数据的写请求,确定起始块和结尾块是否在高速缓冲存储器中,如果在,将与写请求相关联的新数据写入到起始和结尾块的至少一个中,以提供至少一个修改块,然后为修改块产生完整的差错校正码(ECC)。
13.根据权利要求12的控制器,还包括将与写请求相关联的新数据写入到至少起始和结尾块之间的块中,并且为起始块和结尾块之间的所有块产生ECC。
14.根据权利要求12的控制器,其中如果起始和结尾块在高速缓冲存储器中不存在,控制器执行高数据完整性例程和高性能例程的至少一个,以完成写数据请求。
15.根据权利要求14的控制器,其中由驱动器控制器执行的高数据完整性例程包括将起始块和结尾块从磁盘中复制到高速缓冲存储器中;将与写请求相关联的新数据写入到在高速缓冲存储器中的起始和结尾块的至少一个中,以提供至少一个修改块;为该修改块产生差错校正码(ECC);为起始块和结尾块之间的所有块产生ECC;以及将与请求相关联的新数据写入到至少起始和结尾块之间的块中。
16.根据权利要求14的控制器,其中由驱动器控制器执行的高性能例程包括确定起始ISF块和结尾ISF块的至少一个是否在高速缓冲存储器中存在;对在高速缓冲存储器中存在的每个起始和结尾ISF块,将新数据写到块上,然后为ISF块产生完整的多级ECC;以及为在高速缓冲存储器中不存在的每个起始和结尾ISF块,为ISF块产生仅第一级ECC。
全文摘要
在使用大的块尺寸(例如4KB)来存储数据并响应于来自使用小的块尺寸(例如512字节)的客户端的读和写请求的磁盘驱动器中,至少被读取数据的起始和结尾4K块被高速缓冲存储。因为作为写请求的对象的大量磁盘数据首先被读取,在随后的写请求上,驱动器控制器确定起始和结尾块是否在高速缓冲存储器中,如果在,将新数据写到那些块上,为它们计算完整的ECC,然后为插入的块计算ECC并将新数据写入到插入的块中。如果起始和结尾块两者都不在高速缓冲存储器中,驱动器控制器执行由用户选择的高数据完整性例程和高性能例程。
文档编号G11B20/12GK1581055SQ200410057500
公开日2005年2月16日 申请日期2004年8月13日 优先权日2003年8月14日
发明者马丁·A.·哈森纳, 理查德·M.·H·纽, 斯潘塞·W.·宁 申请人:日立环球储存科技荷兰有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1