使用写入写入模式向第二块大小写入第一块大小的新数据.pdf

上传人:a2 文档编号:177522 上传时间:2018-01-31 格式:PDF 页数:24 大小:4.04MB
返回 下载 相关 举报
摘要
申请专利号:

CN201380010410.8

申请日:

2013.01.29

公开号:

CN104137082A

公开日:

2014.11.05

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 12/00申请日:20130129|||公开

IPC分类号:

G06F12/00

主分类号:

G06F12/00

申请人:

国际商业机器公司

发明人:

D·莫特尔; R·加尔布雷思

地址:

美国纽约阿芒克

优先权:

2012.02.22 US 13/402,465

专利代理机构:

北京市金杜律师事务所 11256

代理人:

酆迅;孙新国

PDF下载: PDF下载
内容摘要

提供用于写入第一块大小的新数据的装置和方法。一种具体方法可以包括从数据驱动的第二块大小的目的地块向第二块大小的第一缓冲器写入旧数据。可以根据旧数据的地址信息写入旧数据而未改写在第一缓冲器中的新数据。该方法还可以包括根据旧数据的地址信息向第二块大小的第二缓冲器写入零。在第二缓冲器中写入的零可以与在第一缓冲器中写入的旧数据对应。

权利要求书

1.  一种用于写入第一块大小的数据的方法,所述方法包括:
存储控制器从数据驱动的第二块大小的目的地块向所述第二块大小的第一缓冲器写入旧数据,其中根据所述旧数据的地址信息写入所述旧数据,并且所述第一块包括新数据;以及
所述存储控制器根据所述旧数据的所述地址信息向所述第二块大小的第二缓冲器写入零,其中在所述第二缓冲器中写入的所述零与在所述第一缓冲器中写入的所述旧数据对应。

2.
  根据权利要求1所述的方法,还包括:
所述存储控制器从主机接收所述新数据,所述主机具有配置为访问所述第一块大小的块的操作系统;以及
所述存储控制器根据所述第一块大小的所述新数据的地址信息向所述第二块大小的所述第一缓冲器写入所述新数据。

3.
  根据权利要求2所述的方法,还包括:
所述存储控制器从所述数据驱动的所述目的地块读取所述旧数据;
所述存储控制器读取所述第一缓冲器;
所述存储控制器XOR所述第一缓冲器与来自所述数据驱动的所述目的地块的所述旧数据以生成XOR乘积;以及
所述存储控制器根据所述新数据的所述地址信息向所述第二块大小的所述第二缓冲器写入所述XOR乘积,其中在所述第二缓冲器中写入的所述XOR乘积与在所述第一缓冲器中写入的所述新数据对应。

4.
  根据权利要求3所述的方法,还包括:
所述存储控制器向所述第二块大小的所述数据驱动的所述目的地块写入所述第一缓冲器,其中所述第一缓冲器包括所述新数据和向所述第一缓冲器写入的所述旧数据二者;
所述存储控制器根据P奇偶位的地址信息从所述第二块大小的P奇偶位驱动读取所述P奇偶位;
所述存储控制器读取所述第二缓冲器;
所述存储控制器XOR所述第二缓冲器与来自所述P奇偶位驱动的所述P奇偶位以生成新P奇偶位;
所述存储控制器向所述第二块大小的第三缓冲器写入所述新P奇偶位;以及
所述存储控制器向所述P奇偶位驱动写入所述第三缓冲器。

5.
  根据权利要求4所述的方法,其中所述数据驱动和所述P奇偶位驱动被配置为RAID-5。

6.
  根据权利要求3所述的方法,还包括:
所述存储控制器向所述第二块大小的所述数据驱动的所述目的地块写入所述第一缓冲器,其中所述第一缓冲器包括所述新数据和向所述第一缓冲器写入的所述旧数据二者;
所述存储控制器根据P奇偶位的地址信息从所述第二块大小的P奇偶位驱动读取所述P奇偶位;
所述存储控制器读取所述第二缓冲器;
所述存储控制器对于所述第二缓冲器执行有限字段乘法以生成有限字段乘法数据;
所述存储控制器XOR所述字段乘法数据与来自所述P奇偶位驱动的所述P奇偶位以生成新P奇偶位;
所述存储控制器向所述第二块大小的第三缓冲器写入所述新P奇偶位;
所述存储控制器向所述P奇偶位驱动写入所述第三缓冲器;
所述存储控制器根据Q奇偶位的所述地址信息从所述第二块大小的Q奇偶位驱动读取所述Q奇偶位;
所述存储控制器读取所述第二缓冲器;
所述存储控制器对于所述第二缓冲器执行有限字段乘法以生成附加有限字段乘法数据;
所述存储控制器XOR所述字段乘法数据与来自所述Q奇偶位驱动的所述Q奇偶位以生成新Q奇偶位;
所述存储控制器向所述第二块大小的第四缓冲器写入所述新Q奇偶位;以及
所述存储控制器向所述Q奇偶位驱动写入所述第四缓冲器。

7.
  根据权利要求6所述的方法,其中所述数据驱动、所述P奇偶位驱动和所述Q奇偶位驱动被配置为RAID-6。

8.
  根据前述权利要求中的任一权利要求所述的方法,其中所述第一块大小约为512字节并且所述第二块大小约为4千字节。

9.
  根据前述权利要求中的任一权利要求所述的方法,还包括基于所述存储控制器比较所述第一块大小与所述第二块大小或门限中的至少一个来确定是否向所述第一缓冲器写入所述旧数据而向所述第二缓冲器写入零。

10.
  根据前述权利要求中的任一权利要求所述的方法,其中所述第一块大小小于所述第二块大小,还包括所述存储控制器指示向所述第一缓冲器写入所述旧数据而向所述第二缓冲器写入零。

11.
  一种装置,包括:
存储器;以及
处理器,被配置为执行访问所述存储器的第一过程,其中所述处理器还被配置为写入第一块大小的新数据,所述装置包括:
写入装置,用于从数据驱动的第二块大小的目的地块向所述第二块大小的第一缓冲器写入旧数据,其中根据所述旧数据的地址信息写入所述旧数据,并且所述第一块包括所述新数据,并且所述写入装置还可操作用于根据所述旧数据的所述地址信息向所述第二块大小的第二缓冲器写入零,其中在所述第二缓冲器中写入的所述零与在所述第一缓冲器中写入的所述旧数据对应。

12.
  根据权利要求11所述的装置,其中所述装置还包括:
接收装置,用于从主机接收所述新数据,所述主机具有配置为访问所述第一块大小的块的操作系统;以及
写入装置,用于根据所述第一块大小的所述新数据的地址信息向所述第二块大小的所述第一缓冲器写入所述新数据。

13.
  根据权利要求12所述的装置,其中所述装置还包括:
读取装置,用于从所述数据驱动的所述目的地块读取所述旧数据;
所述读取装置还可操作用于读取所述第一缓冲器;
XOR装置,用于XOR所述第一缓冲器与来自所述数据驱动的所述目的地块的所述旧数据以生成XOR乘积;以及
所述写入装置还可操作用于根据所述新数据的所述地址信息向所述第二块大小的所述第二缓冲器写入所述XOR乘积,其中在所述第二缓冲器中写入的所述XOR乘积与在所述第一缓冲器中写入的所述新数据对应。

14.
  根据权利要求13所述的装置,其中所述装置还包括:
所述写入装置还可操作用于向所述第二块大小的所述数据驱动的所述目的地块写入所述第一缓冲器,其中所述第一缓冲器包括所述新数据和向所述第一缓冲器写入的所述旧数据二者;
所述读取装置还可操作用于根据P奇偶位的地址信息从所述第二块大小的P奇偶位驱动读取所述P奇偶位;
所述读取装置还可操作用于读取所述第二缓冲器;
XOR装置,用于XOR所述第二缓冲器与来自所述P奇偶位驱动的所述P奇偶位以生成新P奇偶位;
所述写入装置还可操作用于向所述第二块大小的第三缓冲器写入所述新P奇偶位;以及
所述写入装置还可操作用于向所述P奇偶位驱动写入所述第三缓冲器。

15.
  根据权利要求13所述的装置,其中所述装置还包括:
所述写入装置还可操作用于向所述第二块大小的所述数据驱动的所述目的地块写入所述第一缓冲器,其中所述第一缓冲器包括所述新数据和向所述第一缓冲器写入的所述旧数据二者;
所述读取装置还可操作用于根据P奇偶位的地址信息从所述第二块大小的P奇偶位驱动读取所述P奇偶位;
所述读取装置还可操作用于读取所述第二缓冲器;
执行装置,用于对于所述第二缓冲器执行有限字段乘法以生成有限字段乘法数据;
XOR装置,用于XOR所述字段乘法数据与来自所述P奇偶位驱动的所述P奇偶位以生成新P奇偶位;
所述写入装置还可操作用于向所述第二块大小的第三缓冲器写入所述新P奇偶位;
所述写入装置还可操作用于向所述P奇偶位驱动写入所述第三缓冲器;
所述读取装置还可操作用于根据Q奇偶位的所述地址信息从所述第二块大小的Q奇偶位驱动读取所述Q奇偶位;
所述读取装置还可操作用于读取所述第二缓冲器;
对于所述第二缓冲器执行有限字段乘法以生成附加有限字段乘法数据;
XOR装置,用于XOR所述字段乘法数据与来自所述Q奇偶位驱动的所述Q奇偶位以生成新Q奇偶位;
所述写入装置还可操作用于向所述第二块大小的第四缓冲器写入所述新Q奇偶位;以及
所述写入装置还可操作用于所述存储控制器向所述Q奇偶位驱动写入所述第四缓冲器。

16.
  根据权利要求11所述的装置,其中所述第一块大小约为512字节并且所述第二块大小约为4千字节。

17.
  根据权利要求11至16中的任一权利要求所述的装置,其中所述装置还包括:确定装置,用于基于比较所述第一块大小和所述第二块大小或门限中的至少一个来确定是否向所述第一缓冲器写入所述旧数据而向所述第二缓冲器写入零。

18.
  根据权利要求11至17中的任一权利要求所述的装置,其 中所述第一块大小小于所述第二块大小,并且其中所述装置还包括:指示装置,用于指示向所述第一缓冲器写入所述旧数据而向所述第二缓冲器写入零。

19.
  一种存储控制器,包括:
SAS控制器;
存储器控制器;
接收装置,用于接收选择用于写入新数据的写入-写入模式的指示;以及
根据权利要求11至18中的任一权利要求所述的装置。

20.
  根据权利要求19所述的控制器,还包括:
发布装置,用于向所述存储器控制器发布用于所述第一块大小的新数据的写入指令;
提供装置,用于向所述存储器控制器提供两个地址,其中一个地址是所述第一缓冲器的地址而另一地址是所述第二缓冲器的地址;以及
指示装置,用于指示选择用于写入所述新数据的写入-写入模式。

21.
  一种用于写入第一块大小的数据的计算机程序产品,所述计算机程序产品包括:
计算机可读存储介质,可由处理电路读取并且存储用于由所述处理电路执行用于执行根据权利要求1至10中的任一权利要求所述的方法的指令。

22.
  一种在计算机可读介质上存储并且可向数字计算机的内部存储器中加载的计算机程序,包括在所述程序在计算机上被运行时用于执行根据权利要求1至10中的任一权利要求所述的方法的软件代码部分。

说明书

使用写入-写入模式向第二块大小写入第一块大小的新数据
技术领域
本公开内容涉及计算技术并且更具体地涉及向存储器写入数据。
背景技术
扇区是盘驱动的被具体设置大小的划分。块是主机计算机的操作系统可以访问(例如读取、写入或者二者)的一组扇区。常见盘驱动在扇区中保持512字节或者528字节的数据。某些新的盘驱动在扇区中保持4,096字节或者4,224字节数据、一般称为4千字节(4KB)。主机计算机的操作系统即使在盘驱动具有4KB扇区大小时仍然可以构建具有基于更小扇区大小的块大小的请求。在这一块大小不是盘驱动的扇区大小的倍数时,存储控制器然后将需要在写入该数据之前读取盘驱动。
计数-关键字-数据(CKD)是某些操作系统的盘数据组织模型。CKD架构从记录格式推导它的名称,该记录格式通常包括含数据字节数目和记录地址的字段、可选关键字字段和数据本身。通常按照512字节或者512字节的倍数的块大小存储CKD记录。
因此,操作系统经常寻求访问小于常规4KB块大小的记录。
运行RAID-5或者RAID-6的RAID控制器在向盘驱动写入新数据之前读取旧盘驱动,因此它可以生成P奇偶位和Q奇偶位。因此,在写入操作块大小不是盘驱动扇区大小的倍数时,存储控制器无需发布额外盘驱动操作,但是它可能需要高效数据流。
因此,在本领域中需要解决前述问题。
发明内容
在一个具体实施例中,一种用于写入第一块大小的新数据的方法,包括从数据驱动的第二块大小的目的地块向第二块大小的第一缓冲器写入旧数据。可以根据旧数据的地址信息写入旧数据,并且第一块可以包括新数据。该方法还可以包括根据旧数据的地址信息向第二块大小的第二缓冲器写入零。在第二缓冲器中写入的零可以与在第一缓冲器中写入的旧数据对应。
从又一方面来看,本发明提供一种装置,该装置包括:存储器;以及处理器,被配置为执行访问存储器的第一过程,其中处理器还被配置为写入第一块大小的新数据,该装置包括:写入装置,用于从数据驱动的第二块大小的目的地块向第二块大小的第一缓冲器写入旧数据,其中根据旧数据的地址信息写入旧数据,并且第一块包括新数据,并且写入装置还可操作用于根据旧数据的地址信息向第二块大小的第二缓冲器写入零,其中在第二缓冲器中写入的零与在第一缓冲器中写入的旧数据对应。
从又一方面来看,本发明提供一种存储控制器,该存储控制器包括:SAS控制器;存储器控制器;接收装置,用于接收选择用于写入新数据的写入-写入模式的指示;以及本发明的装置。
从又一方面来看,本发明提供一种用于写入第一块大小的数据的计算机程序产品,该计算机程序产品包括可由处理电路读取并且存储指令的计算机可读存储介质,这些指令用于由处理电路执行用于执行方法,该方法用于执行本发明的步骤。
从另一方面来看,本发明提供一种在计算机可读介质上存储并且可向数字计算机的内部存储器中加载的计算机程序,该计算机程序包括在所述程序在计算机上被运行时,用于执行本发明的步骤的软件代码部分。
在另一实施例中,公开一种包括存储器和处理器的装置,该处理器被配置为执行访问存储器的第一过程。处理器还可以被配置为通过从数据驱动的第二块大小的目的地块向第二块大小的第一缓冲器写入旧数据来写入第一块大小的新数据。可以根据旧数据的地址 信息写入旧数据,并且第一块可以包括新数据。该方法还可以包括根据旧数据的地址信息向第二块大小的第二缓冲器写入零。在第二缓冲器中写入的零可以与在第一缓冲器中写入的旧数据对应。
在另一实施例中,公开一种装置,该装置包括SAS控制器、存储器控制器、存储器和被配置为执行访问存储器的第一过程的处理器。处理器还可以被配置为通过操控存储器控制器以接收选择用于写入新数据的写入-写入模式的指示来写入第一块大小的新数据。处理器还可以被配置为操控存储器控制器以从数据驱动的第二块大小的目的地块向第二块大小的第一缓冲器写入旧数据。可以根据旧数据的地址信息写入旧数据,并且第一块可以包括新数据。处理器还可以被配置为操控存储器控制器以根据旧数据的地址信息向第二块大小的第二缓冲器写入零。在第二缓冲器中写入的零可以与在第一缓冲器中写入的旧数据对应。
在权利要求中阐述表征实施例的特征,这些权利要求附于这些实施例并且形成其又一部分。然而,为了更好地理解实施例以及通过使用实施例而达到的优点和目的,应当参照附图和所附描述内容。
附图说明
现在将参照如以下各图中所示优选实施例仅通过示例描述本发明:
图1是根据现有技术并且其中可以实施本发明的一个优选实施例的计算系统的一个实施例的框图,该计算系统被配置为使用写入-写入模式向第二块大小写入第一块大小的新数据;
图2是更具体图示根据现有技术并且其中可以实施本发明的一个优选实施例的主要硬件实体的框图,这些硬件实体用来实施与图1的计算系统一致的存储控制器的一个实施例;
图3是根据本发明的一个优选实施例的在RADI-5应用中写入第一块大小的新数据的方法的一个实施例的流程图;
图4是根据本发明的一个优选实施例的在RADI-6应用中写入第 一块大小的新数据的方法的另一实施例的流程图;
图5是根据本发明的一个优选实施例的在执行图3和4的写入第一块大小的新数据的方法的实施例的部分期间的第一缓冲器、第二缓冲器和数据驱动;以及
图6是根据本发明的一个优选实施例的在执行图3和4的写入第一块大小的新数据的方法的实施例的部分期间的第一缓冲器和第二缓冲器的另一示例。
具体实施方式
多种读取操作、写入操作、异或(XOR)操作、有限字段乘法(FFM)操作及其组合通常由存储控制器执行以向盘驱动写入数据。RAID或者独立盘冗余阵列是在故障的情况下组合用于冗余存储数据的两个或者更多盘驱动的盘驱动类别。在RAID的某些配置、比如RAID-5或者RAID-6中,也可以在盘驱动中存储奇偶位信息以有助于在故障之后恢复。
已经利用操作序列以从主机接口向在盘驱动接口上的另一块大小(例如4KB)写入一个块大小(例如512字节)并且生成奇偶位信息用于恢复。例如,存储器控制逻辑可以向包含新数据的第一缓冲器发布读取(即读取)、XOR第一缓冲器与来自数据驱动的旧数据(即修改)并且向第二缓冲器写入XOR乘积(即写入)。三个操作的这一序列这里称为即时XOR(XOR-on-the-fly)的原子读取-修改-写入操作(或者简称为即时XOR),并且与这里简称为关联操作的附加操作(例如在即时XOR的原子读取-修改-写入操作之前和之后)利用该序列。术语原子指示第一和第二缓冲器在读取-修改-写入操作期间不能被其它操作访问。
这里提供使用这里称为写入-写入模式的附加模式来写入第一块大小的新数据的装置和方法的实施例。具体而言,写入-写入模式包括两个写入操作。第一写入操作包括从数据驱动的第二块大小的目的地块向具有第二块大小的新数据的第一缓冲器写入旧数据。可以 根据旧数据的地址信息写入旧数据,并且第一块可以包括新数据。第二写入操作包括根据旧数据的地址信息向第二块大小的第二缓冲器写入零。在第二缓冲器中写入的零可以与在第一缓冲器中写入的旧数据对应。
仍然可以与写入-写入模式利用即时XOR的原子读取-修改-写入操作以及关联操作。然而,通过除了即时XOR的原子读取-修改-写入操作以及关联操作之外还使用写入-写入模式,可以提高性能而对对应硬件和固件环境无显著影响。
图1图示可以包括至少一个主机(例如主机105、110)的计算系统100的框图。主机105、110中的每个主机可以包括约512字节或者其倍数的第一块大小的多个块。约512字节的第一块大小可以是但不限于512字节、516字节、520字节、524字节、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配置、比如RAID-5或者RAID-6中被配置并且存储奇偶位和数据。
另外,盘驱动140、145、150、155中的每个盘驱动可以包括约4KB或者其倍数的第二块大小的多个块。约4KB的第二块大小可以是但不限于4,096字节、4,224字节或者其任何组合。因此,盘驱动140、145、150、155可以在具有约4KB的第二块大小的RAID配置中。然而,本领域普通技术人员将认识块大小可以随着技术进步而增加并且这样,权利要求和这里讨论的任何实施例的范围不限于约4KB和约512字节的块大小。
主机105、110、存储控制器120、125和RAID控制器130、135中的每个设备可以是任何适当计算设备、比如个人计算机、工作站、客户端、服务器、大型机、手持计算机、掌上计算机、电话设备、 网络装置、刀片计算机、其它计算机或者其任何组合。盘驱动140、145、150、155中的每个盘驱动可以是任何适当物理硬盘、固态盘、光盘、其它盘或者其任何组合。存储控制器120也可以如图2中所示与RAID控制器130组合成单个存储控制器200。
在这里所示实施例中,主机105、110可以被配置为使用约512字节或者其倍数的块大小并且可以请求向盘驱动140、145、150、155中的至少一个盘驱动写入约512字节的块大小的新数据。该请求可以由存储子系统115接收、由存储控制器120、125处理,并且可以向RAID控制器130、135传递该请求。RAID控制器130、135可以使用写入-写入模式以及即时XOR模式以及其它指令,并且RAID控制器130、135可以向盘驱动140、145、150、155中的至少一个盘驱动写入。
图2图示用来实施装置的主要硬件实体,该装置包括存储器和配置为执行访问存储器的过程的处理器。该装置可以是与图1的RAID控制器135组合的图1的存储控制器120、125相似的、图2的存储控制器200的一个实施例。
存储控制器200可以包括集成电路装置、比如微芯片或者芯片205。芯片205可以包括处理器、比如嵌入的处理器210。处理器210可以操控存储控制器200并且更具体为存储器控制器220、SAS控制器270、PCIe控制器245或者其任何组合以执行写入-写入模式、即时XOR的原子读取-修改-写入操作、关联操作或者其任何组合。处理器210可以经由总线耦合到至少一个存储器、例如在芯片205外部的存储器、比如DRAM215。可以利用DRAM215作为控制存储库。
存储控制器200也可以包括具有存储器控制逻辑225、比如写入逻辑230、读取逻辑235、XOR逻辑240和FFM逻辑242的存储器控制器220。存储器控制逻辑225可以是硬件并且包括至少一个门、比如用于XOR逻辑240的XOR门。另外,存储器控制逻辑225接收指示是否选择和应当利用写入-写入模式的指示。如果该指示是指 示选择写入-写入模式,则存储器控制逻辑225可以执行写入-写入模式的两个写入操作。另外,存储器控制逻辑225在利用写入-写入模式时仍然可以执行即时XOR的原子读取-修改-写入操作以及关联操作(如结合图3和图4进一步讨论的那样)。
存储器控制器220可以经由总线耦合到外围部件互连快速或者PCIe控制器245。PCIe控制器245可以由至少一个PCIE总线247进一步耦合到至少一个主机250。可以利用PCIE总线247以与主机250连接和用于直接存储器存取(DMA)数据流。
主机250可以与图1的主机105、110相似并且将通常在芯片205外部。主机250可以包括在约512字节或者其倍数的第一块大小(例如512字节、516字节、520字节、524字节、528字节或者其任何组合)和第一大小LBA的至少一个块中的新数据255。新数据255可以在至少一个块中包括至少一个数据值。主机250也可以包括被配置为即使在物理块驱动被配置成约4KB的第二扇区大小(例如4096、4224或者其任何组合)时仍然使用约512字节的第一扇区大小用于访问的操作系统265。实际上,新数据255可以存储CKD记录,并且每个CKD记录可以被对准到512字节块边界。主机250也可以包括直接存储器数据存取(DMA)控制逻辑(未示出)。
处理器210可以将从主机250接收的命令从第一块大小和第一大小LBA转换成第二块大小和第二大小LBA。处理器210也可以推导数据前大小和数据后大小。例如在第一扇区大小是512字节而第二扇区大小是4K时,除以8的第一大小LBA然后可以是第二大小LBA,或者除以8的第一大小LBA可以用来映射到第二大小LBA。在以8为模的第一大小LBA为非零时,这一结果(1至7)x512字节然后可以是数据前大小。第二块大小可以等于第一块大小加上数据前大小之和被上取整成4K倍数。上取整值可以是数据后大小。数据前大小和数据后大小可以是数据驱动285的可以在向数据驱动285写入第二块大小时不变的旧数据287在第二块大小的开始和结束处的数据量。可以向SAS控制器270传递第二块大小、第二块 LBA、数据前大小和数据后大小。这样,在SAS控制器270读取旧数据287作为RAID-5或者RAID-6写入操作的部分时,SAS控制器270然后可以在向存储器控制器220传递数据前和数据后时选择写入-写入模式并且可以选择即时XOR用于第二块大小传送的其余部分。
存储器控制器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和具有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连接。
驱动可以在芯片205外部并且可以与图1的盘驱动140、145、150、155相似。数据驱动285、P奇偶位驱动290和Q奇偶位驱动295可以各自具有约4KB的多个第二数据块大小、比如但不限于4096字节、4224字节或者其任何组合的多个块。可以使用线性块访问数据或者LBA来访问数据驱动285、P奇偶位驱动290和Q奇偶位驱动295的每个块。可以在RAID-5和RAID-6配置二者中从P奇偶位驱动290读取和向P奇偶位驱动290写入。然而,可以与RAID-6配置利用Q奇偶位驱动295。
可以向数据驱动285写入新数据255。具体而言,可以向数据驱动285的至少一个目的地块、比如目的地块288写入新数据255。为了简化,这里可以利用术语“目的地块”以引用数据驱动285的块, 其中将基于新数据255的地址信息(例如LBA)写入新数据255。例如主机250可以请求向第一块大小的某些LBA写入新数据255,并且目的地块288可以是来自数据驱动255的其中存储那些LBA的块。可以从数据驱动285读取目的地块288、包括它的旧数据287,并且在写入-写入模式的操作和即时XOR的原子读取-修改-写入操作之后,可以向数据驱动285的目的地块288写入新数据255。简言之,主机可以请求在驱动LAB Y开始的大小为X的操作。固件可以暂时分配DRAM中的缓冲器、比如两个缓冲器——各自大小为X加上数据前和数据后大小——用于这里讨论的操作。因此,在一些实施例中,可以未涉及到表。
SAS控制逻辑275可以执行涉及到数据驱动285、P奇偶位驱动290和Q奇偶位驱动295的读取操作、写入操作或者其任何组合。SAS控制逻辑也可以如必需的那样从驱动向存储器控制逻辑220传递信息。另外,SAS控制逻辑275可以确定存储器控制逻辑220是选择并且应当利用写入-写入模式还是即时XOR模式。例如,SAS控制逻辑275可以比较新数据255的块大小和起始对准与数据驱动285中的至少一个数据驱动的块大小。如果来自主机250的新数据的块大小小于数据驱动285的块大小或者小于门限(例如4KB门限),则基于该比较,SAS控制275可以向存储器控制器220传递用于指示选择并且应当利用写入-写入模式的指示(例如位、触发、信号、其它指示或者其任何组合)。
具体而言,SAS控制逻辑275可以指示选择写入-写入模式或者即时XOR模式如下。SAS控制器270向存储器控制逻辑225传送旧数据驱动285的读取可以是第二块大小的一个或者多个部分传送。SAS控制器270可以在模式即时XOR与写入-写入模式之间切换时中断向存储器控制逻辑225的传送。SAS控制器270可以在它发布写入时向存储器控制逻辑225传递以下信号:用于选择写入-写入模式或者选择即时XOR的即时XOR命令或者写入-写入命令位、用于也选择RAID-6的位、8位RAID-6常数、指向第一缓冲器305的地 址、指向第二缓冲器310的地址。
另外,SAS控制逻辑275可以确定它是否应当传递选择写入-写入模式的指示如下。例如,固件可以构建的SAS命令块(CB)中具有控制信息。另外,如果有4K驱动(在CB中的1位选择这一驱动)并且如果操作在子块偏移开始,则对于上至该偏移的前N个子块,可以使用写入-写入模式。CB也具有操作长度,如果该长度在后4K的结束之前完成,则那些子块也可以使用写入-写入模式。
存储器控制器220可以经由总线进一步耦合到比如在芯片205外部的至少一个存储器、比如DRAM300。DRAM300可以包括至少一个缓冲器、比如第一缓冲器305、第二缓冲器310、第三缓冲器315和第四缓冲器317。第四缓冲器317可以在RAID-6配置中被利用用于有限字段乘法并且可以在无有限字段乘法的RAID配置、比如RAID-5配置中被省略。缓冲器305、310、315、317可以是用于操作的暂时DRAM位置。
第一缓冲器305、第二缓冲器310、第三缓冲器315和第四缓冲器317中的每个缓冲器可以是约4KB或者其倍数的第二块大小((例如4096、4224或者其任何组合),因为数据驱动285、P奇偶位驱动290和Q奇偶位驱动295是约4KB的第二块大小。然而,如果数据驱动285、P奇偶位驱动290、Q奇偶位驱动295或者其任何组合是除了大约4KB之外的另一块大小,则第一缓冲器305、第二缓冲器310、第三缓冲器315、第四缓冲器317或者其任何组合的块大小可以是该另一块大小。
另外,第一块大小可以小于或者简单地不同于第二块大小。写入-写入模式向第一缓冲器305和第二缓冲器310写入。数据可以基于待写入、读取或者其任何组合的数据(例如新数据255、旧数据287或者其它数据)的地址信息(例如LBA)放置于第一缓冲器305、第二缓冲器310、第三缓冲器315、第四缓冲器317或者其任何组合的块的特定扇区中。实际上,可以与这里讨论的所有驱动和缓冲器利用LBA寻址。
第一缓冲器305可以包括至少一个4KB块、比如第一4KB块320、第二4KB块325和第n4KB块330。存储器控制器220可以执行涉及到第一缓冲器305、第二缓冲器310、第三缓冲器315和第四缓冲器317的任何读取操作、写入操作、XOR操作、FFM操作或者其任何组合。
接着转向数据控制器200的操作,与即时XOR的原子读取-修改-写入操作结合,SAS控制逻辑275可以将从数据驱动285读取的数据与用于第一缓冲器305和第二缓冲器310的地址这两个地址一起向存储器控制逻辑225传递。存储器控制逻辑225向第一缓冲器305发布读取的DRAM(即读取)、XOR这一数据与从SAS控制逻辑275接收的新数据255(即修改)并且向第二缓冲器310写入它。
实际上,与即时XOR的原子读取-修改-写入操作和关联操作结合,对于RAID-5,存储控制器200分配三个缓冲器(例如第一缓冲器305、第二缓冲器310和第三缓冲器315)并且执行包括在(b)的即时XOR的原子读取-修改-写入操作和在(a)、(c)-(e)的关联操作的以下操作:接收并且向第一缓冲器305写入新数据255;读取数据驱动285(即读取)并且与第一缓冲器305XOR旧数据287(即修改)并且在第二缓冲器310中写入(即写入)该旧数据;向数据驱动器285写入在第一缓冲器305中的新数据255;从P奇偶位驱动290读取、与第二缓冲器310XOR并且在第三缓冲器310中放置P奇偶位292;并且向P奇偶位驱动290写入具有新P奇偶位的第三缓冲器310。
与即时XOR的原子读取-修改-写入操作和关联操作结合,对于RAID-6,存储控制器200分配用于FFM的附加第四缓冲器并且执行包括在(b)的即时XOR的原子读取-修改-写入操作和在(a)、(c)-(f)的关联操作的以下操作:以上(a)-(d)操作,不同在于在XOR之前执行与第四缓冲器317的FFM(e)从Q奇偶位驱动295读取并且与第二缓冲器310 XOR而且在第三缓冲器315中放置Q奇偶位297;以及(f)向Q奇偶位驱动295写入具有新Q奇偶位的第 三缓冲器315。
然而,存储器控制逻辑225还可以利用写入-写入模式以比即时XOR的原子读取-修改-写入操作和关联操作潜在地提高性能。具体而言,可以添加写入-写入模式作为如必需的那样与即时XOR的原子读取-修改-写入操作和关联操作结合利用的模式。例如,SAS控制逻辑275可以被保持基本上相同而仍然可以向存储器控制逻辑225发布写入并且提供两个地址。然而,SAS控制逻辑275可以被改变成提供选择写入-写入模式的指示。在这一指示是指示应当利用写入-写入模式时,存储器控制逻辑225可以向第一缓冲器305发布写入、然后可以向第二缓冲器310发布零写入。SAS控制逻辑275也可以被改变成确定是否应当利用写入-写入模式。
因此,与写入-写入模式结合,存储控制器200可以经由PCIE总线247从主机250的操作系统265接收对于写入约512字节的块的新数据255的请求。响应于接收该请求,SAS控制器270的SAS控制逻辑275如必需的那样读取数据驱动285并且向存储器控制器220传递旧数据287。用于SAS控制逻辑275的(例如固件创建的)命令块可以包括向存储器控制器220传递的两个存储器控制器220地址(用于第一缓冲器305和第二缓冲器310)以及在RAID-6配置中用于有限字段乘法的额外字段(例如第四缓冲器317)。SAS控制逻辑275也如必需的那样向存储器控制器200发布读取操作、写入操作或者其任何组合。SAS控制逻辑275也可以确定是否应当选择写入-写入模式并且向存储器控制器220传递指示应当利用写入-写入模式的指示。
存储器控制器200的存储器控制逻辑225对SAS控制逻辑275发布的读取操作和写入操作做出响应。例如,存储器控制逻辑225如必需的那样可以使用写入-写入模式并且可以向用于第一缓冲器305和第二缓冲器310的两个地址写入。具体而言,存储器控制逻辑225的写入逻辑230可以向第一缓冲器305写入旧数据(即写入)而可以向第二缓冲器310写入零(即写入)。
存储器控制逻辑225向SAS控制逻辑225传递第一缓冲器305,并且SAS控制逻辑275向数据驱动285写入第一缓冲器305。附加读取操作、写入操作、XOR操作、FFM操作或者其任何组合、比如即时XOR的原子读取-修改-写入操作和关联操作的操作可以如这里讨论的那样由SAS控制逻辑275、存储器控制逻辑225或者其任何组合执行。例如,XOR逻辑240可以按照即时XOR的原子读取-修改-写入操作XOR第一缓冲器305与从SAS控制逻辑275接收的来自数据驱动285的旧数据287。
图3示出写入第一块大小的新数据的方法的一个实施例。方法400可以用于RAID-5配置并且可以由图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。此后,可以使用第一缓冲器505和第二缓冲器515来执行其余关联操作以生成新奇偶位信息。虽然在图3和图5的描述中参照图2的一个目的地块288,但是本领域普通技术人员将认识可以有来自数据驱动285的多个目的地块288。
存储控制器可以在405接收新数据。例如,图2的存储控制器200可以通过PCIe控制器245经由PCIE总线247从主机250的操作系统265接收对于写入约512字节的块的新数据255的请求。该请求可以包括新数据255的地址信息、比如其中应当写入新数据255的至少一个LBA。
响应于接收新数据255,PCIe控制器245向存储器控制逻辑255发布具有新数据255和LBA的写入。可以在410向第一缓冲器写入新数据。例如,图2的存储器控制逻辑225的写入逻辑230可以根 据新数据255的包括任何偏移的地址信息向第一缓冲器305写入新数据255。第一缓冲器305可以如图5的第一缓冲器505所示在410中在该第一缓冲器中仅有新数据255。
可以在415从数据驱动读取旧数据。例如,图2的SAS控制器270的SAS控制逻辑275可以如图5的数据驱动510所示从数据驱动285读取旧数据287。具体而言,SAS控制逻辑275可以利用新数据的LBA以标识其中将写入新数据255的目的地块288并且读取目的地块288的旧数据287。
可以在416关于读取的数据是否正在改变进行确定。在读取的数据正在改变时,然后可以利用即时XOR模式以计算增量数据,并且控制可以向426和427传递。如果不是,则可以利用写入-写入模式,从而可以保留旧数据并且增量数据可以是零,而且控制可以向420和425传递。
转向420,假设存储器控制逻辑255接收用于利用写入-写入模式的指示,可以在420向第一缓冲器写入旧数据,并且这防止旧数据改变。例如,图2的存储器控制逻辑225的写入逻辑230可以如图5的第一缓冲器505中所示向第一缓冲器305写入旧数据287(即第一写入操作)。可以根据来自目的地块288的旧数据的地址信息写入旧数据287。第一缓冲器305可以在这一点完成加载。
此外,可以在425向第二缓冲器写入零。第二缓冲器是在旧数据与新数据之间的差异,并且由于旧数据未正在改变,所以结果为零。实际上,第二缓冲器可以用来跟踪改变或者增量数据。例如,图2的存储器控制逻辑225的写入逻辑230可以如图5的第二缓冲器515进一步所示向第二缓冲器310写入零(即第二写入操作)。可以根据旧数据287的地址信息写入零。具体而言,可以在第二缓冲器310中写入零以与在第一缓冲器305中的旧数据287对应。实际上,在第二缓冲器310中的零和在第一缓冲器305中写入的旧数据287可以按照LBA对应。
可以在426读取并且与从数据驱动读取的旧数据XOR第一缓冲 器。具体而言,可以对于新数据执行即时XOR的原子读取-修改-写入操作。例如,图2的存储器控制逻辑225的读取逻辑235可以读取第一缓冲器305。另外,XOR逻辑240可以XOR第一缓冲器305与旧数据287。可以在427根据新数据255的地址信息向第二缓冲器写入XOR乘积。例如,图2的存储器控制逻辑225的写入逻辑230可以如图5的第二缓冲器515进一步所示向第二缓冲器310写入XOR乘积以与新数据255对应。
指出可以多次、按照任何顺序或者二者执行420、425、426、427或者其任何组合。例如,值得指出的是并非所有旧数据287可以在相同时间可用于向第一缓冲器305写入。因此,可以如必需的那样多次执行420和425以向第一缓冲器305写入旧数据287而向第二缓冲器305写入零。例如,在428可以关于是否完成读取进行确定。在未完成读取时,控制可以向所示循环的416传递以重启循环。在完成读取时,循环可以已经完成并且控制可以向430传递。实际上,416至428可以循环每个512/528直至盘读取数据已经都被处理。然而,接着关联操作可以被执行并且可以生成奇偶位信息。
可以在430向数据驱动写入第一缓冲器。例如图2的SAS控制器270的SAS控制逻辑275可以如图5的数据驱动510进一步所示,向数据驱动285的目的地块288写入新数据255和第一缓冲器305的旧数据285。
可以在435从P奇偶位驱动读取P奇偶位。例如,图2的SAS控制器270的SAS控制逻辑275可以根据P奇偶位驱动290的P奇偶位292的地址信息读取P奇偶位。例如,可以读取与在目的地块288中的数据的LBA对应的P奇偶位292。
可以在440读取并且与从P奇偶位驱动读取的P奇偶位XOR第二缓冲器。例如,图2的存储器控制逻辑225的读取逻辑235可以读取第二缓冲器310。另外,XOR逻辑240可以XOR第二缓冲器310与来自P奇偶位驱动290的P奇偶位292以生成新奇偶位。
可以在445向第三缓冲器写入XOR乘积(即新P奇偶位)。例 如图2的存储器控制逻辑225的写入逻辑230可以向第三缓冲器315写入XOR乘积。
可以在450向P奇偶位驱动写入第三缓冲器。例如,图2的SAS控制器270的SAS控制逻辑275可以向P奇偶位驱动290写入在第三缓冲器315中的用于目的地块288的新P奇偶位。
图4示出写入第一块大小的新数据的方法的一个实施例。方法600可以用于RAID-6配置并且可以由图2的存储控制器200或者图1的存储控制器120、125执行。方法600也可以使用图2的第一缓冲器305、第二缓冲器310、第三缓冲器315和第四缓冲器317以及图2的数据驱动287、P奇偶位驱动290和Q奇偶位驱动295。缓冲器和驱动中的每个缓冲器和驱动可以是约4KB的块大小。为了易于理解,图5包括一个示例500,该示例举例说明在执行方法600的写入-写入模式和即时XOR的原子读取-修改-写入操作期间的与图2的第一缓冲器305相似的第一缓冲器505、与图2的数据驱动285相似的数据驱动510和与图2的第一缓冲器310相似的第二缓冲器515。此后,可以使用第一缓冲器505和第二缓冲器515来执行其余关联操作以生成新奇偶位信息。虽然在图4和图5的描述中参照图2的一个目的地块288,但是本领域普通技术人员将认识可以有来自数据驱动285的多个目的地块288。图4的方法600除了与Q奇偶位和FFM有关的操作之外与图3的方法400相似。
存储控制器可以在605接收新数据。例如,图2的存储控制器200可以通过PCIe控制器245经由PCIE总线247从主机250的操作系统265接收对于写入约512字节的块的新数据255的请求。该请求可以包括新数据255的地址信息、比如其中应当写入新数据255的至少一个LBA。
响应于接收新数据255,PCIe控制器245向存储器控制逻辑255发布具有新数据255和LBA的写入。可以在610向第一缓冲器写入新数据。例如,图2的存储器控制逻辑225的写入逻辑230可以根据新数据255的包括任何偏移的地址信息向第一缓冲器305写入新 数据255。第一缓冲器305可以如图5的第一缓冲器505所示在610中在该第一缓冲器中仅有新数据255。
可以在615从数据驱动读取旧数据。例如,图2的SAS控制器270的SAS控制逻辑275可以如图5的数据驱动510所示从数据驱动285读取旧数据287。具体而言,SAS控制逻辑275可以利用新数据的LBA以标识其中将写入新数据255的目的地块288并且读取目的地块288的旧数据287。
可以在616关于读取的数据是否正在改变进行确定。在读取的数据正在改变时,然后可以利用即时XOR模式以计算增量数据,并且控制可以向626和627传递。如果不是,则可以利用写入-写入模式,从而可以保留旧数据并且增量数据可以是零,而且控制可以向620和625传递。转向620,假设存储器控制逻辑255接收用于利用写入-写入模式的指示,可以在620向第一缓冲器写入旧数据,并且这防止旧数据改变。例如,图2的存储器控制逻辑225的写入逻辑230可以如图5的第一缓冲器505中所示向第一缓冲器305写入旧数据287(即第一写入操作)。可以根据来自目的地块288的旧数据的地址信息写入旧数据287。第一缓冲器305可以在这一点完成加载。
此外,可以在625向第二缓冲器写入零。第二缓冲器是在旧数据与新数据之间的差异,并且由于旧数据未正在改变,所以结果为零。实际上,第二缓冲器可以用来跟踪改变或者增量数据。例如,图2的存储器控制逻辑225的写入逻辑230可以如图5的第二缓冲器515进一步所示向第二缓冲器310写入零(即第二写入操作)。可以根据旧数据287的地址信息写入零。具体而言,可以在第二缓冲器310中写入零以与在第一缓冲器305中的旧数据287对应。实际上,在第二缓冲器310中的零和在第一缓冲器305中写入的旧数据287可以按照LBA对应。
可以在626读取并且与从数据驱动读取的旧数据XOR第一缓冲器。具体而言,可以对于新数据执行即时XOR的原子读取-修改-写入操作。例如,图2的存储器控制逻辑225的读取逻辑235可以读 取第一缓冲器305。另外,XOR逻辑240可以XOR第一缓冲器305与旧数据287。可以在627根据新数据255的地址信息向第二缓冲器写入XOR乘积。例如,图2的存储器控制逻辑225的写入逻辑230可以如图5的第二缓冲器515进一步所示向第二缓冲器310写入XOR乘积以与新数据255对应。
指出可以多次、按照任何顺序或者二者执行620、625、626、627或者其任何组合。例如值得指出的是并非所有旧数据287可以在相同时间可用于向第一缓冲器305写入。因此可以如必需的那样多次执行620和625以向第一缓冲器305写入旧数据287而向第二缓冲器305写入零。例如,在628可以关于是否完成读取进行确定。在未完成读取时,控制可以向所示循环的616传递以重启循环。在完成读取时,循环可以已经完成并且控制可以向630传递。实际上,616至628可以循环每个512/528直至盘读取数据已经都被处理。然而接着关联操作可以被执行并且可以生成奇偶位信息。
可以在630向数据驱动写入第一缓冲器305。例如,图2的SAS控制器270的SAS控制逻辑275可以如图5的数据驱动510进一步所示向数据驱动285的目的地块288写入新数据255和第一缓冲器305的旧数据285。
可以在635从P奇偶位驱动读取P奇偶位。例如,图2的SAS控制器270的SAS控制逻辑275可以根据P奇偶位驱动290的P奇偶位292的地址信息读取P奇偶位。例如,可以读取与在目的地块288中的数据的LBA对应的P奇偶位292。
在640可以读取第二缓冲器310,可以执行有限字段乘法以生成有限字段乘法数据,并且可以异或有限字段乘法数据与从P奇偶位驱动读取的P奇偶位。例如,图2的存储器控制逻辑225的读取逻辑235可以读取第二缓冲器310,并且FFF逻辑242可以执行与第二缓冲器310的有限字段乘法以生成有限字段乘法数据。另外,XOR逻辑240可以XOR有限字段乘法数据与来自P奇偶位驱动290的P奇偶位292以生成新奇偶位。
可以在645向第三缓冲器315写入XOR乘积(即新P奇偶位)。例如,图2的存储器控制逻辑225的写入逻辑230可以向第三缓冲器315写入XOR乘积。
可以在650向P奇偶位驱动写入第三缓冲器315。例如,图2的SAS控制器270的SAS控制逻辑275可以向P奇偶位驱动290写入在第三缓冲器315中的用于目的地块288的新P奇偶位。
可以在655从Q奇偶位驱动读取Q奇偶位。例如,图2的SAS控制器270的SAS控制逻辑275可以根据Q奇偶位驱动295的Q奇偶位297的地址信息读取Q奇偶位。例如,可以读取与在目的地块288中的数据的LBA对应的Q奇偶位297。
在660可以读取第二缓冲器310,可以执行有限字段乘法以生成附加有限字段乘法数据,并且可以XOR附加有限字段乘法数据与从Q奇偶位驱动读取的Q奇偶位。例如,图2的存储器控制逻辑225的读取逻辑235可以读取第二缓冲器310,并且FFF逻辑242可以执行与第四缓冲器310的有限字段乘法以生成附加有限字段乘法数据。另外,XOR逻辑240可以XOR附加有限字段乘法数据与来自Q奇偶位驱动295的Q奇偶位297以生成新Q奇偶位。
可以在655向第四缓冲器317写入XOR乘积(即新Q奇偶位)。例如,图2的存储器控制逻辑225的写入逻辑230可以向第四缓冲器317写入XOR乘积。
可以在670向Q奇偶位驱动写入第四缓冲器317。例如,图2的SAS控制器270的SAS控制逻辑275可以向Q奇偶位驱动295写入在第四缓冲器317中的用于目的地块288的新Q奇偶位。
图6包括举例说明在执行图3的方法400或者图4的方法600的写入-写入模式和即时XOR的原子读取-修改-写入操作期间的与图2的第一缓冲器305相似的第一缓冲器705和与图2的第一缓冲器310相似的第二缓冲器710的另一示例700。对于这一示例,假设新数据、比如图2的新数据255是约512字节的块大小并且有六个块的新数据(即3 KB的新数据)。也假设第一缓冲器705和第二缓冲 器710是约4KB的第二块大小。另外,数据驱动、比如数据驱动285也具有约4KB的块大小。
具体而言,主机、比如图2的主机250向LBA的0x1004-0x1009发布六个块的新数据的写入操作。存储器控制逻辑、比如存储器控制逻辑225接收并且在第一缓冲器705的LBA的0x1004-0x1009在2KB偏移开始向第一缓冲器705的两个4KB块720、725写入六个块的新数据。因此,向8KB的第一缓冲器705写入3KB的新数据715。第一缓冲器705可以在该第一缓冲器中仅有3KB的新数据715,因为尚未向第一缓冲器705的前2KB和后3KB加载任何数据。
可以向数据驱动的两个目的地块、比如图2的数据驱动285的目的地块288发布8KB读取以得到旧数据、比如旧数据287。具体而言,对于这一示例,假设在数据驱动的LBA0x200-0x201中存储LBA0x1004-0x1009,因此从数据驱动读取4KB块大小的两个目的地块。在从数据驱动接收前2KB旧数据730(即偏移)时,存储器控制逻辑使用SAS控制逻辑、比如图2的SAS控制器270的SAS控制逻辑275指示的写入-写入模式。具体而言,存储器控制逻辑根据旧数据730的地址信息在第一缓冲器705中放置旧数据730并且根据旧数据730的地址信息在第二缓冲器710中写入零732。零732与第一缓冲器705的旧数据730对应。
在从数据驱动接收六个512字节的新数据715时,存储器控制逻辑使用即时XOR的原子读取-修改-写入操作以在LBA0x1004-0x1009读取第一缓冲器705、XOR在那些LBA中的新数据715与目的地块的在LBA0x1004-0x1009中的旧数据并且在第二缓冲器710的对应LBA中放置这一XOR乘积734。在从数据驱动接收后3KB旧数据735时,存储器控制逻辑使用写入-写入模式、根据地址信息在第一缓冲器705中放置旧数据735并且根据旧数据735的地址信息在第二缓冲器710中写入零737。零737与第一缓冲器710的旧数据735对应。在第二缓冲器710中的零732、737可以指示无改变,因为尚未向那些对应LBA写入新数据。
此后,可以执行在图3的430-450和630-670讨论的其余关联操作。例如,SAS控制逻辑可以向数据驱动的具有LBA的0x200-0x201的两个4KB数据块写入第一缓冲器705。
实际上,本领域普通技术人员可以认识在主机发布与数据驱动的块大小不同的块大小的写入时,仍然可以实现写入而潜在地增加性能并且未明显改变环境。仍然可以实现写入,因为来自数据驱动的旧数据中的至少一些旧数据可以与在第一缓冲器中的新数据组合。存储器控制逻辑可以如需要的那样与即时XOR的原子读取-修改-写入操作和关联操作简单地结合利用写入-写入模式。而SAS控制逻辑可以未明显改变。例如,SAS控制逻辑仍然可以向存储器控制逻辑发布写入并且仍然可以提供两个地址。然而,可以改变SAS控制以确定和指示存储器控制逻辑何时应当利用写入-写入模式并且改变SAS控制以传递指示。
在这一指示是指示应当利用写入-写入模式时,存储器控制逻辑仍然可以向第一缓冲器发布写入而可以向第二缓冲器发布写入零。然而,可以无需分配额外缓冲器,可以无需添加向数据驱动(或者其它驱动)的额外访问,并且可以无需添加向缓冲器的额外访问。取而代之,缓冲器可以表现与固件相同,并且一般已经维持基本流程。另外,可以维持与在数据未匹配块大小时相同的结构(或者基本上相似结构)和设计性能。
这里描述的具体实施例可以采用全硬件实施例、全固件环境、全软件实施例或者包含硬件、固件和软件单元的任何组合的实施例这样的形式。在一个具体实施例中,在包括但不限于固件、常驻软件、微代码等的、在处理器可记录和可读存储介质中嵌入并且由处理器执行的软件中实施公开的方法。
另外,本公开内容的实施例、比如一个或者多个实施例可以采用从提供用于由或者结合计算机或者任何指令执行系统使用的程序代码的计算机可用或者计算机可读存储介质可访问的计算机程序产品这一形式。出于本说明书的目的,计算机可用或者可记录计算机 可读、非瞬态存储介质可以是任何可以有形地体现计算机程序并且可以包含、存储、传达、传播或者传送用于由或者结合指令执行系统、装置或者设备使用的程序的装置。
可以在一种或者多种编程语言的任何组合中编写用于执行用于本发明的方面的操作的计算机程序代码,该一种或者多种编程语言包括面向对象编程语言、比如Smalltalk、C++等以及常规过程编程语言、比如“C”编程语言或者相似编程语言。程序代码可以完全在用户的计算机上、部分在用户的计算机上、作为单独软件包、部分在用户的计算机上而部分在远程计算机上或者完全在远程计算机或者服务器上执行。在后一种情况下,远程计算机可以通过包括局域网(LAN)或者广域网(WAN)的任何类型的网络连接到用户的计算机,或者可以与外部计算机产生连接(例如使用因特网服务提供商通过因特网)。Java和所有基于Java的商标和标志是Oracle和/或它的子公司的商标或者注册商标。
在各种实施例中,介质可以是电子、磁、光、电磁、红外线或者半导体系统(或者装置或者设备)或者传播介质。可记录计算机可读存储介质的示例包括半导体或者固态存储器、磁带、可拆卸计算机盘、随机存取存储器(RAM)、只读存储器(ROM)、硬磁盘和光盘。光盘的当前示例包括紧致盘-只读存储器(CD-ROM)、紧致盘-读取/写入(CD-R/W)和数字万用盘(DVD)。
适合于存储和/或执行程序代码的数据处理系统可以包括通过系统总线直接或者间接耦合到存储器单元的至少一个处理器。存储器单元可以包括在实际执行程序代码期间运用的本地存储器、大容量存储装置和高速缓存存储器,这些高速缓存存储器提供至少一些程序代码的暂时存储以便减少必须在执行期间从大容量存储装置取回代码的次数。
输入/输出或者I/O设备(包括但不限于键盘、显示器、指示设备等)可以直接或者通过居间I/O控制器耦合到数据处理系统。网络适配器也可以耦合到数据处理系统以使数据处理系统能够变成通过 居间专用或者公用网络耦合到其它数据处理系统或者远程打印机或者存储设备。调制解调器、线缆调制解调器和以太网卡仅为当前可用网络适配器类型的少数类型。
提供公开的实施例的先前描述以使本领域技术人员能够实现或者使用公开的实施例。
对这些实施例的各种修改将容易为本领域技术人员所清楚,并且这里定义的通用原理可以应用于其它实施例而未脱离公开内容的范围。因此,本公开内容未旨在于限于这里所示实施例、但是将被复用。与如所附权利要求定义的原理和特征一致的最广可能范围。

使用写入写入模式向第二块大小写入第一块大小的新数据.pdf_第1页
第1页 / 共24页
使用写入写入模式向第二块大小写入第一块大小的新数据.pdf_第2页
第2页 / 共24页
使用写入写入模式向第二块大小写入第一块大小的新数据.pdf_第3页
第3页 / 共24页
点击查看更多>>
资源描述

《使用写入写入模式向第二块大小写入第一块大小的新数据.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的写入。。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1