保护所有权转移的数据处理系统、方法和互连结构的制作方法

文档序号:6613311阅读:166来源:国知局

专利名称::保护所有权转移的数据处理系统、方法和互连结构的制作方法
技术领域
:本发明一般地涉及数据处理系统,具体地说,涉及数据处理系统中的改进的通信。
背景技术
:传统的对称多处理器(SMP)计算机系统(如服务器计算机系统)包括多个全部连接到系统互连的处理单元,所述系统互连通常包括一个或多个地址、数据和控制总线。连接到所述系统互连的是系统存储器,其代表所述多处理器计算机系统中的易失性存储器的最低级别并且通常可由所有处理单元进行读和写访问。为了减少对驻留在系统存储器中的指令和数据的访问等待时间,每个处理单元通常都由各自的多级别高速緩存层次结构来进一步支持,所述层次结构的一个或多个较低级别可由一个或多个处理器核心所共享。由于处理单元能够以其运行的时钟频率的升高并且由于系统,的增大,所以处理单元之间通过系统互连的通信的等待时间已成为关键的性能问题。为了解决该性能问题,提出和/或实现了各种旨在改进传统总线式互连的性能和可伸缩性的互连设计。
发明内容在数据处理系统中,多个代理在其间传送操作。每个操作包括请求和代表对所述请求的系统范围响应的组合响应。观察所述多个代理之间的请求和组合响应的等待时间。通过参考所述观察的等待时间来使用保护窗口扩展的相应持续时间配置所述多个代理中的每个代理。每个保护窗口扩展是接收到組合响应之后的时间段,在此期间,所述多个代理中的一个关联代理保护数据颗粒的一致性所有权在代理之间的转移。所述多个代理根据所述配置来采用保护窗口扩展,并且至少两个所述代理具有不同持续时间的保护窗口扩展。本发明的所有目标、特征和优点将在以下详细的书面描述中变得显而易见。在所附权利要求书中说明了被认为是本发明特性的新颖特征。但是,当结合附图阅读时,通过参考以下对示例性实施例的详细说明,可以最佳地理解本发明及其优选使用方式,这些附图是图l是根据本发明的示例性处理单元的高级方块图2是根据本发明的示例性数据处理系统的高级方块图3是包括请求阶段、部分响应阶段和组合响应阶段的示例性操作的时空图4是图2的数据处理系统中的系统范围的示例性操作的时空图;图5A-5C示出了图4中示出的示例性系统范围的广插^^作的信息流;图5D-5E示出了根据本发明的示例性系统范围的广播操作的示例性数据流;图6是示出了任意数据处理系统拓朴的定时约束的示例性操作的时空图7A是根据本发明的第一实施例的包含s配置例程的非易失性存储器的高级方块图7B是根据本发明的第一实施例在数据处理系统中为代理设置非一致保护窗口扩展的持续时间的示例性方法的高级逻辑流程图8A是根据本发明的第二实施例的包含主机s配置例程和代理s配置例程的非易失性存储器的高级方块图8B是才艮据本发明的第二实施例的主机代理借助其在数据处理系统中为代理设置非一致保护窗口扩展的持续时间的示例性方法的高级逻辑流程图8C是根据本发明的第二实施例的包含用于在数据处理系统中为代理计算保护窗口扩展的适当持续时间的数据结构的系统存储器的方块图8D是根据本发明第二实施例的数据处理系统中每个代理收集指示对数据处理系统中的其他代理的寻址和组合响应等待时间的时间戳^值的示例性方法的高级逻辑流程图;以及图8E是根据本发明的第二实施例的数据处理系统中每个代理内的指定蔬探器借助其记录等待时间测量操作的地址和组合响应时间戳的示例性方法的高级逻辑流程图。具体实施例方式I.处理单元和数据处理系统现在参考附图,具体地说,参考图1,其中示出了根据本发明的处理单元100的示例性实施例的高级方块图。在示出的实施例中,处理单元100是包括用于独立地处理指令和数据的两个处理器核心102a、102b的单个集成电路。每个处理器核心102包括用于取回和指示指令以便执行的至少一个指令定序单元(ISU)以及用于执行指令的一个或多个执行单元106。执行单元106执行的指令可以包括,例如,定点和浮点算术指令、逻辑指令以及请求对存储器块的读写访问的指令。每个处理器核心102a、102b的操作都由在其最低级别具有一个或多个共享系统存储器132(仅其中之一在图1中示出)并且在其较高级别具有一个或多个级别的高速緩冲存储器的多级别易失性存储器层次结构来支持。如图所示,处理单元IOO包括集成存储器控制器(IMC)124,集成存储器控制器124控制对系统存储132的读写访问,以响应从处理器核心102a、102b接收的请求和由窥探器126在互连结构(下文介绍)上窥探的操作。在示例性实施例中,处理单元100的高速緩冲存储器层次结构包括每个处理器核心102a、102b内的直通存储(store-through)—级(Ll)高速緩存108和由处理单元100的所有处理器核心102a、102b共享的二级(L2)高速緩存110。L2高速緩存110包括L2阵列和目录114、主机112和窥探器116。主机112启动互连结构上的事务并响应于从关联的处理器核心102a、102b接收的存储器访问(以及其他)请求而访问L2阵列和目录114。窥探器116检测互连结构上的操作,提供适合的响应,并执行所述操作所需的对L2阵列和目录114的任何访问。尽管示出的高速緩存层次结构仅包括两级高速緩存,但是本领域的技术人员将理解,备选实施例可以包括其他级别(L3、L4等)的片上或片外嵌入或旁视高速緩存,其可以完全包括、部分包括或不包括较高级别的高速緩存的内容。如图1进一步所示,处理单元100包括集成互连逻辑120,处理单元100可以借助逻辑120连接到互连结构以作为更大数据处理系统的一部分。在示出的实施例中,互连逻辑120支持任意数量的tl个"一层"互连链路,在这种情况下,其包括入站和出站X、Y和Z链路。互连逻辑120还支持任意数量的t2个二层互连链路,后者在图1中示为入站和出站A和B链路。通过这些一层和二层链路,每个处理单元100都可以连接到多达tl/2+t2/2个(在这种情况下,为5个)其他处理单元100以^更双向通信。互连逻辑120包括请求逻辑121a、部分响应逻辑121b、組合响应逻辑121c和数据逻辑121d,以便在操作的不同阶段期间处理和转发信息。此外,互连逻辑120包括配置寄存器123,后者包括用于配置处理单元100的多个模式位。每个处理单元100还包括响应逻辑122的实例,该实例实现维护处理单元100的高速^存层次结构与其他处理单元100的那些高速緩存层次结构之间的高速緩存一致性的分布式一致性信令机制的一部分。最后,每个处理单元100都包括支持连接一个或多个I/O(输"输出)设备(例如,电可擦除可编程只读存储器(EEPROM)130)的集成I/O控制器128。I/O控制器128可以发布操作并在X、Y、Z、A和B链路上接收数据。根据本发明的示出的实施例,处理单元IOO还包括用于优化包括多个处理单元100的数据处理系统中的通信的工具,如下文参考图1讨论的。此类工具至少包括s寄存器140,并且在下文参考图8A-8E说明的本发明的第二实施例中,还包括计时器150、地址时间戳寄存器152,以及组合响应(Cresp)时间戳寄存器154。现在参考图2,其中示出了根据本发明的包括多个处理单元100的数据处理系统200的示例性实施例的方块图。如图所示,数据处理系统200包括8个处理节点202a0-202d0和202al-202dl,在示出的实施例中,每个处理节点都实现为多芯片模块(MCM),后者包括包含4个处理单元100的封装。每个处理节点202中的处理单元100都连接以4更如图所示通过处理单元的X、Y和Z链路进行点对点通信。每个处理单元100还可以连接到位于两个不同处理节点202内的处理单元100以^更通过处理单元的A和B链路进行点对点通信。尽管在图2中以双箭头示出,但是应该理解,每对X、Y、Z、A和B链路优选地(但不是必须)实现为两个单向链路,而不是双向链路。可以给出形成图2所示的拓朴的一^达,如下所示对于所有I^J,节点[I[K.芯片[J1.链路[K连接到节点[J1[K1.芯片[1.链路[K;以及节点[I[K.芯片[I].链路[K]连接到节点[I][非K.芯片[I].链路[非K];以及节点[I][K.芯片[I].链路[非K]连接到以下两者之一(1)无,保留用于未来扩展;或者(2)节点[额外[非K.芯片I.链路[K],在所有链路都完全利用的情况下(即,九个8路节点形成72路系统);以及其中I和J属于集合(a,b,c,d)并且K属于集合(A,B}。当然,可以定义备选表达以形成其他功能等同的拓朴。此外,应该理解的是,示出的拓朴为代表性的,而不是穷#^现本发明的数据处理系统的拓朴,并且其他拓朴也是可能的。在此类备选拓朴中,例如,连接到每个处理单元100的一层和二层链i^:可以是任意数量,并且每层中的处理节点202数(即,I)无需等于每个处理节点的处理单元100数(即,J)。此外,在一些实施方式中,拓朴可以是不完全填充的,因为一些处理节点202或独立处理单元100可以缺失、被禁用(例如,出于电源管理或工作负荷原因),或在其他情况下不工作(例如,由于硬件错误)。虽然如图2所示的方式完全连接,但是所有处理节点202无需将每个操作都传送给所有其他处理节点202。具体地说,如前所述,处理单元100可以在限于其处理节点202的范围或更大范围(例如,包括所有处理节点202的系统范围)内广4番操作。本领域的技术人员将理解,SMP数据处理系统100可以包括许多其他未示出的組件,例如,互连桥、非易失性存储装置、用于连接到网络或附加设备的端口等。因为此类其他组件对于理解本发明并非必需,所以未在图2示出或在文中进一步说明。II.示例性操作现在参考图3,其中示出了在图2的数据处理系统200的互连结构上的示例性操作的时空图。所述操作当主机300(例如,L2高速緩存110的主机112或I/0控制器128中的主机)在互连结构上发出请求302时开始。请求302优选地至少包括指示所需访问类型的事务类型以及指示所述请求要访问的资源的资源标识符(例如,真实地址)。常见的请求类型优选地包括那些在下表I中说明的类型。表I<table>tableseeoriginaldocumentpage10</column></row><table><table>tableseeoriginaldocumentpage11</column></row><table>有关这些操作的其他详细信息和有助于有效处理这些操作的示例性高速緩存一致性协议可以参见引入作为参考的未决美国专利申请11/055,305。由分布在整个数据处理系统200中的窥探器304(例如,L2高速緩存110的窥探器116和IMC124的窥探器126)接收请求302。通常(存在某些例外),由于仅当处理单元100无法内部地为请求302服务时,请求302才在互连结构上传输,所以在与请求302的主机112处于同一L2高速緩存110中的窥探器116不会窥探请求302(即,一般没有自我窥探)。接收和处理请求302的窥探器304提供代表至少该窥探器304对请求302的响应的相应部分响应306。IMC124中的窥探器126根据例如窥探器126提供的部分响应306。L2高速緩存110的窥探器116可以根据例如其L2高速緩存目录114的可用性、窥探器116内处理所述请求的窺探逻辑实例的可用性以及与L2高速緩存目录114中的请求地址关联的一致性状态来确定其部分清求306。窥探器304的部分响应306由响应逻辑122的一个或多个实例分阶段或同时逻辑地组合以确定对请求302的组合响应(CR)310。在一个优选的实施例(将在随后呈现)中,负责生成组合响应310的响应逻辑122的实例位于包含发出请求302的主机300的处理单元100中。响应逻辑210通过互连结构将组合响应310提供给主机300和窥探器304以指示对请求302的响应(例如,成功、失败、重试等)。如果CR310指示请求302成功,则CR310可以指示,例如,请求的存储器块的数据源、将由主机300緩存的已请求的存储器块的高速緩存状态,以及是否需要使一个或多个L2高速緩存IIO中的已请求的存储器块无效的"清空"操作。响应于接收到组合响应310,一个或多个主才几300和窥探器304通常执行一个或多个操作以便为请求302服务。这些操作可以包括向主机300提供数据、使一个或多个L2高速緩存110中緩存的数据的一致性状态无效或以其他方式对其进行更新、执行驱逐#:作、将数据写回系统存储器132等。如果请求302需要,在响应逻辑122生成组合响应310之前或之后,请求或目标存储器块可以被传输到主机300或从主机300传输到请求或目标存储器块。在以下描述中,将根据请求指定的请求地址参考窥探器是最高一致性点(HPC)、最低一致性点(LPC)还是两者皆不是来描述窺探器304对请求302的部分响应306以及由窥探器304响应于请求302和/或其组合响应310而执行的操作。LPC在此被定义为用作存储器块的库的存储器设备或I/Oi史备。在存储器块不存在HPC的情况下,LPC持有存储器块的真实映像并有权许可或拒绝生成所述存储器块的其他高速緩存副本的请求。对于图1和2的数据处理系统实施例中的典型请求,所述LPC将是持有所引用的存储器块的系统存储器132的存储器控制器124。HPC在此^L定义为緩存所述存储器块(其与LPC处的相应存储器块可能一致,也可能不一致)的真实映像的唯一标识的设备并有权许可或拒绝修改存储器块的请求。说明性地,HPC还可以响应于不修改所述存储器块的操作而向请求方提供所述存储器块的副本。因此,对于图l和2的数据处理系统实施例中的典型请求,HPC(如果存在)将是L2高速緩存110。尽管其他指示符可以用来为存储器块指定HPC,但是本发明的优选实施例利用L2高速緩存110的L2高速緩存目录114内的选定高速緩存一致性状态(多个)来为存储器块指定HPC(如果存在)。仍参考图3,在请求302中引用的存储器块的HPC(如果存在),或在没有HPC的情况下,所述存储器块的LPC优选地具有保护存储器块的所有权转移(如有必要)以响应请求302的责任。在图3示出的示例性情况中,由请求302的请求地址指定的存储器块的HPC处(或在没有HPC的情况下,为LPC)的窺探器304n在保护窗口312a期间(从窺探器304n确定其部分响应306时延长到窥探器304n接收组合响应310时为止)以及在后续窗口扩展312b期间(在窥探器304n接收到组合响应310后延长可编程的时间)保护将所请求的存储器块的所有权转移给主机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.示例性操作的广j番流现在参考图4,并将结合图5A-5C对其进行说明,其中示出了图2的数据处理系统200中的系统范围操作的示例性"^作流程的时空图。在这些图中,^^用两个位置标识符对数据处理系统200中的各种处理单元100进^f亍标记-第一个标识处理单元100所属的处理节点202,第二个标识处理节点202中的特定处理单元IOO。因此,例如,处理单元100aOc指处理节点202a0的处理单元100c。此外,每个处理单元100都通过功能标识符(指示其功能与参与操作的其他处理单元100有关)进行标记。这些功能标识符包括(1)本地主机(LM),其指定发起操作的处理单元100,(2)本地集线器(LH),其指定与本地主机位于同一处理节点202且负责将操作传输到其他处理节点202的处理单元100(本地主机也可以是本地集线器),(3)远程集线器(RH),其指定与本地主机位于不同处理节点202且负责将操作分发到其处理节点202内的其他处理单元100的处理单元100,以及(4)远程叶(RL),其指定与本地主机位于不同处理节点202且不是远程集线器的处理单元100。如图4中所示,示例性操作至少具有以上参考图3说明的三个阶段,即,请求(或寻址)阶段、部分响应(Presp)阶段和组合响应(Cresp)阶段。这三个阶段优选地以上述顺序发生并且不重叠。操作可以另外具有数据阶段,它可以可选地与请求、部分响应和组合响应中的任一阶段重叠。仍参考图4并额外参考图5A,请求阶段始于本地主才几100aOc(即,处理节点202a0的处理单元100c)执行将请求(例如,读取请求)同步广才番到其处理节点202a0中的每个本地集线器100aOa、100aOb、100aOc和100aOd。应指出的是,本地集线器的列表包括本地集线器100aOc,它也是本地主机。如下文详述,有利地使用这种内部传输使本地集线器100aOc的操作与本地集线器100aOa、100aOb和100aOd同步,以^更可以更容易地满足下文讨论的定时约束。响应于接收到请求,每个通过其A或B链路连接到远程集线器100的本地集线器100将操作传输到其(多个)远程集线器100。因此,本地集线器100a0a未在其出站A链路上传输操作,而是通过其到处理节点202al中的远程集线器的出站B链路传输操作。本地集线器100a0b、100a0c和100a0d通过其各自的到在处理节点202b0和202bl、处理节点202c0和202cl,以及处理节点202d0和202dl的远程集线器的相应出站A和B链路来传输操作。每个接收到操作的远程集线器100又将操作传输到其处理节点202中的每个远程叶100。因此,例如,本地集线器100bOa将操作传输到远程叶100b0b、100b0c和100b0d。这样,有效地利用不多于3个的链路上的传输将操作广播到数据处理系统200中的所有处理单元100。在请求阶段之后,出现部分响应(Presp)阶段,如图4和5B所示。在部分响应阶段,每个远程叶100都评估操作并向其相应的远程集线器100提供其对操作的部分响应。例如,远程叶100b0b、100b0c和lOObOd将其相应的部分响应传输到远程集线器100b0a。每个远程集线器100又将这些部分响应以及其自己的部分响应传输到相应的一个本地集线器100a0a、100a0b、100a0c和100a0d。本地集线器100a0a、100a0b、100a0c和lOOaOd然后将这些部分响应以及其自己的部分响应广播到处理节点202a0中的每个本地集线器IOO。通过参考图5B,应指出的是,处理节点202a0中的本地集线器100广4番部分响应包括(出于定时原因)每个本地集线器100对其自己的部分响应的自我广播。如将理解的,可以通过多种不同的方法实现以所示方式收集部分响应。例如,可以从每个其他本地集线器、远程集线器和远程叶将单个部分响应发送回每个本地集线器。备选地,为了更高的效率,可能希望在将部分响应发送回本地集线器时聚集所述部分响应。为了确保将每个部分响应的影响精确地发送回本地集线器100,优选地通过非-皮坏性方式来聚集部分响应(如果确实^^故),例如,使用逻辑"或"功能和在该功能下不丟失任何相关信息的编码(例如,"一位有效"编码)。如图4和图5C中进一步示出的,位于处理节点202a0中的每个本地集线器100的响应逻辑122编辑其他处理单元100的部分响应以获取代表对该请求的系统范围响应的组合响应。本地集线器100a0a-100a0d然后沿着请求阶段使用的同一分发路径将组合响应广播到所有处理单元100。因此,首先将组合响应广播到远程集线器100,后者又将组合响应传输到其相应处理节点202中的每个远程叶100。例如,远程集线器100a0b将组合响应传输到远程集线器100b0a,后者又将组合响应传输到远程叶100b0b、100b0c和100b0d。如上所述,为所述操作服务可以需要另外的数据阶段,如图5D或5E中所示。例如,如图5D中所示,如果操作是读取类型操作(例如,读取或RWITM操作),则通过将远程叶100b0d连接到远程集线器100b0a、将远程集线器100b0a连接到本地集线器100a0b,以及将本地集线器100a0b连接到本地主机100a0c的链路,远程叶100b0d可以将所请求的存储器块提供给本地主机100a0c。相反地,如果操作是写入类型操作(例如,将修改后的存储器块写回远程叶100b0b的系统存储器132的高速緩存驱逐操作),则通过将本地主机100a0c连接到本地集线器100a0b、将本地集线器100a0b连接到远程集线器100b0a,以及将远程集线器100b0a连接到远程叶100b0b的链路来传输所述存储器块,如图5E所示。当然,图4和图5A-5E中示出的操作仅是无数可能同时发生于诸如数据处理系统200的多处理器数据处理系统中的系统范围操作的示例。IV.定时考虑如以上参考图3所述,在可能存在其他主机通过保护窗口312a、窗口扩展312b和保护窗口313来竟争同一存储器块的所有权的情况下,在将存储器块的一致性所有权从窥探器304n"移交"到请求主机300期间将维护一致性。例如,如图6所示,保护窗口312a和窗口扩展312b—起必须具有足够的持续时间,以便在存在由竟争主机(CM)320发出的竟争请求322的情况下,保护将已请求的存储器块(也称为数据颗粒)的一致性所有权从窥探器304n转移到获胜主机(WM)300。为了确保保护窗口312a和窗口扩展312b具有足够的持续时间来保护已请求的存储器块的所有权从窥探器304n到获胜主机300的转移,优选地限制根据图4A和4B的处理单元100之间的通信等待时间,以便满足以下条件AJat(CM_S)<A一lat(CM一WM)+C一lat(WM一S)+e,或替代地表示为,sA_lat(CM_S)-(AJat(CM一WM)+C—lat(WM一S))其中AJat(CM—S)是任何竟争主机(CM)320到拥有所请求存储器块的一致性的窥探器(多个)304n的寻址等待时间,A—lat(CM—WM)是任何竟争主机(CM)320到由窥探器304n授予一致性所有权的"获胜"主机(WM)300的寻址等待时间,CJat(W!VLS)是从获胜主机(WM)300接收到組合响应的时间到拥有所请求存储器块的窥探器(S)304n接收到组合响应的时间的组合响应等待时间,而s是窗口扩展312b的持续时间。如果未满足可应用于具有任意拓朴的系统的上述定时约束,则竟争主机320的请求322可以(1)由获胜主机300在其获得一致性所有权并启动保护窗口312b之前接收,以及(2)由窥探器304n在保护窗口312a和窗口扩展312b结束之后接收。在此类情况下,获胜主机300或窥探器304n都不会提供对竟争请求322的部分响应,这阻止了竟争主机320取得存储器块的一致性所有权及从存储器读取非一致性数据。但是,为了避免这种一致性错误,可以将窗口扩展312b编程设置(例如,通过配置寄存器123的适当设置)为长度(s),以补偿物理实施方式(否则可能无法满足维护一致性所必须满足的定时约束)的等待时间变化或缺点。因此,通M上面的等式解出s,可以针对任何实施方式中的每个代理(例如,处理单元IOO)的窗口扩展312b确定理想长度。如将理解的,窗口扩展312b的理想长度将根据代理之间物理连接的长度变化(例如,A、B和X、Y和Z链路长度的不同)和拓朴中各种处理单元100和/或处理节点202的存在或缺失而在代理之间变化(不一致)。优选地优化每个代理的窗口扩展3Ub的持续时间,而不是将最坏情况(最长的)持续时间应用到所有代理以降低在系统中重试的请求数来保护一致性所有4又的转移。可以做出若干有关上述定时约束的结论。首先,从竟争主机320到拥有的窥探器304a的寻址等待时间不必具有下限,但是必须具有上限。在给定最大可能振荡器漂移、连接处理单元100的最长链路、累计停机的最大次数以及有保证的最差情况吞吐量等情况下,通过确定可获得的最差情况等待时间来制定上限。为了确保遵守上限,互连结构必须确保无阻塞的行为。第二,从竟争主机320到获胜主机300的请求等待时间不必具有上限,但必须具有下限。在给定没有停机、处理单元100间的最短可能链路以及给定特定静态配置下的最慢振荡器漂移等情况下,通过确定可获取的最好情况等待时间来确定下限。尽管对于给定操作,获胜主机300和竟争主机320中的每一个都仅具有一个针对其相应请求的定时限制,但是将理解的是,在操作过程中,任何处理单元100都可以是某些操作的获胜主机,并且是其他操作的竟争(以及失败)主机。因此,每个处理单元100都有效地具有针对其寻址等待时间的上限和下限。第三,从生成组合响应的时间到获胜主机300观察到组合响应的时间的組合响应等待时间不必具有下限(组合响应可以在任意早的时间到达获胜主机300),但是必须具有上限。相比之下,从生成组合响应的时间直到窺探器304n接收组合响应为止的组合响应等待时间具有下限,但不必具有上限(尽管可以任意施加上限以限制同时发生的操作数)。第四,对于部分响应等待时间没有约束。也就另_说,因为所有以上列举的定时约束的条件都与请求/寻址等待时间和组合响应等待时间有关,所以窥探器304和竟争主机320到获胜主机300的部分响应等待时间不必具有上限或下限。V.配置保护窗口扩展持续时间的第一实施例根据本发明的第一实施例,基于实际实现多个可能的数据处理系统拓朴中的哪个拓朴来预先确定每个代理的窗口扩展312b的持续时间。根据本发明的第一实施例且如图7A所示,数据处理系统200中的非易失性数据存储(例如,EEPROM130,也在图1中示出)包括程序代码(例如,s配置例程700)和包含多组可能窗口扩展持续时间的数据结构(例如,s表702)。s配置例程700通过参考s表702中指定的多组窗口扩展持续时间之一来根据图7B示出的过程配置每个代理(例如,处理单元IOO)中的s寄存器140。现在参考图7B,其中示出了根据本发明的第一实施例的在数据处理系统200中设置代理的非一致保护窗口扩展的持续时间的示例性过程的高级逻辑流程图。所述过程始于块710,例如,响应于数据处理系统200的未示出的引导软件在系统启动时使数据处理系统200中的主机处理单元100执行s配置例程700。接下来,在块712,e配置例程700根据例如在数据处理系统200中哪些处理单元100和处理节点202存在并工作,X、Y、Z和A与B链路的物理长度以及其他可能因素来确定数据处理系统200的配置。在一种实施方式中,可以通过参考加载有表示数据处理系统200系统配置的值的预定存储器位置(例如,在处理器寄存器或系统存储器132中)做出在块712处示出的确定。然后,在块714,s配置例程700扫描s表702来定位在块712确定的系统配置的特定s值集合。如上所述,s表702优选地包括数据处理系统200的每个可能合法配置的相应s值集合。通过例如先验设计分析或在使用根据图8A-8E的以下说明的方法的实验或才莫拟测试期间,可以确定s表702中记录的s值集合。响应于定位s表702中的适当s值集合,s配置例程700将s值(即,窗口扩展312b的持续时间)写入每个处理单元100的s寄存器140(块716)。可以通过扫描链写入操作或其他公知的芯片配置机制来执行写入操作。然后,用于配置窗口扩展312b的持续时间的示出过程在块718结束。此后,每个处理单元IOO中的所有窥探器使用该处理单元100的s寄存器140中指定的窗口扩展持续时间来保护一致性所有权的转移。将理解的是,虽然参考示例性实施方式说明了本发明的第一实施例,在所述实施方式中非易失性数据存储中的s配置例程通过参考数据存储中的公共数据结构(即,s表)来设置每个代理的s持续时间,第一实施例的其他实施方式是可能的。例如,s配置例程的功能可以备选地在硬件中(例如,在PLA中)实现。此外,可以将包含代理的保护窗口扩展的持续时间的数据结构分布在数据处理系统的数据结构内的多个位置中。VI.配置保护窗口扩展持续时间的第二实施例根据本发明的第二实施例,基于数据处理系统200中观察的等待时间在系统操作期间动态地确定每个代理的窗口扩展312b的持续时间。根据本发明的第二实施例且如图8A所示,数据处理系统200中的非易失性存储器(例如,EEPROM130,也在图1中示出)包含由数据处理系统200中的每个处理单元100执行的代理s配置例程800和仅由数据处理系统200的单个主机处理单元100执行的主机s配置例程802。主机s配置例程802通过参考数据处理系统200中观察的实际操作等待时间来根据图8B、8D和8E中示出的过程配置每个代理(例如,处理单元100)中的e寄存器140。现在参考图8B,其中示出了根据本发明的第二实施例的主机处理单元100在数据处理系统200中设置代理的非一致保护窗口扩展的持续时间的示例性方法的高^UE辑流程图。如图所示,过程始于块810,例如,响应于在系统启动之后数据处理系统200的引导软件4吏每个数据处理系统200中的所有处理单元100执行代理s配置例程800并且使数据处理系统200的单个主机处理单元100执行主机s配置例程802。接下来,在块812,主机s配置例程802初始化并启动每个处理单元100中的计时器150,以{更所有计时器150以预定速度单调增加(或减少)以为所有处理单元100提供公共的同步时间标准。此外,主机s配置例程802在系统存储器132中初始化多个用于记录在数据处理系统200中的各个代理处观察的等待时间的数据结构。如图8C所示,在一个示例性实施例中,这些数据结构包括NxN寻址等待时间表840,对于数据处理系统200中存在和工作的N个代理中的每个代理,表840包含在数据处理系统200中从该代理到每个代理的寻址(即,请求)等待时间列842。此外,系统存储器132中的数据结构包括NxN部分响应等待时间表844,对于所述N个代理中的每个代理,表844包含在数据处理系统200中从该代理到每个代理的部分响应等待时间列846。所述数据结构还包括第一lxN标志向量850(对于每个代理,标志向量850包含用于由该代理发起等待时间测量操作的标志852),以及包括lxNs向量854(其包含每个代理的s字段856)。优选地将寻址等待时间表840和部分响应等待时间表844中的所有表项初始化为特殊值(例如,全部为1的最大值),以便可以将已经写入的表项与尚未写入的表项区分开。还优选地将标志向量850中的表项初始化为重置状态。对表840、844以及向量850和854的所有读写访问优选地是不可緩存(即,緩存禁止)的访问。作为不可緩存的操作来执行这些写入操作允许写入访问仅涉及写入系统存储器132和关联的IMC124的代理,而不涉及L2高速緩存IIO,后者尚未配置有s值来维持存储器一致性。再次参考图8B,为了开始等待时间测量,主机s配置例程802设置标志向量850中的代理1(其优选为主机处瑝单元100本身)的标志852,以使主机处理单元100的代理s配置例程800在互连结构上将等待时间测量操作广播到所有处理单元100(块814)。然后,主机s配置例程802等待时间T1(如块816所示),以便系统中存在的每个处理单元100的代理s配置例程800执行图8D中示出的过程。在经过时间Tl之后,主机s配置例程802然后通过判定代理s配置例程800是否填充了表840和844中的所有表项,来测试是否所有代理e配置例程800都已完成了它们的处理(块818)。如果否,则主机s配置例程802再次在块816等待并重复在块818示出的测试。因此,反复执行块818和816,直至在块818示出的测试具有肯定结果,表明所有代理e配置例程800已经完成了执行。此后,过程转到块822-826,所述块示出了主机e配置例程802处理寻址等待时间表840和部分响应等待时间表844中记录的原始数据。块822示出了主机s配置例程802从同一列842或846中的所有M项减去沿每个表840和844的对角线记录的基本时间戳以使原始时间戳数据正规化。例如,从寻址等待时间表840中的代理1寻址等待时间列842的所有寻址等待时间表项中减去代理1到代理1的寻址等待时间时间戳,并且从寻址等待时间表840的代理N寻址等待时间列842的所有寻址等待时间表项中减去代理N到代理N的寻址等待时间时间戳。同样,从部分响应等待时间表844中的代理1部分响应等待时间列846的所有部分响应等待时间表项中减去代理1到代理1的部分响应等待时间时间戳,并从部分响应等待时间表844的代理N部分响应等待时间列846的所有部分响应等待时间表项中减去代理N到代理N的部分响应等待时间时间戳。通过此过程,将根据图8D中示出的过程而在表840和844中记录的时间戳分别转换为寻址和部分响应等待时间。接下来,在块824,给定在表840和844中记录的竟争主机(CM)和获胜主机(WM)的所有可能组合的寻址和部分响应等待时间,主机s配置例程802计算以下等式以根据等式确定每个代理的最大e:s^一lat(CM一S)-(A一lat(CM—WM)+C—lat(WM一S))主机s配置例程802记录s向量854中的每个代理(例如,处理单元100)的最大s。如块826所示,主机s配置例程802然后向在s向量854中记录的每个s值添加小的校正因数以考虑定时抖动,所述抖动例如由于通过处理单元100中内部信号路径的请求的通信等待时间的变化和其他导致操作之间定时变化的定时因数所引起。在块826之后,过程转到块828,块828示出了主机s配置例程802将适当的5值(即,窗口扩展312b的持续时间)从e向量854写入每个处理单元100的s寄存器140。可以通过扫描链写入操作或其他公知的芯片配置机制来执行在块828示出的写入操作。此后,用于配置窗口扩展312b的持续时间的示出过程然后在块830终止。此后,每个处理单元100中的所有窥探器都使用该处理单元100的e寄存器140中指定的窗口扩展312b的持续时间来保护一致性所有权的转移。现在参考图8D,其中示出了根据本发明第二实施例的数据处理系统中每个代理(例如,处理单元100)收集指示对数据处理系统中的其他代理的寻址和組合响应等待时间的时间戳值的示例性方法的高级逻辑流程图。过程在块860开始,以响应数据处理系统200中未示出的引导软件在系统启动之后调用代理s配置例程800。如块862所示,在块864处测试是否设置了标志向量850中其代理的关联标志852以指示轮到该代理通过发布等待时间测量操作来收集等待时间数据之前,代理s配置例程800等待时间T2。希望代理顺序地发布此类操作以防系统因并行操作而满负荷,这可能会增加操作等待时间并不必要地增加保护窗口扩展312b的持续时间。响应于在块864判定未设置代理的标志852,过程返回块862,并重复块864和862,直至在块8644故出肯定的判定。响应于在块864判定在标志向量850中设置了代理的标志852,过程转到块868。在块868,代理s配置例程800将特殊的等待时间测量请求广播到数据处理系统200中的所有代理,以触发在寻址等待时间表840和部分响应等待时间表844的相关表项中记录指示每个代理的寻址和部分响应等待时间的时间戳。优选地将等待时间测量请求标识为请求中包含的特殊事务类型(Uype)。在发布等待时间测量请求之后,代理s配置例程800等待时间T3,如块870所示,以允许所有窥探代理将其时间戳写入表840和844。代理s配置例程800然后在块872發汪寻址等待时间表840和部分响应等待时间表844中其代理的列中的所有表项被等待时间时间戳填充而不是被所初始化的特殊值填充。在块872之后,代理s配置例程800在块874判定其代理是否是代理N(即,最后一个代理)。如果是,则图8D中示出的过程在块800结束。另一种情况下,如果代理e配置例程800在块878判定其代理不是代理N,则代理s配置例程800顺序地设置下一个代理的标志852,如块876所示,以使下一个代理执行在块864和随后的块中示出的步骤。此后,过程在块880结束。现在参考图8E,其中示出了根据本发明的第二实施例的数据处理系统中每个代理内的指定窥探器记录等待时间测量操作的请求和组合响应时间戳的示例性方法的高级逻辑流程图。示出的过程始于块882并随后前进到块884,块884示出了代理中的指定窥探器(例如,指定的一个窺探器116)接收由数据处理系统200中的代理发出的全局广播等待时间测量请求。如块886所示,响应于接收到等待时间测量请求,指定的窥探器在其接收到等待时间测量请求时将其计时器、150的时间戳记录到其本地寻址时间戳寄存器152中。指定的窥探器然后提供部分响应(例如,空)(如块888所示),并等待接收等待时间测量操作的组合响应(Cresp,如块890所示)。响应于接收到等待时间测量操作的组合响应,指定的窥探器还将其计时器150的时间戳记录在组合响应时间戳寄存器154中(块892)。指定的窥探器然后发起緩存禁止的写入操作以将时间戳从其寻址时间戳寄存器152写入到寻址等待时间表840中的相应表项,并将时间戳从其组合响应时间戳寄存器154写入到寻址等待时间表844中相应表项。此后,图8E中示出的过程在块896结束。将理解的是,虽然参考示例性实施方式说明了本发明的第二实施例,在所述实施方式中,非易失性数据存储中的主机和代理s配置例程用于通过参考观察的等待时间来配置每个代理的s持续时间,第二实施例的其他实施方式是可能的。例如,主机和代理s配置例程的功能可以备选地在硬件中实现。X.结论如上所述,本发明提供了数据处理的改进的数据处理系统、程序产品和方法,其中窺探器用于保护一致性所有权的转移的保护窗口扩展的持续时间是非一致的。根据一个实施例,预先确定保护窗口扩展的持续时间并将其写入数据处理系统中的单独代理。在另一个实施例中,才艮据在数据处理系统中观察的实际等待时间来动态地确定保护窗口扩展的持续时间。虽然参考优选实施例具体示出并说明了本发明,但是本领域的技术人员将理解,在不偏离本发明的精神和范围的情况下,可以做出各种形式和细节上的更改。例如,尽管在示出的实施例中,所有窥探器共享7>共窗口扩展持续时间的代理是处理单元100,但是本领域的技术人员将理解,在其他实施例中,更多或更少的窥探器可以共享公共窗口扩展持续时间。此外,尽管根据执行实现本发明的功能的程序代码的数据处理系统说明了本发明的各方面,但是应该理解,本发明可以备选地实现为与数据处理系统一起使用的程序产品。可以将限定本发明功能的程序代码通过各种计算机可读介质传递到数据处理系统,所述介质包括(但不限于)不可重写存储介质(例如,CD-ROM)、可重写存储介质(例如,软盘或硬盘驱动器),以及通信介质(例如,数字和模拟网络)。因此,应该理解,此类计算机可读介质,在承载或编码了实现本发明的功能的计算机可读指令时,代表本发明的备选实施例。权利要求1.一种数据处理系统,所述系统包括多个代理,所述代理连接以便传送操作,所述多个代理中的每个代理都包括用于处理数据和指令的处理器核心,每个操作包括请求和代表对所述请求的系统范围响应的组合响应;以及配置装置,所述配置装置用于观察所述多个代理之间的请求和组合响应的等待时间以及用于通过参考所述观察的等待时间来使用保护窗口扩展的相应持续时间配置所述多个代理中的每个代理,其中每个保护窗口扩展是接收到组合响应之后的时间段,在此期间,所述多个代理中的一个关联代理保护数据颗粒的一致性所有权在代理之间的转移,并且其中至少两个所述代理具有不同持续时间的保护窗口扩展。2.如权利要求l中所述的数据处理系统,其中所述数据处理系统还包括数据存储;以及所述配置装置包括在所述数据存储中的配置程序代码。3.如权利要求2中所述的数据处理系统,其中所述多个代理中的一个代理包括多个窥探器;所有所述多个窥探器都使用所述代理的保护窗口扩展持续时间。4.如权利要求l中所述的数据处理系统,其中每个保护窗口扩展至少具有以下持续时间在所述多个代理中的一个代理内的竟争主机与所述多个代理中的一个代理内的保护窥探器之间的请求的第一通信等待时间减去在所述竟争主机与发起请求的获胜主机之间的所述请求的第二通信等待时间且减去在所述获胜主机与所述保护窥探器之间的所述组合响应的第三通信等待时间。5.如权利要求l中所述的数据处理系统,其中所述配置装置包括由所述多个代理中的主机代理执行的主机s配置程序代码;以及由所述多个代理中的每个代理执行的代理s配置程序代码。6.如权利要求l中所述的数据处理系统,其中所述配置装置使所述多个代理中的每个代理发布操作,所述操作使得所述多个代理中的每个其他代理记录指示其观察的请求和组合响应等待时间的值。7.如权利要求l中所述的数据处理系统,其中所述配置装置包括用于在所述多个代理中的每个代理内使用指示所述每个代理的保护窗口扩展持续时间的值来设置存储位置的装置。8.—种在数据处理系统中的数据处理方法,所述方法包括在所述数据处理系统中的多个代理之间传送操作,每个操作包M求和代表对所述请求的系统范围响应的组合响应;以及观察所述多个代理之间的请求和组合响应的等待时间;通过参考所述观察的等待时间来使用保护窗口扩展的相应持续时间配置所述多个代理中的每个代理,其中每个保护窗口扩展是接收到组合响应之后的时间段,在此期间,所述多个代理中的一个关联代理保护数据颗粒的一致性所有权在代理之间的转移,并且其中至少两个所述代理具有不同持续时间的保护窗口扩展;以及所述多个代理根据所述配置步骤来采用保护窗口扩展。9.如权利要求8中所述的方法,其中所述多个代理中的代理包括多个窥探器;所述采用步骤包括所述代理中的所有所述多个窥探器都使用所述代理的保护窗口扩厲^持续时间。10.如权利要求8中所述的方法,其中每个保护窗口扩展至少具有以下持续时间在所述多个代理中的一个代理内的竟争主^L与所述多个代理中的一个代理内的保护窥探器之间的请求的第一通信等待时间减去在所述竟争主机与发起请求的获胜主机之间的所述请求的第二通信等待时间且减去在所述获胜主机与所述保护窥探器之间的所述组合响应的第三通信等待时间。11.如权利要求8中所述的方法,其中所述配置步骤还包括使所述多个代理中的每个代理发布操作,所述操作使得所述多个代理中的每个其他代理记录指示其观察的请求和组合响应等待时间的值。12.如权利要求8中所述的方法,其中所述配置步骤包括在所述多个代理中的每个代理内使用指示所述每个代理的保护窗口扩展持续时间的值来设置存储位置。全文摘要本发明涉及一种保护所有权转移的数据处理系统、方法和互连结构。在数据处理系统中,多个代理在其间传送操作。每个操作包括请求和代表对所述请求的系统范围响应的组合响应。观察所述多个代理之间的请求和组合响应的等待时间。通过参考所述观察的等待时间来使用保护窗口扩展的相应持续时间配置所述多个代理中的每个代理。每个保护窗口扩展是接收到组合响应之后的时间段,在此期间,所述多个代理中的一个关联代理保护数据颗粒的一致性所有权在代理之间的转移。所述多个代理根据所述配置来采用保护窗口扩展,并且至少两个所述代理具有不同持续时间的保护窗口扩展。文档编号G06F15/163GK101183350SQ200710169530公开日2008年5月21日申请日期2007年11月9日优先权日2006年11月16日发明者D·E·威廉姆斯,G·L·古思里,J·S·小菲尔德斯,L·J·克拉克,W·J·斯塔克申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1