《使用写入写入模式向第二块大小写入第一块大小的新数据.pdf》由会员分享,可在线阅读,更多相关《使用写入写入模式向第二块大小写入第一块大小的新数据.pdf(24页珍藏版)》请在专利查询网上搜索。
1、10申请公布号CN104137082A43申请公布日20141105CN104137082A21申请号201380010410822申请日2013012913/402,46520120222USG06F12/0020060171申请人国际商业机器公司地址美国纽约阿芒克72发明人D莫特尔R加尔布雷思74专利代理机构北京市金杜律师事务所11256代理人酆迅孙新国54发明名称使用写入写入模式向第二块大小写入第一块大小的新数据57摘要提供用于写入第一块大小的新数据的装置和方法。一种具体方法可以包括从数据驱动的第二块大小的目的地块向第二块大小的第一缓冲器写入旧数据。可以根据旧数据的地址信息写入旧数据而未。
2、改写在第一缓冲器中的新数据。该方法还可以包括根据旧数据的地址信息向第二块大小的第二缓冲器写入零。在第二缓冲器中写入的零可以与在第一缓冲器中写入的旧数据对应。30优先权数据85PCT国际申请进入国家阶段日2014082186PCT国际申请的申请数据PCT/IB2013/0507522013012987PCT国际申请的公布数据WO2013/124753EN2013082951INTCL权利要求书4页说明书13页附图6页19中华人民共和国国家知识产权局12发明专利申请权利要求书4页说明书13页附图6页10申请公布号CN104137082ACN104137082A1/4页21一种用于写入第一块大小的数。
3、据的方法,所述方法包括存储控制器从数据驱动的第二块大小的目的地块向所述第二块大小的第一缓冲器写入旧数据,其中根据所述旧数据的地址信息写入所述旧数据,并且所述第一块包括新数据;以及所述存储控制器根据所述旧数据的所述地址信息向所述第二块大小的第二缓冲器写入零,其中在所述第二缓冲器中写入的所述零与在所述第一缓冲器中写入的所述旧数据对应。2根据权利要求1所述的方法,还包括所述存储控制器从主机接收所述新数据,所述主机具有配置为访问所述第一块大小的块的操作系统;以及所述存储控制器根据所述第一块大小的所述新数据的地址信息向所述第二块大小的所述第一缓冲器写入所述新数据。3根据权利要求2所述的方法,还包括所述存。
4、储控制器从所述数据驱动的所述目的地块读取所述旧数据;所述存储控制器读取所述第一缓冲器;所述存储控制器XOR所述第一缓冲器与来自所述数据驱动的所述目的地块的所述旧数据以生成XOR乘积;以及所述存储控制器根据所述新数据的所述地址信息向所述第二块大小的所述第二缓冲器写入所述XOR乘积,其中在所述第二缓冲器中写入的所述XOR乘积与在所述第一缓冲器中写入的所述新数据对应。4根据权利要求3所述的方法,还包括所述存储控制器向所述第二块大小的所述数据驱动的所述目的地块写入所述第一缓冲器,其中所述第一缓冲器包括所述新数据和向所述第一缓冲器写入的所述旧数据二者;所述存储控制器根据P奇偶位的地址信息从所述第二块大小。
5、的P奇偶位驱动读取所述P奇偶位;所述存储控制器读取所述第二缓冲器;所述存储控制器XOR所述第二缓冲器与来自所述P奇偶位驱动的所述P奇偶位以生成新P奇偶位;所述存储控制器向所述第二块大小的第三缓冲器写入所述新P奇偶位;以及所述存储控制器向所述P奇偶位驱动写入所述第三缓冲器。5根据权利要求4所述的方法,其中所述数据驱动和所述P奇偶位驱动被配置为RAID5。6根据权利要求3所述的方法,还包括所述存储控制器向所述第二块大小的所述数据驱动的所述目的地块写入所述第一缓冲器,其中所述第一缓冲器包括所述新数据和向所述第一缓冲器写入的所述旧数据二者;所述存储控制器根据P奇偶位的地址信息从所述第二块大小的P奇偶位。
6、驱动读取所述P奇偶位;所述存储控制器读取所述第二缓冲器;所述存储控制器对于所述第二缓冲器执行有限字段乘法以生成有限字段乘法数据;权利要求书CN104137082A2/4页3所述存储控制器XOR所述字段乘法数据与来自所述P奇偶位驱动的所述P奇偶位以生成新P奇偶位;所述存储控制器向所述第二块大小的第三缓冲器写入所述新P奇偶位;所述存储控制器向所述P奇偶位驱动写入所述第三缓冲器;所述存储控制器根据Q奇偶位的所述地址信息从所述第二块大小的Q奇偶位驱动读取所述Q奇偶位;所述存储控制器读取所述第二缓冲器;所述存储控制器对于所述第二缓冲器执行有限字段乘法以生成附加有限字段乘法数据;所述存储控制器XOR所述字。
7、段乘法数据与来自所述Q奇偶位驱动的所述Q奇偶位以生成新Q奇偶位;所述存储控制器向所述第二块大小的第四缓冲器写入所述新Q奇偶位;以及所述存储控制器向所述Q奇偶位驱动写入所述第四缓冲器。7根据权利要求6所述的方法,其中所述数据驱动、所述P奇偶位驱动和所述Q奇偶位驱动被配置为RAID6。8根据前述权利要求中的任一权利要求所述的方法,其中所述第一块大小约为512字节并且所述第二块大小约为4千字节。9根据前述权利要求中的任一权利要求所述的方法,还包括基于所述存储控制器比较所述第一块大小与所述第二块大小或门限中的至少一个来确定是否向所述第一缓冲器写入所述旧数据而向所述第二缓冲器写入零。10根据前述权利要求。
8、中的任一权利要求所述的方法,其中所述第一块大小小于所述第二块大小,还包括所述存储控制器指示向所述第一缓冲器写入所述旧数据而向所述第二缓冲器写入零。11一种装置,包括存储器;以及处理器,被配置为执行访问所述存储器的第一过程,其中所述处理器还被配置为写入第一块大小的新数据,所述装置包括写入装置,用于从数据驱动的第二块大小的目的地块向所述第二块大小的第一缓冲器写入旧数据,其中根据所述旧数据的地址信息写入所述旧数据,并且所述第一块包括所述新数据,并且所述写入装置还可操作用于根据所述旧数据的所述地址信息向所述第二块大小的第二缓冲器写入零,其中在所述第二缓冲器中写入的所述零与在所述第一缓冲器中写入的所述旧。
9、数据对应。12根据权利要求11所述的装置,其中所述装置还包括接收装置,用于从主机接收所述新数据,所述主机具有配置为访问所述第一块大小的块的操作系统;以及写入装置,用于根据所述第一块大小的所述新数据的地址信息向所述第二块大小的所述第一缓冲器写入所述新数据。13根据权利要求12所述的装置,其中所述装置还包括读取装置,用于从所述数据驱动的所述目的地块读取所述旧数据;权利要求书CN104137082A3/4页4所述读取装置还可操作用于读取所述第一缓冲器;XOR装置,用于XOR所述第一缓冲器与来自所述数据驱动的所述目的地块的所述旧数据以生成XOR乘积;以及所述写入装置还可操作用于根据所述新数据的所述地址。
10、信息向所述第二块大小的所述第二缓冲器写入所述XOR乘积,其中在所述第二缓冲器中写入的所述XOR乘积与在所述第一缓冲器中写入的所述新数据对应。14根据权利要求13所述的装置,其中所述装置还包括所述写入装置还可操作用于向所述第二块大小的所述数据驱动的所述目的地块写入所述第一缓冲器,其中所述第一缓冲器包括所述新数据和向所述第一缓冲器写入的所述旧数据二者;所述读取装置还可操作用于根据P奇偶位的地址信息从所述第二块大小的P奇偶位驱动读取所述P奇偶位;所述读取装置还可操作用于读取所述第二缓冲器;XOR装置,用于XOR所述第二缓冲器与来自所述P奇偶位驱动的所述P奇偶位以生成新P奇偶位;所述写入装置还可操作用。
11、于向所述第二块大小的第三缓冲器写入所述新P奇偶位;以及所述写入装置还可操作用于向所述P奇偶位驱动写入所述第三缓冲器。15根据权利要求13所述的装置,其中所述装置还包括所述写入装置还可操作用于向所述第二块大小的所述数据驱动的所述目的地块写入所述第一缓冲器,其中所述第一缓冲器包括所述新数据和向所述第一缓冲器写入的所述旧数据二者;所述读取装置还可操作用于根据P奇偶位的地址信息从所述第二块大小的P奇偶位驱动读取所述P奇偶位;所述读取装置还可操作用于读取所述第二缓冲器;执行装置,用于对于所述第二缓冲器执行有限字段乘法以生成有限字段乘法数据;XOR装置,用于XOR所述字段乘法数据与来自所述P奇偶位驱动的所。
12、述P奇偶位以生成新P奇偶位;所述写入装置还可操作用于向所述第二块大小的第三缓冲器写入所述新P奇偶位;所述写入装置还可操作用于向所述P奇偶位驱动写入所述第三缓冲器;所述读取装置还可操作用于根据Q奇偶位的所述地址信息从所述第二块大小的Q奇偶位驱动读取所述Q奇偶位;所述读取装置还可操作用于读取所述第二缓冲器;对于所述第二缓冲器执行有限字段乘法以生成附加有限字段乘法数据;XOR装置,用于XOR所述字段乘法数据与来自所述Q奇偶位驱动的所述Q奇偶位以生成新Q奇偶位;所述写入装置还可操作用于向所述第二块大小的第四缓冲器写入所述新Q奇偶位;以及所述写入装置还可操作用于所述存储控制器向所述Q奇偶位驱动写入所述第。
13、四缓冲权利要求书CN104137082A4/4页5器。16根据权利要求11所述的装置,其中所述第一块大小约为512字节并且所述第二块大小约为4千字节。17根据权利要求11至16中的任一权利要求所述的装置,其中所述装置还包括确定装置,用于基于比较所述第一块大小和所述第二块大小或门限中的至少一个来确定是否向所述第一缓冲器写入所述旧数据而向所述第二缓冲器写入零。18根据权利要求11至17中的任一权利要求所述的装置,其中所述第一块大小小于所述第二块大小,并且其中所述装置还包括指示装置,用于指示向所述第一缓冲器写入所述旧数据而向所述第二缓冲器写入零。19一种存储控制器,包括SAS控制器;存储器控制器;接。
14、收装置,用于接收选择用于写入新数据的写入写入模式的指示;以及根据权利要求11至18中的任一权利要求所述的装置。20根据权利要求19所述的控制器,还包括发布装置,用于向所述存储器控制器发布用于所述第一块大小的新数据的写入指令;提供装置,用于向所述存储器控制器提供两个地址,其中一个地址是所述第一缓冲器的地址而另一地址是所述第二缓冲器的地址;以及指示装置,用于指示选择用于写入所述新数据的写入写入模式。21一种用于写入第一块大小的数据的计算机程序产品,所述计算机程序产品包括计算机可读存储介质,可由处理电路读取并且存储用于由所述处理电路执行用于执行根据权利要求1至10中的任一权利要求所述的方法的指令。2。
15、2一种在计算机可读介质上存储并且可向数字计算机的内部存储器中加载的计算机程序,包括在所述程序在计算机上被运行时用于执行根据权利要求1至10中的任一权利要求所述的方法的软件代码部分。权利要求书CN104137082A1/13页6使用写入写入模式向第二块大小写入第一块大小的新数据技术领域0001本公开内容涉及计算技术并且更具体地涉及向存储器写入数据。背景技术0002扇区是盘驱动的被具体设置大小的划分。块是主机计算机的操作系统可以访问例如读取、写入或者二者的一组扇区。常见盘驱动在扇区中保持512字节或者528字节的数据。某些新的盘驱动在扇区中保持4,096字节或者4,224字节数据、一般称为4千字节。
16、4KB。主机计算机的操作系统即使在盘驱动具有4KB扇区大小时仍然可以构建具有基于更小扇区大小的块大小的请求。在这一块大小不是盘驱动的扇区大小的倍数时,存储控制器然后将需要在写入该数据之前读取盘驱动。0003计数关键字数据CKD是某些操作系统的盘数据组织模型。CKD架构从记录格式推导它的名称,该记录格式通常包括含数据字节数目和记录地址的字段、可选关键字字段和数据本身。通常按照512字节或者512字节的倍数的块大小存储CKD记录。0004因此,操作系统经常寻求访问小于常规4KB块大小的记录。0005运行RAID5或者RAID6的RAID控制器在向盘驱动写入新数据之前读取旧盘驱动,因此它可以生成P奇。
17、偶位和Q奇偶位。因此,在写入操作块大小不是盘驱动扇区大小的倍数时,存储控制器无需发布额外盘驱动操作,但是它可能需要高效数据流。0006因此,在本领域中需要解决前述问题。发明内容0007在一个具体实施例中,一种用于写入第一块大小的新数据的方法,包括从数据驱动的第二块大小的目的地块向第二块大小的第一缓冲器写入旧数据。可以根据旧数据的地址信息写入旧数据,并且第一块可以包括新数据。该方法还可以包括根据旧数据的地址信息向第二块大小的第二缓冲器写入零。在第二缓冲器中写入的零可以与在第一缓冲器中写入的旧数据对应。0008从又一方面来看,本发明提供一种装置,该装置包括存储器;以及处理器,被配置为执行访问存储器。
18、的第一过程,其中处理器还被配置为写入第一块大小的新数据,该装置包括写入装置,用于从数据驱动的第二块大小的目的地块向第二块大小的第一缓冲器写入旧数据,其中根据旧数据的地址信息写入旧数据,并且第一块包括新数据,并且写入装置还可操作用于根据旧数据的地址信息向第二块大小的第二缓冲器写入零,其中在第二缓冲器中写入的零与在第一缓冲器中写入的旧数据对应。0009从又一方面来看,本发明提供一种存储控制器,该存储控制器包括SAS控制器;存储器控制器;接收装置,用于接收选择用于写入新数据的写入写入模式的指示;以及本发明的装置。0010从又一方面来看,本发明提供一种用于写入第一块大小的数据的计算机程序产说明书CN1。
19、04137082A2/13页7品,该计算机程序产品包括可由处理电路读取并且存储指令的计算机可读存储介质,这些指令用于由处理电路执行用于执行方法,该方法用于执行本发明的步骤。0011从另一方面来看,本发明提供一种在计算机可读介质上存储并且可向数字计算机的内部存储器中加载的计算机程序,该计算机程序包括在所述程序在计算机上被运行时,用于执行本发明的步骤的软件代码部分。0012在另一实施例中,公开一种包括存储器和处理器的装置,该处理器被配置为执行访问存储器的第一过程。处理器还可以被配置为通过从数据驱动的第二块大小的目的地块向第二块大小的第一缓冲器写入旧数据来写入第一块大小的新数据。可以根据旧数据的地址。
20、信息写入旧数据,并且第一块可以包括新数据。该方法还可以包括根据旧数据的地址信息向第二块大小的第二缓冲器写入零。在第二缓冲器中写入的零可以与在第一缓冲器中写入的旧数据对应。0013在另一实施例中,公开一种装置,该装置包括SAS控制器、存储器控制器、存储器和被配置为执行访问存储器的第一过程的处理器。处理器还可以被配置为通过操控存储器控制器以接收选择用于写入新数据的写入写入模式的指示来写入第一块大小的新数据。处理器还可以被配置为操控存储器控制器以从数据驱动的第二块大小的目的地块向第二块大小的第一缓冲器写入旧数据。可以根据旧数据的地址信息写入旧数据,并且第一块可以包括新数据。处理器还可以被配置为操控存。
21、储器控制器以根据旧数据的地址信息向第二块大小的第二缓冲器写入零。在第二缓冲器中写入的零可以与在第一缓冲器中写入的旧数据对应。0014在权利要求中阐述表征实施例的特征,这些权利要求附于这些实施例并且形成其又一部分。然而,为了更好地理解实施例以及通过使用实施例而达到的优点和目的,应当参照附图和所附描述内容。附图说明0015现在将参照如以下各图中所示优选实施例仅通过示例描述本发明0016图1是根据现有技术并且其中可以实施本发明的一个优选实施例的计算系统的一个实施例的框图,该计算系统被配置为使用写入写入模式向第二块大小写入第一块大小的新数据;0017图2是更具体图示根据现有技术并且其中可以实施本发明的。
22、一个优选实施例的主要硬件实体的框图,这些硬件实体用来实施与图1的计算系统一致的存储控制器的一个实施例;0018图3是根据本发明的一个优选实施例的在RADI5应用中写入第一块大小的新数据的方法的一个实施例的流程图;0019图4是根据本发明的一个优选实施例的在RADI6应用中写入第一块大小的新数据的方法的另一实施例的流程图;0020图5是根据本发明的一个优选实施例的在执行图3和4的写入第一块大小的新数据的方法的实施例的部分期间的第一缓冲器、第二缓冲器和数据驱动;以及0021图6是根据本发明的一个优选实施例的在执行图3和4的写入第一块大小的新数据的方法的实施例的部分期间的第一缓冲器和第二缓冲器的另一。
23、示例。说明书CN104137082A3/13页8具体实施方式0022多种读取操作、写入操作、异或XOR操作、有限字段乘法FFM操作及其组合通常由存储控制器执行以向盘驱动写入数据。RAID或者独立盘冗余阵列是在故障的情况下组合用于冗余存储数据的两个或者更多盘驱动的盘驱动类别。在RAID的某些配置、比如RAID5或者RAID6中,也可以在盘驱动中存储奇偶位信息以有助于在故障之后恢复。0023已经利用操作序列以从主机接口向在盘驱动接口上的另一块大小例如4KB写入一个块大小例如512字节并且生成奇偶位信息用于恢复。例如,存储器控制逻辑可以向包含新数据的第一缓冲器发布读取即读取、XOR第一缓冲器与来自数。
24、据驱动的旧数据即修改并且向第二缓冲器写入XOR乘积即写入。三个操作的这一序列这里称为即时XORXORONTHEFLY的原子读取修改写入操作或者简称为即时XOR,并且与这里简称为关联操作的附加操作例如在即时XOR的原子读取修改写入操作之前和之后利用该序列。术语原子指示第一和第二缓冲器在读取修改写入操作期间不能被其它操作访问。0024这里提供使用这里称为写入写入模式的附加模式来写入第一块大小的新数据的装置和方法的实施例。具体而言,写入写入模式包括两个写入操作。第一写入操作包括从数据驱动的第二块大小的目的地块向具有第二块大小的新数据的第一缓冲器写入旧数据。可以根据旧数据的地址信息写入旧数据,并且第一。
25、块可以包括新数据。第二写入操作包括根据旧数据的地址信息向第二块大小的第二缓冲器写入零。在第二缓冲器中写入的零可以与在第一缓冲器中写入的旧数据对应。0025仍然可以与写入写入模式利用即时XOR的原子读取修改写入操作以及关联操作。然而,通过除了即时XOR的原子读取修改写入操作以及关联操作之外还使用写入写入模式,可以提高性能而对对应硬件和固件环境无显著影响。0026图1图示可以包括至少一个主机例如主机105、110的计算系统100的框图。主机105、110中的每个主机可以包括约512字节或者其倍数的第一块大小的多个块。约512字节的第一块大小可以是但不限于512字节、516字节、520字节、524字。
26、节、528字节或者其任何组合。主机105、110耦合到存储子系统115。存储子系统115可以包括至少一个存储控制器、比如存储控制器120、125。存储控制器120、125中的每个存储控制器可以耦合到至少一个RAID控制器、比如RAID控制器130、135。RAID控制器130、135可以各自耦合到至少一个盘驱动、比如盘驱动140、145、150、155。盘驱动140、145、150、155可以在任何RAID配置、比如RAID5或者RAID6中被配置并且存储奇偶位和数据。0027另外,盘驱动140、145、150、155中的每个盘驱动可以包括约4KB或者其倍数的第二块大小的多个块。约4KB的第二。
27、块大小可以是但不限于4,096字节、4,224字节或者其任何组合。因此,盘驱动140、145、150、155可以在具有约4KB的第二块大小的RAID配置中。然而,本领域普通技术人员将认识块大小可以随着技术进步而增加并且这样,权利要求和这里讨论的任何实施例的范围不限于约4KB和约512字节的块大小。0028主机105、110、存储控制器120、125和RAID控制器130、135中的每个设备可以是任何适当计算设备、比如个人计算机、工作站、客户端、服务器、大型机、手持计算机、掌上计算机、电话设备、网络装置、刀片计算机、其它计算机或者其任何组合。盘驱动140、145、150、说明书CN1041370。
28、82A4/13页9155中的每个盘驱动可以是任何适当物理硬盘、固态盘、光盘、其它盘或者其任何组合。存储控制器120也可以如图2中所示与RAID控制器130组合成单个存储控制器200。0029在这里所示实施例中,主机105、110可以被配置为使用约512字节或者其倍数的块大小并且可以请求向盘驱动140、145、150、155中的至少一个盘驱动写入约512字节的块大小的新数据。该请求可以由存储子系统115接收、由存储控制器120、125处理,并且可以向RAID控制器130、135传递该请求。RAID控制器130、135可以使用写入写入模式以及即时XOR模式以及其它指令,并且RAID控制器130、1。
29、35可以向盘驱动140、145、150、155中的至少一个盘驱动写入。0030图2图示用来实施装置的主要硬件实体,该装置包括存储器和配置为执行访问存储器的过程的处理器。该装置可以是与图1的RAID控制器135组合的图1的存储控制器120、125相似的、图2的存储控制器200的一个实施例。0031存储控制器200可以包括集成电路装置、比如微芯片或者芯片205。芯片205可以包括处理器、比如嵌入的处理器210。处理器210可以操控存储控制器200并且更具体为存储器控制器220、SAS控制器270、PCIE控制器245或者其任何组合以执行写入写入模式、即时XOR的原子读取修改写入操作、关联操作或者其。
30、任何组合。处理器210可以经由总线耦合到至少一个存储器、例如在芯片205外部的存储器、比如DRAM215。可以利用DRAM215作为控制存储库。0032存储控制器200也可以包括具有存储器控制逻辑225、比如写入逻辑230、读取逻辑235、XOR逻辑240和FFM逻辑242的存储器控制器220。存储器控制逻辑225可以是硬件并且包括至少一个门、比如用于XOR逻辑240的XOR门。另外,存储器控制逻辑225接收指示是否选择和应当利用写入写入模式的指示。如果该指示是指示选择写入写入模式,则存储器控制逻辑225可以执行写入写入模式的两个写入操作。另外,存储器控制逻辑225在利用写入写入模式时仍然可以。
31、执行即时XOR的原子读取修改写入操作以及关联操作如结合图3和图4进一步讨论的那样。0033存储器控制器220可以经由总线耦合到外围部件互连快速或者PCIE控制器245。PCIE控制器245可以由至少一个PCIE总线247进一步耦合到至少一个主机250。可以利用PCIE总线247以与主机250连接和用于直接存储器存取DMA数据流。0034主机250可以与图1的主机105、110相似并且将通常在芯片205外部。主机250可以包括在约512字节或者其倍数的第一块大小例如512字节、516字节、520字节、524字节、528字节或者其任何组合和第一大小LBA的至少一个块中的新数据255。新数据255可。
32、以在至少一个块中包括至少一个数据值。主机250也可以包括被配置为即使在物理块驱动被配置成约4KB的第二扇区大小例如4096、4224或者其任何组合时仍然使用约512字节的第一扇区大小用于访问的操作系统265。实际上,新数据255可以存储CKD记录,并且每个CKD记录可以被对准到512字节块边界。主机250也可以包括直接存储器数据存取DMA控制逻辑未示出。0035处理器210可以将从主机250接收的命令从第一块大小和第一大小LBA转换成第二块大小和第二大小LBA。处理器210也可以推导数据前大小和数据后大小。例如在第一扇区大小是512字节而第二扇区大小是4K时,除以8的第一大小LBA然后可以是第。
33、二大小LBA,或者除以8的第一大小LBA可以用来映射到第二大小LBA。在以8为模的第一大小说明书CN104137082A5/13页10LBA为非零时,这一结果1至7X512字节然后可以是数据前大小。第二块大小可以等于第一块大小加上数据前大小之和被上取整成4K倍数。上取整值可以是数据后大小。数据前大小和数据后大小可以是数据驱动285的可以在向数据驱动285写入第二块大小时不变的旧数据287在第二块大小的开始和结束处的数据量。可以向SAS控制器270传递第二块大小、第二块LBA、数据前大小和数据后大小。这样,在SAS控制器270读取旧数据287作为RAID5或者RAID6写入操作的部分时,SAS控。
34、制器270然后可以在向存储器控制器220传递数据前和数据后时选择写入写入模式并且可以选择即时XOR用于第二块大小传送的其余部分。0036存储器控制器220可以经由总线进一步耦合到具有SAS控制逻辑275的SAS控制器270。SAS控制器270可以与图1的RAID控制器130、135相似。SAS控制逻辑275可以被利用用于DMA数据流并且可以是硬件。SAS控制器270可以由至少一个SAS总线277进一步耦合到扩展器280。扩展器280可以在芯片205外部而扩展器280进一步耦合到至少一个盘驱动。例如,扩展器280可以耦合到具有旧数据287的数据驱动285、具有P奇偶位292的P奇偶位驱动290和。
35、具有Q奇偶位297的Q奇偶位驱动295。可以生成并且分别在P奇偶位驱动290和Q奇偶位驱动295中存储新P奇偶位和新Q奇偶位。旧数据287、P奇偶位292、Q奇偶位297、新P奇偶位、新Q奇偶位中的每项可以在至少一个块中包括至少一个数据值。一般而言,可以利用SAS总线277以通过扩展器280与数据驱动285、P奇偶位驱动290和Q奇偶位驱动295连接。0037驱动可以在芯片205外部并且可以与图1的盘驱动140、145、150、155相似。数据驱动285、P奇偶位驱动290和Q奇偶位驱动295可以各自具有约4KB的多个第二数据块大小、比如但不限于4096字节、4224字节或者其任何组合的多个块。
36、。可以使用线性块访问数据或者LBA来访问数据驱动285、P奇偶位驱动290和Q奇偶位驱动295的每个块。可以在RAID5和RAID6配置二者中从P奇偶位驱动290读取和向P奇偶位驱动290写入。然而,可以与RAID6配置利用Q奇偶位驱动295。0038可以向数据驱动285写入新数据255。具体而言,可以向数据驱动285的至少一个目的地块、比如目的地块288写入新数据255。为了简化,这里可以利用术语“目的地块”以引用数据驱动285的块,其中将基于新数据255的地址信息例如LBA写入新数据255。例如主机250可以请求向第一块大小的某些LBA写入新数据255,并且目的地块288可以是来自数据驱动。
37、255的其中存储那些LBA的块。可以从数据驱动285读取目的地块288、包括它的旧数据287,并且在写入写入模式的操作和即时XOR的原子读取修改写入操作之后,可以向数据驱动285的目的地块288写入新数据255。简言之,主机可以请求在驱动LABY开始的大小为X的操作。固件可以暂时分配DRAM中的缓冲器、比如两个缓冲器各自大小为X加上数据前和数据后大小用于这里讨论的操作。因此,在一些实施例中,可以未涉及到表。0039SAS控制逻辑275可以执行涉及到数据驱动285、P奇偶位驱动290和Q奇偶位驱动295的读取操作、写入操作或者其任何组合。SAS控制逻辑也可以如必需的那样从驱动向存储器控制逻辑22。
38、0传递信息。另外,SAS控制逻辑275可以确定存储器控制逻辑220是选择并且应当利用写入写入模式还是即时XOR模式。例如,SAS控制逻辑275可以比较新数据255的块大小和起始对准与数据驱动285中的至少一个数据驱动的块大小。如果来说明书CN104137082A106/13页11自主机250的新数据的块大小小于数据驱动285的块大小或者小于门限例如4KB门限,则基于该比较,SAS控制275可以向存储器控制器220传递用于指示选择并且应当利用写入写入模式的指示例如位、触发、信号、其它指示或者其任何组合。0040具体而言,SAS控制逻辑275可以指示选择写入写入模式或者即时XOR模式如下。SAS控。
39、制器270向存储器控制逻辑225传送旧数据驱动285的读取可以是第二块大小的一个或者多个部分传送。SAS控制器270可以在模式即时XOR与写入写入模式之间切换时中断向存储器控制逻辑225的传送。SAS控制器270可以在它发布写入时向存储器控制逻辑225传递以下信号用于选择写入写入模式或者选择即时XOR的即时XOR命令或者写入写入命令位、用于也选择RAID6的位、8位RAID6常数、指向第一缓冲器305的地址、指向第二缓冲器310的地址。0041另外,SAS控制逻辑275可以确定它是否应当传递选择写入写入模式的指示如下。例如,固件可以构建的SAS命令块CB中具有控制信息。另外,如果有4K驱动在C。
40、B中的1位选择这一驱动并且如果操作在子块偏移开始,则对于上至该偏移的前N个子块,可以使用写入写入模式。CB也具有操作长度,如果该长度在后4K的结束之前完成,则那些子块也可以使用写入写入模式。0042存储器控制器220可以经由总线进一步耦合到比如在芯片205外部的至少一个存储器、比如DRAM300。DRAM300可以包括至少一个缓冲器、比如第一缓冲器305、第二缓冲器310、第三缓冲器315和第四缓冲器317。第四缓冲器317可以在RAID6配置中被利用用于有限字段乘法并且可以在无有限字段乘法的RAID配置、比如RAID5配置中被省略。缓冲器305、310、315、317可以是用于操作的暂时DR。
41、AM位置。0043第一缓冲器305、第二缓冲器310、第三缓冲器315和第四缓冲器317中的每个缓冲器可以是约4KB或者其倍数的第二块大小例如4096、4224或者其任何组合,因为数据驱动285、P奇偶位驱动290和Q奇偶位驱动295是约4KB的第二块大小。然而,如果数据驱动285、P奇偶位驱动290、Q奇偶位驱动295或者其任何组合是除了大约4KB之外的另一块大小,则第一缓冲器305、第二缓冲器310、第三缓冲器315、第四缓冲器317或者其任何组合的块大小可以是该另一块大小。0044另外,第一块大小可以小于或者简单地不同于第二块大小。写入写入模式向第一缓冲器305和第二缓冲器310写入。数。
42、据可以基于待写入、读取或者其任何组合的数据例如新数据255、旧数据287或者其它数据的地址信息例如LBA放置于第一缓冲器305、第二缓冲器310、第三缓冲器315、第四缓冲器317或者其任何组合的块的特定扇区中。实际上,可以与这里讨论的所有驱动和缓冲器利用LBA寻址。0045第一缓冲器305可以包括至少一个4KB块、比如第一4KB块320、第二4KB块325和第N4KB块330。存储器控制器220可以执行涉及到第一缓冲器305、第二缓冲器310、第三缓冲器315和第四缓冲器317的任何读取操作、写入操作、XOR操作、FFM操作或者其任何组合。0046接着转向数据控制器200的操作,与即时XOR。
43、的原子读取修改写入操作结合,SAS控制逻辑275可以将从数据驱动285读取的数据与用于第一缓冲器305和第二缓冲器310的地址这两个地址一起向存储器控制逻辑225传递。存储器控制逻辑225向第一缓冲器305发布读取的DRAM即读取、XOR这一数据与从SAS控制逻辑275接收的新数据255即说明书CN104137082A117/13页12修改并且向第二缓冲器310写入它。0047实际上,与即时XOR的原子读取修改写入操作和关联操作结合,对于RAID5,存储控制器200分配三个缓冲器例如第一缓冲器305、第二缓冲器310和第三缓冲器315并且执行包括在B的即时XOR的原子读取修改写入操作和在A、C。
44、E的关联操作的以下操作接收并且向第一缓冲器305写入新数据255;读取数据驱动285即读取并且与第一缓冲器305XOR旧数据287即修改并且在第二缓冲器310中写入即写入该旧数据;向数据驱动器285写入在第一缓冲器305中的新数据255;从P奇偶位驱动290读取、与第二缓冲器310XOR并且在第三缓冲器310中放置P奇偶位292;并且向P奇偶位驱动290写入具有新P奇偶位的第三缓冲器310。0048与即时XOR的原子读取修改写入操作和关联操作结合,对于RAID6,存储控制器200分配用于FFM的附加第四缓冲器并且执行包括在B的即时XOR的原子读取修改写入操作和在A、CF的关联操作的以下操作以上。
45、AD操作,不同在于在XOR之前执行与第四缓冲器317的FFME从Q奇偶位驱动295读取并且与第二缓冲器310XOR而且在第三缓冲器315中放置Q奇偶位297;以及F向Q奇偶位驱动295写入具有新Q奇偶位的第三缓冲器315。0049然而,存储器控制逻辑225还可以利用写入写入模式以比即时XOR的原子读取修改写入操作和关联操作潜在地提高性能。具体而言,可以添加写入写入模式作为如必需的那样与即时XOR的原子读取修改写入操作和关联操作结合利用的模式。例如,SAS控制逻辑275可以被保持基本上相同而仍然可以向存储器控制逻辑225发布写入并且提供两个地址。然而,SAS控制逻辑275可以被改变成提供选择写入。
46、写入模式的指示。在这一指示是指示应当利用写入写入模式时,存储器控制逻辑225可以向第一缓冲器305发布写入、然后可以向第二缓冲器310发布零写入。SAS控制逻辑275也可以被改变成确定是否应当利用写入写入模式。0050因此,与写入写入模式结合,存储控制器200可以经由PCIE总线247从主机250的操作系统265接收对于写入约512字节的块的新数据255的请求。响应于接收该请求,SAS控制器270的SAS控制逻辑275如必需的那样读取数据驱动285并且向存储器控制器220传递旧数据287。用于SAS控制逻辑275的例如固件创建的命令块可以包括向存储器控制器220传递的两个存储器控制器220地址。
47、用于第一缓冲器305和第二缓冲器310以及在RAID6配置中用于有限字段乘法的额外字段例如第四缓冲器317。SAS控制逻辑275也如必需的那样向存储器控制器200发布读取操作、写入操作或者其任何组合。SAS控制逻辑275也可以确定是否应当选择写入写入模式并且向存储器控制器220传递指示应当利用写入写入模式的指示。0051存储器控制器200的存储器控制逻辑225对SAS控制逻辑275发布的读取操作和写入操作做出响应。例如,存储器控制逻辑225如必需的那样可以使用写入写入模式并且可以向用于第一缓冲器305和第二缓冲器310的两个地址写入。具体而言,存储器控制逻辑225的写入逻辑230可以向第一缓冲。
48、器305写入旧数据即写入而可以向第二缓冲器310写入零即写入。0052存储器控制逻辑225向SAS控制逻辑225传递第一缓冲器305,并且SAS控制逻辑275向数据驱动285写入第一缓冲器305。附加读取操作、写入操作、XOR操作、FFM操作或说明书CN104137082A128/13页13者其任何组合、比如即时XOR的原子读取修改写入操作和关联操作的操作可以如这里讨论的那样由SAS控制逻辑275、存储器控制逻辑225或者其任何组合执行。例如,XOR逻辑240可以按照即时XOR的原子读取修改写入操作XOR第一缓冲器305与从SAS控制逻辑275接收的来自数据驱动285的旧数据287。0053图。
49、3示出写入第一块大小的新数据的方法的一个实施例。方法400可以用于RAID5配置并且可以由图2的存储控制器200或者图1的存储控制器120、125执行。方法400也可以使用图2的第一缓冲器305、第二缓冲器310和第三缓冲器315以及图2的数据驱动287和P奇偶位驱动290。缓冲器和驱动中的每个缓冲器和驱动可以是约4KB的块大小。为了易于理解,图5包括一个示例500,该示例举例说明在执行方法400的写入写入模式和即时XOR的原子读取修改写入操作期间的与图2的第一缓冲器305相似的第一缓冲器505、与图2的数据驱动285相似的数据驱动510和与图2的第一缓冲器310相似的第二缓冲器515。此后,。
50、可以使用第一缓冲器505和第二缓冲器515来执行其余关联操作以生成新奇偶位信息。虽然在图3和图5的描述中参照图2的一个目的地块288,但是本领域普通技术人员将认识可以有来自数据驱动285的多个目的地块288。0054存储控制器可以在405接收新数据。例如,图2的存储控制器200可以通过PCIE控制器245经由PCIE总线247从主机250的操作系统265接收对于写入约512字节的块的新数据255的请求。该请求可以包括新数据255的地址信息、比如其中应当写入新数据255的至少一个LBA。0055响应于接收新数据255,PCIE控制器245向存储器控制逻辑255发布具有新数据255和LBA的写入。。