首页> 中国专利> 以不一致保护窗口保护所有权转移的数据处理系统和方法

以不一致保护窗口保护所有权转移的数据处理系统和方法

摘要

本发明涉及一种以不一致保护窗口保护所有权转移的数据处理系统和方法。在数据处理系统中,多个代理相互之间传送操作。每个操作包括一个请求和代表对该请求的全系统响应的组合响应。在该数据处理系统中的数据存储装置内,数据结构指示该多个代理中每个代理的保护窗口扩展的持续时间。每个保护窗口扩展是接收到组合响应之后的时段,在该时段内该多个代理中的一个关联代理保护代理之间数据颗粒的一致性所有权的转移。通过参考该数据结构为该多个代理中的每个代理配置保护窗口扩展的持续时间,并且该多个代理中的至少两个代理具有持续时间不同的保护窗口扩展。此后该多个代理采用所配置的保护窗口扩展。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-12-21

    未缴年费专利权终止 IPC(主分类):G06F15/163 授权公告日:20120425 终止日期:20151029 申请日:20071029

    专利权的终止

  • 2012-04-25

    授权

    授权

  • 2008-08-13

    发明专利申请公开说明书更正 号:21 卷:24 页码:扉页 更正项目:申请人地址 误:美国纽约阿克芒克 正:美国纽约阿芒克 申请日:20071029

    发明专利申请公开说明书更正

  • 2008-08-13

    发明专利公报更正 号:21 卷:24 页码:538 更正项目:申请人地址 误:美国纽约阿克芒克 正:美国纽约阿芒克 申请日:20071029

    发明专利公报更正

  • 2008-07-16

    实质审查的生效

    实质审查的生效

  • 2008-05-21

    公开

    公开

查看全部

说明书

技术领域

本发明一般地涉及数据处理系统,并特别地涉及数据处理系统中改进的通信。

背景技术

常规的对称多处理器(SMP)计算机系统,例如服务器计算机系统,包括全部连接到系统互连的多个处理单元,系统互连典型地包括一个或多个地址、数据和控制主线。系统存储器连接到系统互连,该存储器代表了多处理器计算机系统中易失性存储器的最低级别,并且对于所有处理单元的读写访问,该存储器一般都是可达的。为了减少存在于系统存储器中的指令和数据的访问等待时间,各个处理单元典型地还受到相应的多级高速缓存层级的支持,较低级别的高速缓存可以由一个或多个处理器核心共享。

由于处理单元能够操作的时钟频率升高和系统规模的增大,经由系统互连的处理单元之间的通信等待时间变成关键的性能考虑。为了满足这种性能考虑,已经提议和/或实现了各种互连设计,目的是相对于常规总线式互连改进性能和可升级性。

发明内容

在数据处理系统中,多个代理相互之间传送操作。每个操作包括一个请求和代表对该请求的全系统响应的组合响应。在该数据处理系统中的数据存储装置内,数据结构指示该多个代理中每个代理的保护窗口扩展的持续时间。每个保护窗口扩展是接收到组合响应之后的时段,在该时段内该多个代理中的一个关联代理保护代理之间数据颗粒(datagranule)的一致性所有权的转移。通过参考该数据结构为该多个代理中的每个代理配置保护窗口扩展的持续时间,并且该多个代理中的至少两个代理具有持续时间不同的保护窗口扩展。此后该多个代理采用配置的保护窗口扩展。

本发明的所有目标,特征和优势在下列详细写出的描述中变得很明显。

附图说明

将在附加权利要求中列出被认为是本发明所特有的新颖性特征。然而,在阅读相关附图时,通过参考下列示例性实施例的详细描述,将最好地理解本发明以及优选使用模式,其中:

图1是根据本发明的示例性处理单元的高级框图;

图2是根据本发明的示例性数据处理系统的高级框图;

图3是包括请求阶段、部分响应阶段和组合响应阶段的示例性操作的时空图;

图4是图2中数据处理系统内全系统范围的示例性操作的时空图;

图5A-图5C描述了图4所述的示例性全系统广播操作的信息流;

图5D-图5E描述了根据本发明的示例性全系统广播操作的示例性数据流;

图6是例示任意数据系统拓扑的定时约束的示例性操作的时空图;

图7A是根据本发明第一实施例的包含ε配置例程的非易失性存储器的高级框图;

图7B是根据本发明第一实施例的为数据处理系统中的代理设定不一致保护窗口扩展持续时间的示例性方法的高级逻辑流程图;

图8A是根据本发明第二实施例的包含主ε配置例程和代理ε配置例程的非易失性存储器的高级框图;

图8B是根据本发明第二实施例的主代理为数据处理系统中的代理设定不一致保护窗口扩展持续时间使用的示例性方法的高级逻辑流程图;

图8C是根据本发明第二实施例的包含用于计算数据处理系统中代理的适当保护窗口扩展持续时间的系统存储器的框图;

图8D是根据本发明的第二实施例的数据处理系统中每个代理调用指示到数据处理系统中其他代理的寻址和组合响应等待时间的时间戳值集合所使用的示例性方法的高级逻辑流程图;以及

图8E是根据本发明第二实施例的数据处理系统中每个代理内的指定窥探器针对等待时间测量操作记录寻址和组合响应时间戳所使用的示例性方法的高级逻辑流程图。

具体实施方式

I.处理单元和数据处理系统

现在参照附图并且具体参照图1,示出了根据本发明的处理单元100的示例性实施例的高级框图。在所述实施例中,处理单元100是一个单个集成电路,包括两个独立处理指令和数据的处理器核心102a、102b。每个处理器核心102包括至少一个用于取得指令并对其排序以供执行的指令排序单元(ISU)104和一个或多个用于执行指令的执行单元106。执行单元106执行的指令可以包括,例如,定点和浮点算术指令、逻辑指令,以及请求对存储块的读写访问的指令。

多级易失性存储器层级支持每个处理器核心102a、102b的操作,该层级在其最低级具有一个或多个共享系统存储器132(图1中仅示出了一个),在其较高级具有一级或更多级的高速缓冲存储器。正如所述那样,处理单元100包括集成存储控制器(IMC)124,该控制器响应于从处理器核心102a、102b接收的请求和窥探器126在互连结构(下面所述)上窥探到的操作,控制对系统存储器132的读写访问。

在示例性实施例中,处理单元100的高速缓冲存储器层级包括,每个处理器核心102a、102b内的通过式存(store-through)一级(L1)高速缓存108,和处理单元100所有处理器核心102a、102b所共享的二级(L2)高速缓存110。L2高速缓存110包括一个L2阵列和目录114,主控制器112和窥探器116。响应于从关联处理器核心102a、102b中接收的存储器访问(或其他)请求,主控制器112在互连结构上发起事务并访问L2阵列和目录114。窥探器116在互连结构上检测操作,提供适当响应,并完成操作所请求的对L2阵列和目录114的访问。尽管示例性高速缓存层级只包括两级高速缓存,本领域普通技术人员将明白,选择性的实施例可以包括片上、片外、内嵌式(in-line)和旁路读出式(lookaside)高速缓存的附加等级(L3、L4等等),这些高速缓存可以全包括、部分包括,或不包括更高级高速缓存的内容。

图1还示出了,处理单元100包括集成互连逻辑120,通过它可以将处理单元100作为更大数据处理系统的一部分连接到互连结构。在所述实施例中,互连逻辑120支持任意数目t1的“第一层”互连线路,在这种情况下它包括接入和呼出的X、Y、Z线路。互连逻辑120还支持任意数目t2的第二层线路,如图1中所示的接入和呼出A和B线路。由于这些第一和第二层线路,可以将每个处理单元100连接用于与直至t1/2+t2/2(这种情况下,是五)个其他处理单元100的双向通信。互联逻辑120包括在操作的不同阶段用于处理和转发信息的请求逻辑121a、部分响应逻辑121b、组合响应逻辑121c和数据逻辑121d。另外,互连逻辑120包括配置寄存器123,该寄存器包括用于配置处理单元100的多个模式比特。

每个处理单元100还包括响应逻辑122的实例,它实现分布式一致性信令机制的一部分,该机制维持处理单元100的高速缓存层级和其他处理单元100的高速缓存层级之间的高速缓存一致性。最后,每个处理单元100包括支持一个或多个I/O装置附加的集成I/O(输入/输出)控制器128,例如电可插可编程只读存储器(EEPROM)130。I/O控制器128可以在X、Y、Z、A和B线路上发布操作和接收数据。

根据本发明的所述实施例,处理单元100也包括最优化数据处理系统内通信所利用的工具,该数据处理系统包括多个处理单元100,例如下面参照图1所讨论的。这些工具包括至少一个ε寄存器140,并且在下面参照图8A-8E所述的本发明第二实施例中,还包括计时器150、寻址时间戳寄存器152,和组合响应(Cresp)时间戳寄存器154。

现在参照图2,这里描述了根据本发明由多个处理单元100构成的数据处理系统200的示例性实施例框图。正如示出那样,数据处理系统200包括八个处理节点202a0-202d0和202a1-202d1,在所述实施例中,每一个节点都实现为包括包含四个处理单元100的封装的多芯片模块(MCM)。将每个处理节点202内的处理单元100连接,用于处理器单元的X、Y和Z线路的点对点通信,正如示出那样。还可以将每个处理单元连接到两个不同处理节点202中的处理单元100,用于处理器单元的A和B线路的点对点通信。尽管在图2中用双箭头示出,应该理解,每一对X、Y、Z、A和B线路优选地(但不是必须地)实现为单向线路,而不是双向线路。

如下给出用于形成图2所示拓扑的通用表达式:

对于所有的I≠J,节点[I][K].芯片[J].线路[K]连接到节点[J][K].芯片[I].线路[K];以及

节点[I][K].芯片[I].线路[K]连接到节点[I][非K].芯片[I].线路[非K];以及

节点[I][K].芯片[I].线路[非K]:

(1)不连接到任何线路,以备将来扩展;或者

(2)在所有线路全部使用的情况下(即九个8路节点形成一个72路系统),连接到节点[其他][非K].芯片[I].线路[K];以及

其中I和J属于集合{a,b,c,d},并且K属于集合{A,B}。

当然,能够定义可选表达式,以便构成其他功能上等价的拓扑。此外,应该清楚,所述拓扑是代表性的,而并非穷尽了实施本发明的数据处理系统的拓扑,其他拓扑也是有可能的。在这些可选拓扑中,连接到每个处理单元100的第一层和第二层线路的数量可以是任意数量,每一层(即,I)内处理节点202的数量不需要等于每个处理节点100(即,J)的处理器单元100的数量。此外,在一些实施例中,拓扑可以不完全充满,因为一些处理节点202或个别处理单元100可以是没有的、禁用的(例如,由于电源管理和工作负载的原因),或者是无功能的(例如,由于硬件错误)。

即使完全按照图2示出的方式连接,所有处理节点202不需要将每项操作传送到所有其他处理节点202。特别地,正如上面记录的,处理单元100可以在限于它们的处理单元202的范围中广播操作,或在一个更大的范围中广播操作,例如包括所有处理节点202的全系统范围。

本领域普通技术人员将明白,SMP数据处理系统100能够包括许多附加的未示出的组件,例如互连桥接器、非易失性存储装置、用于连接网络或附随装置的端口,等等。因为这些附加组件不是理解本发明所必需的,所以没有在图2中将它们示出,这里也没有进一步地讨论它们。

II.示例性操作

现在参照图3,这里描述了在图2的数据处理系统200的互连结构上的示例性操作的时空图。当主控制器300(例如,L2高速缓存110的主控制器112或I/O控制器128内部的主控制器)在互连结构上发布请求302时操作开始。请求302优选地包括指示期望访问类型的至少一种事务类型和指示请求所访问资源的资源标识符(例如,真实地址)。普通类型的请求优选地包括下面表1中列出的。

表1

请求描述READ出于查询目的,请求存储块的映像副本RWITM(出于修改的意图而读)请求存储块的映像的唯一副本,用来更新(修改)它,并且如果有其他副本,要求破坏其他副本DCLAIM(数据主张)请求将存储块的现有只查询副本提升为唯一副本的权限,用来更新(修改)它,并且如果有其他副本,要求破坏其他副本DCBZ(数据高速缓存块零)请求创建存储块新的唯一副本的权限,不考虑它的现有状态并随后修改它的内容;并且如果有其他副本,

要求破坏其他副本CASTOUT将存储块映像从高级存储器复制到低级存储器,作为破坏高级副本的准备WRITE请求创建存储块新的唯一副本的权限,不考虑它的现有状态并立即将存储块映像从高级存储器复制到低级存储器,作为破坏高级副本的准备PARTIAL WRITE请求创建存储块新的唯一副本的权限,不考虑它的现有状态并立即将部分存储块映像从高级存储器复制到低级存储器,作为破坏高级副本的准备

有关这些操作和促使有效地处理这些操作的示例性高速缓存一致性协议的更多细节,可以在共同未决的U.S.专利申请11/055,305中找到,以上通过参考将其引入。

窥探器304接收请求302,窥探器分布在整个数据处理系统200上,例如L2高速缓存110的窥探器116和IMC 124的窥探器126。一般而言,作为一些例外,与请求302的主控制器112在相同L2高速缓存110中的窥探器116不窥探请求302(即,一般没有自我窥探),因为只有在处理单元100不能内部地服务于请求302时,才在互连结构上发送请求302。接收和处理请求302的窥探器304各自提供代表至少该窥探器304对请求302的响应的各部分响应306。IMC 124内的窥探器126例如基于窥探器126是否负责请求寻址以及它是否具有可用来服务于请求的可用资源,确定要提供的部分响应306。L2高速缓存110的窥探器116可以例如基于它的L2高速缓存目录114的可用性,处理请求的窥探器116内的窥探逻辑实例的可用性,以及与L2高速缓存目录114中请求寻址相关联的一致性状态,确定它的部分响应306。

通过响应逻辑122的一个或多个实例分阶段地或一次性地将窥探器304的部分响应306逻辑地组合,以便确定对请求302的组合响应(CR)310。在下文中将呈现的一个优选实施例中,负责生成组合响应310的响应逻辑122的实例位于包含发布请求302的主控制器300的处理单元100中。响应逻辑122经由互连结构向主控制器300和窥探器304提供组合响应310,以便指示对请求302的响应(例如,成功、失败、重试,等等)。如果CR310指示请求302成功,那么CR310可以指示,例如,所请求存储块的数据资源、主控制器300将所请求存储块高速缓存于其中的高速缓存状态,以及是否要求使一个或多个L2高速缓存110中的所请求存储块无效化的“清除”操作。

响应于收到组合响应310,为了服务于请求302,一个或多个主控制器300和窥探器304典型地完成一个或多个操作。这些操作可以包括向主控制器300供给数据、使一个或多个L2高速缓存110中高速缓存的数据的一致性状态无效或对其进行更新、完成剔出(castout)操作、向系统存储器132回写数据,等等。如果请求302要求,在响应逻辑122生成组合响应310之前或之后,可以向主控制器300发送所请求或目标存储块,或从主控制器300中发送所请求或目标存储块。

在下列描述中,参照窥探器针对请求所指定的请求寻址是一致性最高点(HPC)、一致性最低点(LPC)、或两者都不是,描述了窥探器304对请求302的部分响应和响应于请求302和/或它的组合响应310由窥探器304完成的操作。这里将LPC定义充当存储块资料库的存储装置或I/O装置。在存储块缺少HPC时,LPC掌握存储块的真实映像并有权准予或拒绝生成存储块的附加高速缓存副本的请求。对于图1和图2的数据处理系统实施例中的典型请求,LPC将是掌握所涉及存储块的系统存储器132的存储控制器124。这里将HPC定义为唯一识别的装置,其对存储块的真实映像进行高速缓存(它可以与LPC上相应的存储块相一致也可以不一致),并有权准予或拒绝修改存储块的请求。说明性地,HPC也可以响应于不修改存储块的操作向请求者提供存储块副本。因而,对于图1和图2的数据处理系统实施例中的典型请求,如果存在HPC,HPC将是L2高速缓存110。尽管可以利用其他指示器指定存储块的HPC,本发明的优选实施例利用L2高速缓存110的L2高速缓存目录114内的高速缓存一致状态来指定存储块的HPC(如果有HPC)。

仍然参照图3,如果需要,请求302中所涉及的存储块的HPC(如果有),或在缺少HPC时,存储块的LPC,响应于请求302,优选地负责保护存储块所有权的转移。在图3所示的示例性情形中,在从窥探器304n确定它的部分响应的时间一直扩展到窥探器304n接收到组合响应310的时间的保护窗口312a期间,以及在窥探器304n收到组合响应310之后扩展可编程时间的继起窗口扩展312b期间,请求302的请求寻址所指定的存储块的HPC(或缺少HPC时,LPC)上的窥探器304n保护所请求存储块所有权到主控制器300的转移。在保护窗口312a和窗口扩展312b期间,窥探器304n,通过对其他指定相同请求寻址的请求提供部分响应306来保护所有权转移,该部分响应防止其他主控制器获得所有权(例如,重试部分响应),直到所有权成功地转移到主控制器300。主控制器300在接收到组合响应310之后同样地启动保护窗口313,以便保护它对请求302中所请求的存储块的所有权。

因为窥探器304均具有处理上述CPU和I/O请求的有限资源,可能发生几种不同级别的部分响应或相应的CR。例如,负责所请求存储块的存储控制器124内的窥探器126具有一个可用于处理请求的队列,窥探器126可以做出部分响应,该响应指示了它能够充当该请求的LPC。另一方面,如果窥探器126没有可用于处理请求的队列,窥探器126可以做出部分响应,该响应指示了它存储块的LPC,但当前不能服务于该请求。类似地,L2高速缓存110中的窥探器116可以为了处理请求要求窥探逻辑的可用实例并要求访问L2高速缓存目录114。不能访问这些资源中任一个(或两者)导致发送部分响应(以及相应的CR),以便信号通知由于没有需要的资源而不能服务于请求。

III.示例性操作的广播流程

现在参照图4,将结合图5A-5C描述图4,这里例示了图2中数据处理系统200的全系统范围内的操作的示例性操作流程的时空图。在这些图中,数据处理系统200内不同处理单元100标有两个地址标识符-第一个标识了处理单元100所属的处理节点202,第二个标识了处理节点202内的特定处理单元100。因而,例如,处理单元100a0c意指处理节点202a0的处理单元100c。另外,每个处理单元100标有功能标识符,该标识符指示它相对于参与操作的其他处理单元100的功能。这些功能标识符包括:(1)本地主控制器(LM),它指明发起操作的处理单元100,(2)本地中心(LH),它指明与本地主控制器在同一处理节点202中的处理单元100,并且该处理单元100负责将操作发送到另一个处理节点202的响应(本地主控制器也能够作为本地中心),(3)远端中心(RH),它指明与本地主控制器在不同处理节点202中的处理单元100,并且该处理单元100负责将操作分发到它的处理节点202中其他处理单元100,以及(4)远端叶(RL),它指明与本地主控制器在不同的处理节点202中的处理单元100,并且该处理单元100不是远端中心。

如图4所示,示例性操作具有至少3个以上参照图3所述的阶段,即,请求(或取址)阶段、部分响应(Presp)阶段,和组合响应(Cresp)阶段。这三个阶段优先地以前述的顺序发生并且不重叠。操作可以额外地具有数据阶段,它可以任意地与请求阶段、部分响应阶段和组合响应阶段中任一个重叠。

仍然参照图4并额外的参照图5A,在本地主控制器100a0c(例如,处理节点202a0的处理单元100c)完成请求如读请求到它的处理节点202a0内的每一个本地中心100a0a、100a0b、100a0c和100a0d。的同步广播时,请求阶段开始。应该注意到,本地中心列表包括本地中心100a0c,它同时是本地主控制器。正如以下所述,有利地采用这种内部发送,使本地中心100a0c的操作与本地中心100a0a、100a0b、100a0d同步,使得能够更容易地满足下面讨论的定时约束。

响应于接收到请求,通过其A或B线路连接到远端中心100的每一个本地中心100将操作发送到它的远端中心100。因而,本地中心100a0a不在它的呼出A线路上发送操作,而是经由它的呼出B线路将操作发送到处理节点202a1内的远端中心。本地中心100a0b,100a0c和100a0d分别经由它们各自的呼出A和B线路将操作发送到处理节点202b0和202b1、处理节点202c0和202c1,以及处理节点202d0和202d1的远端中心。每一个接收操作的远端中心100接着将操作发送到它的处理节点202中每个远端叶100。因而,例如,本地中心100b0a将操作发送到其他远端叶100b0b、100b0c,和100b0d。以这种方式,利用不超过三条线路上的发送,有效地将操作广播到数据处理系统200内全部的处理单元100。

请求阶段之后,部分响应阶段(Presp)发生,如图4和图5B所示。在部分响应阶段中,每个远端叶100评价操作并将它对操作的部分响应提供给它相应的远端中心100。例如,远端叶100b0b、100b0c和100b0d将它们各自的部分响应发送到远端中心100b0a。每个远端中心100接着将这些部分响应以及它们自己的部分响应发送到本地中心100a0a、100a0b、100a0c和100a0d中相应的一个本地中心。然后本地中心100a0a、100a0b、100a0c和100a0d将这些部分响应以及它们自己的部分响应广播到处理节点202a0中的每个本地中心100。参照图5B应该注意到,由于定时的原因,处理节点202a0中本地中心100进行的部分响应的广播包括,每个本地中心100对它自己的部分响应的自我广播。

将要明白,可以以多种不同途径实现按照示出方式进行的对部分响应的收集。例如,可以将个别的部分响应从每个其他的本地中心、远端中心和远端叶传送回到每个本地中心。作为选择,为了更高的效率,可能期望在部分响应被传送回到本地中心时对它们进行累计。为了确保将每个部分响应的效果准确地传送回到本地中心100,优选地是完全以一种非破坏性的方式,例如,利用逻辑或功能和某种编码方式(其中在利用这种功能时没有相关信息丢失(例如,“独热(one-hot)”编码))来累计部分响应。

如图4和图5C进一步所示出地,处理节点202a0内每个本地中心100上的响应逻辑122编译其他处理单元100的部分响应,以便获得代表对请求的全系统响应的组合响应。然后本地中心100a0a-100a0d沿着与请求阶段所采用的相同分发路径,将组合响应广播到所有处理单元100。因而,首先将组合响应广播到远端中心100,远端中心接着将组合响应发送到它们各自的处理节点202内的远端叶100。例如,远端中心100a0b将组合响应发送到远端中心100b0a,远端中心100b0a接着将组合响应发送到远端叶100b0b、100b0c和100b0d。

如以上所述,服务于操作可以要求附加的数据阶段,例如图5D或图5E所示。例如,如图5D所示,如果操作是读类型操作,例如读或RWITM操作,远端叶100b0d可以经由将远端叶100b0d连接到远端中心100b0a、将远端中心100b0a连接到本地中心100a0b、以及将本地中心100a0b连接到本地主控制器100a0c的线路,向本地主控制器100a0c提供所请求存储块资源。相反地,如果操作是写类型操作,例如,将已修改存储块回录到远端叶100b0b的系统存储器132的高速缓存剔出操作,则经由将本地主控制器100a0c连接到本地中心100a0b、将本地中心100a0b连接到远端中心100b0a、以及将远端中心100b0a连接到远端叶100b0b的线路,发送存储块,如图5E所示。

当然,图4和图5A-E所述操作仅仅是无数可能的全系统操作的示例,该操作可以在例如数据处理系统200的多处理器数据处理系统中并行地发生。

IV.计时考虑

如上面参照图3所述地,在可能存在其他主控制器竞争相同存储块的所有权的情况下,通过保护窗口312a、窗口扩展312b、和保护窗口313,在存储块一致性所有权从窥探器304n向请求主控制器300的“移交”期间,维持一致性。例如,如图6所示,保护窗口312a和窗口扩展312b都必须是足够长的持续时间,以便在存在竞争主控制器(CM)320的竞争请求322的情况下,保护从窥探器304n到获胜主控制器(WM)300的所请求存储块(也称为数据颗粒)的一致性所有权转移。为了确保保护窗口312a和窗口扩展312b具有足够长的持续时间,以便保护从窥探器304n到获胜主控制器300的所请求存储块一致性所有权转移,优选地约束根据图4A和图4B处理单元100之间的通信等待时间,以便满足下列条件:

A_lat(CM_S)≤A_lat(CM_WM)+C_lat(WM_S)+ε,

或者可选地表示为,

ε≥A_lat(CM_S)-(A_lat(CM_WM)+C_lat(WM_S))

这里A_lat(CM_S)是任何竞争主控制器(CM)320到拥有所请求存储块一致性的窥探器(S)304n的寻址等待时间,A_lat(CM_WM)是任何竞争主控制器(CM)320到窥探器304n授予一致性所有权的“获胜”主控制器300(WM)的寻址等待时间,C_lat(WM_S)是从获胜主控制器(WM)300接收到组合响应的时间到拥有所请求存储块的窥探器(S)304n接收到组合响应的时间的组合响应等待时间,以及ε是窗口扩展312b的持续时间。

如果不满足前述的适用于任意拓扑的系统的时间约束,竞争主控制器320的请求322可能:(1)在获胜主控制器300取得一致性所有权和启动保护窗口312b之前由获胜主控制器300接收,以及(2)在保护窗口312a和窗口扩展312b结束之后由窥探器304n接收。在这些情况下,获胜主控制器300和窥探器304n都不能提供对竞争请求322的部分响应,所述部分响应防止竞争主控制器320取得存储块一致性所有权以及从存储器中读取不一致的数据。但是,为了避免这种一致性错误,能够将窗口扩展312b可编程地(例如,通过配置寄存器123的适当设置)设置为一个长度(ε),以便补偿等待时间差异或未能满足维持一致性所必须满足的时间约束的实际实现的缺点。因此,通过求解上面等式的ε,能够确定在任何实现中的每个代理(例如,处理单元100)的窗口扩展312b的理想长度。

将能够理解,基于代理间物理连接长度的差异(例如,A、B以及X、Y和Z线路的长度差异)以及拓扑中存在或缺少不同处理单元100和/或处理节点202,代理间窗口扩展312b的理想长度将不同(是不一致的)。优选的是针对每个代理最优化窗口扩展312b的持续时间,而不是对所有代理应用最坏情况的(最长的)持续时间,以便减少系统中重试请求的数量,从而保护一致性所有权的转换。

可以做出关于前述定时约束的几种观察。第一,从竞争主控制器320到拥有窥探器304a的寻址等待时间不需要有下限,但是必须具有上限。在给定最大可能振荡器漂移,连接处理单元100的最长线路,累加停顿的最大数量以及有保证的最坏情况下的吞吐量及其他条件的情况下,通过确定可达到的最坏情况等待时间来设计上限。为了确保观察到上限,互连结构必须确保不阻塞的行为。

第二,从竞争主控制器320到获胜主控制器300的寻址等待时间不需要有上限,但必须具有下限。在给定不存在停顿,处理单元100之间可能的最短线路,以及给出特定静态配置的最慢振荡器漂移的情况下,通过可达到的最好情况等待时间确定下限。

尽管对于给定的操作,每个获胜主控制器300和竞争主控制器320对于它们各自的请求只有一个定时限度,应该理解,在操作过程期间,任何处理单元100可以是一些操作的获胜主控制器,同时是其他操作的竞争(和失败)主控制器。因此,每个处理单元100的寻址等待时间事实上具有一个上限和一个下限。

第三,从生成组合响应的时间到获胜主控制器300观察到组合响应的时间的组合响应等待时间不需要有下限(组合响应可以在任意早的时间到达获胜主控制器300),但必须具有上限。对比地,从生成组合响应的时间直到窥探器304n接收到组合响应的时间的组合响应等待时间具有下限,但不需要具有上限(尽管可以任意地利用一个上限,以便限制运行中并发操作的数量)。

第四,在部分响应等待时间上没有任何约束。也就是说,因为上面列举的定时约束的所有条件都有关于请求/寻址等待时间和组合响应等待时间,窥探器304和竞争主控制器320到获胜主控制器300的部分响应等待时间不需要具有上限或下限。

V.配置保护窗口扩展持续时间的第一实施例

根据本发明的第一实施例,基于实际采用多个可能数据处理系统拓扑中的哪种拓扑,预先确定每个代理的窗口扩展312b的持续时间。根据本发明的第一实施例以及如图7A所示,数据处理系统200内的非易失性数据存储装置,例如EEPROM130(也在图1中示出),包含程序代码(例如,ε配置例程700)和包含多组可能的窗口扩展持续时间的数据结构(例如,ε表702)。根据图7B所述处理,通过参照Epsilon表702中指定的多组窗口扩展持续时间中的一个,ε配置例程700配置每个代理中的ε寄存器140。

现在参照图7B,根据本发明第一实施例,这里描述了为数据处理系统200中的代理设置不一致保护窗口扩展的持续时间的示例性处理的高级逻辑流程图。例如,在系统启动时,响应于未示出的数据处理系统200的引导软件调用数据处理系统200内的主控制器处理单元100对ε配置例程700的执行,处理开始于框710。下一步,在框712上,ε配置例程700例如基于哪些处理单元100和处理节点202在数据处理系统200中是存在的并有功能的,X、Y、Z以及A和B线路的物理长度,以及其他可能的因素确定数据处理系统200的配置。在一种实现中,通过参照预先确定的存储器位置(例如,在处理器寄存器或系统存储器132中)做出在框712上所示例的确定,该位置载有代表数据处理系统200的系统配置的值。

下一步,在框714上,ε配置例程700浏览ε表702,以便为框712上确定的系统配置定位特定ε值集。如上面所提到的,ε表702优选地包括数据处理系统200的每种可能的合理配置的相应的ε值集。可以例如通过先验设计分析或在利用关于图8A-8E所述的方法的实验室测试或模拟测试期间确定ε表702中已记录的ε值集。响应于在ε表702中定位适当的ε值集,ε配置例程700将ε值(即,窗口扩展312b的持续时间)写入每个处理单元100的ε寄存器140(框716)。经由浏览链写操作或其他公知的芯片配置机制能够完成写操作。用于配置窗口扩展312b持续时间的示例性处理然后终止于框718。此后,每个处理单元100中的所有窥探器利用该处理单元100的ε寄存器140中指定的窗口扩展持续时间来保护一致性所有权的转移。

可以理解,尽管已经参照一种示例性实现描述了本发明第一实施例,在该示例性实现中非易失性存储装置内的ε配置例程通过参照数据存储装置内的普通数据结构(例如ε表)设置每个代理的ε持续时间,但第一实施例的其他实现也是可能的。例如,可选地,可以以硬件形式(例如,以PLA的形式)实现ε配置例程的功能。此外,包含代理的保护窗口扩展持续时间的数据结构可以分布在数据处理系统的数据存储装置内的多个位置中。

VI.用于配置保护窗口扩展持续时间的第二实施例

根据本发明的第二实施例,在系统操作期间基于数据处理系统200中观察到的等待时间,动态地确定每个代理的窗口扩展312b的持续时间。根据本发明的这个第二实施例以及如图8A所示,数据处理系统200内的非易失性存储器,例如EEPROM 130(也在图1中示出),包含数据由数据处理系统200中每个处理单元100所执行的代理ε配置例程800和只由数据处理系统200的单个主处理单元100所执行的主ε配置例程802。根据图8B、8D和8E所述的处理,主ε配置例程802通过参照数据处理系统200内观察到的实际操作等待时间,配置每个代理(例如,处理单元100)中的ε寄存器140。

现在参照图8B,这里示例了根据本发明的第二实施例主处理单元100为数据处理系统200中的代理设置不一致保护窗口扩展持续时间所使用的示例性方法的高级逻辑流程图。正如示例,在系统启动之后例如,响应于未示出的数据处理系统200的引导软件调用每个数据处理系统200内的所有处理单元100对代理ε配置例程800的执行以及数据处理系统200中的单个主处理单元100对主ε配置例程802的执行,处理开始于框810。下一步,在框812上,主ε配置例程802初始化并开始每个处理单元100内的计时器150,使得所有计时器150以预先确定的速率单调增加(或减少),以便向所有处理单元100提供共同的同步时间标准。另外,主ε配置例程802初始化系统存储器132中的多个数据结构,这些数据结构用于记录在数据处理系统200内不同代理上观察到的等待时间。如图8C所述,在一个示例性实施例中,这些数据结构包括一张N*N的寻址等待时间表840,该表针对数据处理系统200中存在的和有功能的N个代理中的每一个,包含从该代理到数据处理系统200中每个代理的寻址(即,请求)等待时间的栏目842。另外,系统存储器132中的数据结构包括一张N*N的Cresp等待时间表844,该表对于N个代理中的每一个,包含从该代理到数据处理系统200中每个代理的Cresp等待时间的栏目846。这些数据结构还包括第一1*N的标记矢量850,该标记矢量对于每个代理,包含该代理启动等待时间测量操作的标记852,并且还包括1*N的ε矢量854,该矢量对于每个代理包含一个ε字段856。

优选地将寻址等待时间表840和Cresp等待时间表844中的所有条目初始化为一个特定值(例如,是所有值的最大值),使得能够将已写过的条目与没有写过的条目区分开。同样优选地将标记矢量850中的条目初始化为复位状态。对表840、844和矢量850和854的所有读写访问优选地是不可高速缓存(例如,高速缓存禁止)访问。将这些写操作执行为不可高速缓存操作允许这些写操作只涉及代理对系统存储器132和相关联的IMC 124而不涉及L2高速缓存110,该L2高速缓存还没有配置维持存储器一致性的ε值。

再次参照图8B,开始等待时间测量,主ε配置例程802在标记矢量850中设置代理1(优选地是主处理单元100本身)的标记852,以便引起主处理单元100的代理ε配置例程800在互连结构上将等待时间测量操作广播到所有处理单元100(框814)。主ε配置例程802然后等待时间T1,如框816所示,为了使系统中出现的每个处理单元100的代理ε配置例程800完成图8D中所述处理。在时间T1逝去之后,主ε配置例程802然后通过确定代理ε配置例程800是否已经填满了表840和844中的所有条目,测试所有代理ε配置例程800是否已经完成它们的处理(框818)。如果没有,主ε配置例程802再次在框816上等待并重复框818所述测试。因而反复地完成框818和816,直到框818所述测试有了一个肯定的结果,该结果指示了所有代理ε配置例程800完成执行。此后,处理转到框822-826,其描述了主ε配置例程802对寻址等待时间表840和Cresp等待时间表844中记录的原始数据进行处理。

框822例示了主ε配置例程802从相同栏842或846中所有表条目中减去沿着每个表840和844的对角线所记录的基本时间戳,以便标准化原始时间戳数据。例如,从寻址等待时间表840的代理1的寻址等待时间栏842的所有寻址等待时间条目中减去代理1到代理1的寻址等待时间时间戳,从寻址等待时间表840的代理N的寻址等待时间栏842的所有寻址等待时间条目中减去代理N到代理N的寻址等待时间时间戳。类似地,从Cresp等待时间表844的代理1的Cresp等待时间栏842的所有Cresp等待时间条目中减去将代理1到代理1的Cresp等待时间时间戳,从Cresp等待时间表844的代理N的Cresp等待时间栏842的所有Cresp等待时间条目中减去代理N到代理N的Cresp等待时间时间戳。通过这种处理,将根据图8D所示处理记录在表840和844内的时间戳分别转换成寻址等待时间和Cresp等待时间。下一步,在框824上,对于根据等式记录在表840和844中的所有可能的竞争主控制器(CM)和获胜主控制器(WM)的组合,主ε配置例程802计算下面的等式,以便确定每个给定寻址或Cresp等待时间的代理的最大ε:

s>A_lat(CM_S)-(A_lat(CM_WM)+C_lat(WM_S))

主ε配置例程802将每个代理(例如处理单元100)的最大ε记录在ε矢量854中。如框826所示,主ε配置例程802然后在记录在ε矢量854中的每个ε值增加一个小修正因数,以便考虑定时抖动,例如,这种定时抖动的原因是请求经由处理单元100的内部信号路径的通信等待时间不同或引起操作之间定时变化的其他定时因素。

在框826之后,处理转到框828,框828描述了主ε配置例程802将适当的ε值(即,窗口扩展312b的持续时间)从ε矢量854中写入每个处理单元100的ε寄存器140。经由扫描链写操作或其他公知芯片配置机制完成框828所述写操作。此后,配置窗口扩展312b持续时间的示例处理然后终止于框830。此后,每个处理单元100中的所有窥探器利用该处理单元100的ε寄存器140中指定的窗口扩展312b的持续时间,以便保护一致性所有权转移。

现在参照图8D,这里示出了根据本发明的第二实施例,数据处理系统中每个代理(例如,处理单元100)调用指示了到数据处理系统中其他代理的寻址和组合响应等待时间的时间戳值的集合所使用的示例性方法的高级逻辑流程图。系统启动之后,响应于数据处理系统200内的未示出引导软件对代理ε配置例程800的调用,处理开始于框860。如框862所示,代理ε配置例程800然后等待时间T2,之后在框864测试它的代理在标记矢量850内的关联标记852是否设置为指示了轮到该代理通过发布等待时间测量操作调用等待时间数据集合。理想的是,代理连续地发布这种操作,以避免并行操作充满系统、潜在地增加操作等待时间和不必要地增加保护窗口扩展312b的持续时间。响应于框864处确定没有设置该代理的标记852,处理返回框862,反复地重复框864和862直到框864做出肯定的确定。

响应于在框864处确定在标记矢量850中设置代理标记852,处理转到框868。在框868上,代理ε配置例程800将特定等待时间测量请求广播到数据处理系统200内所有代理,以便触发在寻址等待时间表840和Cresp等待时间表844的相应条目内记录指示了每个代理的寻址等待时间和Cresp等待时间的时间戳。优选地,同样通过将包含在请求中的特定事务类型(ttype)来同样地识别等待时间测量请求。在发布了等待时间测量请求之后,代理ε配置例程800等待时间T3,如框870所示,以便准许所有窥探代理将他们的时间戳写入表840和844。此后代理ε配置例程800在框872检验是否在寻址等待时间表840和Cresp等待时间表844内的它的代理的栏中的所有条目都已用等待时间时间戳而不是用其被初始化的特定值所填充。

在框872之后,代理ε配置例程800在框874确定它的代理是否是代理N(即,最后一个代理)。如果是,图8D所述处理终止于框880。另一方面,如果代理ε配置例程800在框878中确定它的代理不是代理N,代理ε配置例程800顺次设置下一个代理的标记852,如框876所示,以便调用下一个代理完成框864和之后的框所示的步骤。此后处理终止于框880。

现在参照图8E,这里示出了根据本发明的第二实施例,数据处理系统中每个代理内的指定窥探器记录等待时间测量操作的寻址和组合响应时间戳所使用的示例性方法的高级逻辑流程图。示例处理开始于框882,然后进入框884,框884描述了代理中的指定窥探器(例如,窥探器116中所指定的一个窥探器)接收数据处理系统200中的代理发送的全局广播等待时间测量请求。如框866所示,响应于接收到等待时间测量请求,指定窥探器在它的本地寻址时间戳寄存器152内记录它接收到等待时间测量请求时它的计时器150的时间戳。指定窥探器然后提供部分响应(例如,零信号),如框888所示,并等候接收到等待时间测量操作的组合响应(Cresp),如框890所示。响应于接收到等待时间测量操作的Cresp,指定窥探器也将它的计时器150的时间戳记录到Cresp时间戳寄存器154内(框892)。指定窥探器然后启动高速缓存禁止(cache-inhibited)写操作,以便将它的寻址时间戳寄存器152中的时间戳写入寻址等待时间表840的相应条目中,以及将它的Cresp时间戳寄存器154中的时间戳写入寻址等待时间表840的相应条目中。此后,图8E所述处理终止于框896。

可以理解,尽管已经参照一种示例性实现描述了本发明的第二实施例,在该示例性实现中非易失性存储装置内的主ε配置例程和代理ε配置例程通过参照观察到的等待时间配置每个代理的ε持续时间,但第二实施例的其他实现也是可能的。。例如,可选地,可以以硬件的形式实现主ε配置例程和代理ε配置例程的功能。

VII.结论

正如所述,本发明提供改进的数据处理系统、程序产品、以及数据处理方法,其中窥探器采用的保护一致性所有权转移的保护窗口扩展的持续时间是不一致的。根据一个实施例,预先确定保护窗口扩展的持续时间并将其写入数据处理系统中的个别代理中。在另一个实施例中,基于数据处理系统中实际观察到的等待时间动态地确定保护窗口扩展的持续时间。

尽管已经如参照优选实施例所描述的一样特别地显示了本发明,但本领域普通技术人员可以理解,在不偏离本发明精神和范围的情况下可以做出形式上和细节上的多种改变。例如,尽管在所示实施例中所有窥探器共享共同窗口扩展持续时间的代理是处理单元100,但本领域普通技术人员将明白,在其他实施例中更多或更少数量的窥探器能够共享共同窗口扩展持续时间。另外,尽管针对执行指引本发明功能的程序代码的数据处理系统描述了本发明的各方面,但是应当理解,本发明可以可选地实现为数据处理系统所使用的程序产品。能够将定义本发明功能的程序代码经由多种计算机可读媒介传送到数据处理系统,这些媒介包括,但不限于,不可重写存储媒介(例如,CD-ROM)、可重写存储媒介(例如,软盘或硬盘驱动器),以及通信媒介,例如数字或模拟网络。因此,可以理解,在承载或编码有指引本发明功能的计算机可读指令时,这些计算机可读媒介代表本发明的可选实施例。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号