CN1581055A - 使用4k块尺寸的hdd中处理写入的系统和方法 - Google Patents
使用4k块尺寸的hdd中处理写入的系统和方法 Download PDFInfo
- Publication number
- CN1581055A CN1581055A CNA2004100575005A CN200410057500A CN1581055A CN 1581055 A CN1581055 A CN 1581055A CN A2004100575005 A CNA2004100575005 A CN A2004100575005A CN 200410057500 A CN200410057500 A CN 200410057500A CN 1581055 A CN1581055 A CN 1581055A
- Authority
- CN
- China
- Prior art keywords
- piece
- ending
- cache memory
- data
- ecc
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/18—Error detection or correction; Testing, e.g. of drop-outs
- G11B20/1883—Methods for assignment of alternate areas for defective areas
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/10—Indexing scheme relating to G06F11/10
- G06F2211/1002—Indexing scheme relating to G06F11/1076
- G06F2211/1009—Cache, i.e. caches used in RAID system with parity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/10—Indexing scheme relating to G06F11/10
- G06F2211/1002—Indexing scheme relating to G06F11/1076
- G06F2211/109—Sector level checksum or ECC, i.e. sector or stripe level checksum or ECC in addition to the RAID parity calculation
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B2220/00—Record carriers by type
- G11B2220/20—Disc-shaped record carriers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
在使用大的块尺寸(例如4KB)来存储数据并响应于来自使用小的块尺寸(例如512字节)的客户端的读和写请求的磁盘驱动器中,至少被读取数据的起始和结尾4K块被高速缓冲存储。因为作为写请求的对象的大量磁盘数据首先被读取,在随后的写请求上,驱动器控制器确定起始和结尾块是否在高速缓冲存储器中,如果在,将新数据写到那些块上,为它们计算完整的ECC,然后为插入的块计算ECC并将新数据写入到插入的块中。如果起始和结尾块两者都不在高速缓冲存储器中,驱动器控制器执行由用户选择的高数据完整性例程和高性能例程。
Description
技术领域
本发明一般地涉及硬盘驱动器(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第六段的规定下解释,除非元素使用词语“…的装置”明确地陈述,或者在方法权利要求的情况下,元素陈述为“步骤”而不是“技术”。在这里缺省的明确定义,权利要求项将由不会和本说明书及文档历史矛盾的所有通常和惯常意义来给出。
Claims (16)
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。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/640,915 | 2003-08-14 | ||
US10/640,915 US7080200B2 (en) | 2003-08-14 | 2003-08-14 | System and method for handling writes in HDD using 4K block sizes |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1581055A true CN1581055A (zh) | 2005-02-16 |
CN1299193C CN1299193C (zh) | 2007-02-07 |
Family
ID=34136213
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004100575005A Expired - Fee Related CN1299193C (zh) | 2003-08-14 | 2004-08-13 | 使用4k块尺寸的hdd中处理写入的系统和方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7080200B2 (zh) |
JP (1) | JP2005063441A (zh) |
CN (1) | CN1299193C (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102866862A (zh) * | 2012-07-26 | 2013-01-09 | 浪潮电子信息产业股份有限公司 | 一种基于4k扇区硬盘性能优化的方法 |
WO2013023497A1 (en) * | 2011-08-18 | 2013-02-21 | International Business Machines Corporation | Indication of a destructive write via a notification from a disk drive that emulates blocks of a first block size within blocks of a second block size |
Families Citing this family (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7277986B2 (en) * | 2005-03-30 | 2007-10-02 | Emc Corporation | Sector-edge cache |
US7539924B1 (en) | 2005-11-15 | 2009-05-26 | Western Digital Technologies, Inc. | Disk drive implementing data path protection by encoding large host blocks into sub blocks |
JP4842719B2 (ja) * | 2006-06-28 | 2011-12-21 | 株式会社日立製作所 | ストレージシステム及びそのデータ保護方法 |
KR101332645B1 (ko) * | 2007-07-18 | 2013-11-25 | 삼성전자주식회사 | 하드 디스크 드라이브 컨트롤러 및 그를 구비하는 하드디스크 드라이브 |
US8024515B2 (en) * | 2007-12-07 | 2011-09-20 | Hitachi Global Storage Technologies Netherlands B.V. | Non-volatile cache in disk drive emulation |
US8014095B2 (en) * | 2007-12-28 | 2011-09-06 | Hitachi Global Storage Technologies, Netherlands, B.V. | Mixed format disk drive |
US7757113B2 (en) * | 2008-02-19 | 2010-07-13 | Lsi Corporation | Enhanced RAID level 3 |
JP5339817B2 (ja) | 2008-08-23 | 2013-11-13 | エイチジーエスティーネザーランドビーブイ | 異なるサイズのデータ・セクタによるインターフェースをサポートするディスク・ドライブ装置及びそのデータ・ライト方法 |
US8006027B1 (en) | 2008-09-11 | 2011-08-23 | Western Digital Technologies, Inc. | Method of staging small writes on a large sector disk drive |
US8255661B2 (en) * | 2009-11-13 | 2012-08-28 | Western Digital Technologies, Inc. | Data storage system comprising a mapping bridge for aligning host block size with physical block size of a data storage device |
US8285965B2 (en) * | 2009-11-20 | 2012-10-09 | Western Digital Technologies, Inc. | Aligning data storage device partition to boundary of physical data sector |
US8397107B1 (en) | 2009-12-11 | 2013-03-12 | Western Digital Technologies, Inc. | Data storage device employing data path protection using both LBA and PBA |
US8661193B1 (en) | 2010-10-29 | 2014-02-25 | Western Digital Technologies, Inc. | Disk drive with partial sector management |
US8578100B1 (en) | 2010-11-08 | 2013-11-05 | Western Digital Technologies, Inc. | Disk drive flushing write data in response to computed flush time |
JP2012113789A (ja) * | 2010-11-26 | 2012-06-14 | Buffalo Inc | ハードディスクドライブ装置およびその処理装置 |
US8539303B2 (en) * | 2010-12-20 | 2013-09-17 | Intel Corporation | Low overhead error correcting code protection for stored information |
US20120260034A1 (en) * | 2011-04-06 | 2012-10-11 | Hitachi, Ltd. | Disk array apparatus and control method thereof |
US8954668B2 (en) | 2011-05-23 | 2015-02-10 | International Business Machines Corporation | Writing of data of a first block size in a raid array that stores and mirrors data in a second block size |
US9043543B2 (en) | 2011-05-23 | 2015-05-26 | International Business Machines Corporation | Writing of new data of a first block size in a raid array that stores both parity and data in a second block size |
US9116788B2 (en) * | 2011-06-10 | 2015-08-25 | International Business Machines Corporation | Using extended asynchronous data mover indirect data address words |
US8990493B1 (en) | 2011-06-30 | 2015-03-24 | Western Digital Technologies, Inc. | Method and apparatus for performing force unit access writes on a disk |
US8654619B1 (en) | 2011-09-29 | 2014-02-18 | Western Digital Technologies, Inc. | Method and apparatus for operating a disk drive |
US8671250B2 (en) | 2011-12-15 | 2014-03-11 | Western Digital Technologies, Inc. | Data storage device generating redundancy for data path protection of a parity sector |
US9063838B1 (en) | 2012-01-23 | 2015-06-23 | Western Digital Technologies, Inc. | Data storage device shifting data chunks of alignment zone relative to sector boundaries |
US8996839B1 (en) | 2012-01-23 | 2015-03-31 | Western Digital Technologies, Inc. | Data storage device aligning partition to boundary of sector when partition offset correlates with offset of write commands |
US20130198843A1 (en) | 2012-01-26 | 2013-08-01 | International Business Machines Corporation | Antivirus scan during a data scrub operation |
US9213486B2 (en) * | 2012-02-22 | 2015-12-15 | International Business Machines Corporation | Writing new data of a first block size to a second block size using a write-write mode |
JP2014211800A (ja) * | 2013-04-19 | 2014-11-13 | 株式会社東芝 | データ記憶装置、ストレージコントローラおよびデータ記憶制御方法 |
US9727278B2 (en) * | 2013-06-13 | 2017-08-08 | Netapp, Inc. | System and methods for mitigating write emulation on a disk device using cache memory |
US8767327B1 (en) | 2013-06-20 | 2014-07-01 | HGST Netherlands B.V. | Heat-assisted magnetic recording (HAMR) disk drive and method for writing |
US8797669B1 (en) | 2013-08-30 | 2014-08-05 | Western Digital Technologies, Inc. | Disk drive executing rotational position optimization (RPO) algorithm to facilitate a read-modify-write operation |
JP6255893B2 (ja) | 2013-10-24 | 2018-01-10 | 富士通株式会社 | ストレージ制御装置、およびストレージ制御プログラム |
US10664479B2 (en) * | 2014-06-27 | 2020-05-26 | Sap Se | Accommodating concurrent changes in underlying data during reporting |
CN104461642A (zh) * | 2014-12-16 | 2015-03-25 | 浪潮电子信息产业股份有限公司 | 基于Linux系统下4K技术硬盘性能提升设定及性能检测的方法 |
US9842622B1 (en) | 2014-12-23 | 2017-12-12 | Western Digital Technologies, Inc. | Data storage device having improved read failure tolerance |
WO2020077283A1 (en) * | 2018-10-12 | 2020-04-16 | Supermem, Inc. | Error correcting memory systems |
US11182358B2 (en) | 2019-07-18 | 2021-11-23 | International Business Machines Corporation | Performance enhanced data scrubbing |
JP2023140541A (ja) | 2022-03-23 | 2023-10-05 | 株式会社東芝 | 磁気ディスク装置 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5394534A (en) * | 1992-09-11 | 1995-02-28 | International Business Machines Corporation | Data compression/decompression and storage of compressed and uncompressed data on a same removable data storage medium |
US5428630A (en) * | 1993-07-01 | 1995-06-27 | Quantum Corp. | System and method for verifying the integrity of data written to a memory |
US5813025A (en) * | 1994-08-10 | 1998-09-22 | Unisys Corporation | System and method for providing variable sector-format operation to a disk access system |
US5946328A (en) * | 1997-11-17 | 1999-08-31 | International Business Machines Corporation | Method and means for efficient error detection and correction in long byte strings using integrated interleaved Reed-Solomon codewords |
DE10009924B4 (de) * | 2000-03-01 | 2005-11-17 | Sauer-Danfoss Holding Aps | Einrichtung zur Dämpfung von Nickschwingungen eines motorgetriebenen Fahrzeugs |
US6944717B2 (en) * | 2001-07-27 | 2005-09-13 | Fujitsu Limited | Cache buffer control apparatus and method using counters to determine status of cache buffer memory cells for writing and reading data therefrom |
EP1280063A3 (en) | 2001-07-27 | 2005-03-30 | Fujitsu Limited | Cache control methods and apparatus for hard disk drives |
US6903887B2 (en) * | 2002-01-03 | 2005-06-07 | International Business Machines Corporation | Multiple level (ML), integrated sector format (ISF), error correction code (ECC) encoding and decoding processes for data storage or communication devices and systems |
-
2003
- 2003-08-14 US US10/640,915 patent/US7080200B2/en not_active Expired - Fee Related
-
2004
- 2004-08-11 JP JP2004234375A patent/JP2005063441A/ja active Pending
- 2004-08-13 CN CNB2004100575005A patent/CN1299193C/zh not_active Expired - Fee Related
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013023497A1 (en) * | 2011-08-18 | 2013-02-21 | International Business Machines Corporation | Indication of a destructive write via a notification from a disk drive that emulates blocks of a first block size within blocks of a second block size |
US8468312B2 (en) | 2011-08-18 | 2013-06-18 | International Business Machines Corporation | Indication of a destructive write via a notification from a disk drive that emulates blocks of a first block size within blocks of a second block size |
CN103748568A (zh) * | 2011-08-18 | 2014-04-23 | 国际商业机器公司 | 经由来自在第二块尺寸的块内仿真第一块尺寸的块的盘驱动器的通知对破坏性写入的指示 |
GB2507710A (en) * | 2011-08-18 | 2014-05-07 | Ibm | Indication of a destructive write via a notification from a disk drive that emulates blocks of a first block size within blocks of a second block size |
GB2507710B (en) * | 2011-08-18 | 2014-08-13 | Ibm | Indication of a destructive write via a notification from a disk drive that emulates blocks of a first block size within blocks of a second block size |
US8812798B2 (en) | 2011-08-18 | 2014-08-19 | International Business Machines Corporation | Indication of a destructive write via a notification from a disk drive that emulates blocks of a first block size within blocks of a second block size |
US9207883B2 (en) | 2011-08-18 | 2015-12-08 | International Business Machines Corporation | Indication of a destructive write via a notification from a disk drive that emulates blocks of a first block size within blocks of a second block size |
CN103748568B (zh) * | 2011-08-18 | 2016-01-06 | 国际商业机器公司 | 指示破坏性写入的方法和系统 |
US9372633B2 (en) | 2011-08-18 | 2016-06-21 | International Business Machines Corporation | Indication of a destructive write via a notification from a disk drive that emulates blocks of a first block size within blocks of a second block size |
CN102866862A (zh) * | 2012-07-26 | 2013-01-09 | 浪潮电子信息产业股份有限公司 | 一种基于4k扇区硬盘性能优化的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN1299193C (zh) | 2007-02-07 |
JP2005063441A (ja) | 2005-03-10 |
US7080200B2 (en) | 2006-07-18 |
US20050036381A1 (en) | 2005-02-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1299193C (zh) | 使用4k块尺寸的hdd中处理写入的系统和方法 | |
US7958331B2 (en) | Storage device with opportunistic address space | |
US9792054B2 (en) | Method and apparatus for optimizing the performance of a storage system | |
US10732898B2 (en) | Method and apparatus for accessing flash memory device | |
US8234466B2 (en) | Flash memory storage system applying SLC NAND flash memory and MLC NAND flash memory and data writing method thereof | |
CA2550871C (en) | File system having inverted hierarchical structure | |
EP2483785B1 (en) | Stripe-based memory operation | |
KR101086857B1 (ko) | 데이터 머지를 수행하는 반도체 스토리지 시스템의 제어 방법 | |
US8745310B2 (en) | Storage apparatus, computer system, and method for managing storage apparatus | |
US8898371B2 (en) | Accessing logical-to-physical address translation data for solid state disks | |
US8429358B2 (en) | Method and data storage device for processing commands | |
JP2004213647A (ja) | データ記憶装置およびシステム用のログ構造の書込みキャッシュ | |
KR20120115243A (ko) | 고체-상태 매체들을 포함하는 디바이스들을 위한 파일 관리 시스템 | |
CN1822217A (zh) | 将数据存储在非易失性高速缓冲存储器中的设备和方法 | |
EP2356658A1 (en) | System and method for recovering solid state drive data | |
JP2006216036A (ja) | フラッシュメモリを含んだデータ貯蔵装置及びそれのマージ方法 | |
JP2013544414A (ja) | トランザクションログの復元 | |
KR100526178B1 (ko) | 플래시 메모리 액세스 장치 및 방법 | |
US20090094299A1 (en) | Apparatus and method for defragmenting files on a hydrid hard disk | |
US20050076260A1 (en) | Raid consistency initialization method | |
US6693754B2 (en) | Method and apparatus for a disc drive adaptive file system | |
KR20220041225A (ko) | 메모리 구성요소의 동일한 평면 내에서 데이터 압축 | |
CN108255437B (zh) | 数据贮存装置及方法 | |
KR20120029239A (ko) | Pram을 이용하는 데이터 기록 시스템 및 그 방법 | |
JP2008198102A (ja) | データ処理システム、データ記憶装置、ハードディスク装置、およびデータ記憶装置におけるデータ管理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20070207 |