使用4K块尺寸的HDD中处理写入的系统和方法技术方案

技术编号:2865869 阅读:284 留言:0更新日期:2012-04-11 18:40
在使用大的块尺寸(例如4KB)来存储数据并响应于来自使用小的块尺寸(例如512字节)的客户端的读和写请求的磁盘驱动器中,至少被读取数据的起始和结尾4K块被高速缓冲存储。因为作为写请求的对象的大量磁盘数据首先被读取,在随后的写请求上,驱动器控制器确定起始和结尾块是否在高速缓冲存储器中,如果在,将新数据写到那些块上,为它们计算完整的ECC,然后为插入的块计算ECC并将新数据写入到插入的块中。如果起始和结尾块两者都不在高速缓冲存储器中,驱动器控制器执行由用户选择的高数据完整性例程和高性能例程。

【技术实现步骤摘要】

本专利技术一般地涉及硬盘驱动器(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)的装置,以及将与请求相关的新数据写入到起始和结尾块之间的块中的装置。在又一方面,硬盘驱动器控制器访问高速缓冲存储器以及包含以具有第一尺寸的块的数据的至少一个磁盘,并且控制器应答来自实施具有小于第一尺寸的第二尺寸的块的客户端的读请求和写请求本文档来自技高网
...

【技术保护点】
一种硬盘驱动器(HDD)包括:至少一个存储磁盘;至少一个数据高速缓冲存储器;以及访问磁盘和高速缓冲存储器的驱动器控制器,驱动器控制器实施响应于从使用具有小于第一尺寸的第二尺寸的块的系统接收到的至少一个写请求,将至少一些数据以具有第一尺寸的块存储到磁盘上的逻辑,该逻辑包括:接收至少一个写数据请求;识别与磁盘上的数据版本相关联的至少起始块和结尾块,起始块和结尾块具有第一尺寸,磁盘上数据版本的一部分仅部分地填充起始块和结尾块;确定至少起始和结尾块是否在高速缓冲存储器中存在;以及如果起始和结尾块在高速缓冲存储器中存在:将与请求相关联的新数据写入到在高速缓冲存储器中的起始和结尾块的至少一个中,以提供至少一个修改块;为该修改块产生差错校正码(ECC);将与请求相关联的新数据写入到至少起始和结尾块之间的块中。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:马丁A哈森纳理查德MH纽斯潘塞W宁
申请(专利权)人:日立环球储存科技荷兰有限公司
类型:发明
国别省市:NL[荷兰]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1