CN101183350B - 保护所有权转移的数据处理系统中的数据处理装置和方法 - Google Patents
保护所有权转移的数据处理系统中的数据处理装置和方法 Download PDFInfo
- Publication number
- CN101183350B CN101183350B CN2007101695309A CN200710169530A CN101183350B CN 101183350 B CN101183350 B CN 101183350B CN 2007101695309 A CN2007101695309 A CN 2007101695309A CN 200710169530 A CN200710169530 A CN 200710169530A CN 101183350 B CN101183350 B CN 101183350B
- Authority
- CN
- China
- Prior art keywords
- agency
- period
- stand
- request
- protection window
- 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.)
- Active
Links
- 238000012545 processing Methods 0.000 title claims abstract description 116
- 238000012546 transfer Methods 0.000 title claims abstract description 14
- 238000000034 method Methods 0.000 title claims description 46
- 230000004044 response Effects 0.000 claims abstract description 140
- 230000015654 memory Effects 0.000 claims description 70
- 238000004891 communication Methods 0.000 claims description 13
- 238000013500 data storage Methods 0.000 claims description 6
- 239000002245 particle Substances 0.000 claims description 4
- 230000000977 initiatory effect Effects 0.000 claims description 3
- 238000003672 processing method Methods 0.000 claims 1
- 239000008187 granular material Substances 0.000 abstract 1
- 230000008569 process Effects 0.000 description 30
- 239000013598 vector Substances 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 8
- 238000005259 measurement Methods 0.000 description 6
- 238000012360 testing method Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 101100007917 Mus musculus Cst9 gene Proteins 0.000 description 3
- 238000000429 assembly Methods 0.000 description 2
- 230000000712 assembly Effects 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- HFSXRRTUWAPWSJ-UHFFFAOYSA-N 3,4-dichlorocatechol Chemical compound OC1=CC=C(Cl)C(Cl)=C1O HFSXRRTUWAPWSJ-UHFFFAOYSA-N 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000001066 destructive effect Effects 0.000 description 1
- 230000008034 disappearance Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000010355 oscillation Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 230000007727 signaling mechanism Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
Abstract
本发明涉及一种保护所有权转移的数据处理系统、方法和互连结构。在数据处理系统中,多个代理在其间传送操作。每个操作包括请求和代表对所述请求的系统范围响应的组合响应。观察所述多个代理之间的请求和组合响应的等待时间。通过参考所述观察的等待时间来使用保护窗口扩展的相应持续时间配置所述多个代理中的每个代理。每个保护窗口扩展是接收到组合响应之后的时间段,在此期间,所述多个代理中的一个关联代理保护数据颗粒的一致性所有权在代理之间的转移。所述多个代理根据所述配置来采用保护窗口扩展,并且至少两个所述代理具有不同持续时间的保护窗口扩展。
Description
技术领域
本发明一般地涉及数据处理系统,具体地说,涉及数据处理系统中的改进的通信。
背景技术
传统的对称多处理器(SMP)计算机系统(如服务器计算机系统)包括多个全部连接到系统互连的处理单元,所述系统互连通常包括一个或多个地址、数据和控制总线。连接到所述系统互连的是系统存储器,其代表所述多处理器计算机系统中的易失性存储器的最低级别并且通常可由所有处理单元进行读和写访问。为了减少对驻留在系统存储器中的指令和数据的访问等待时间,每个处理单元通常都由各自的多级别高速缓存层次结构来进一步支持,所述层次结构的一个或多个较低级别可由一个或多个处理器核心所共享。
由于处理单元能够以其运行的时钟频率的升高并且由于系统规模的增大,所以处理单元之间通过系统互连的通信的等待时间已成为关键的性能问题。为了解决该性能问题,提出和/或实现了各种旨在改进传统总线式互连的性能和可伸缩性的互连设计。
发明内容
在数据处理系统中,多个代理在其间传送操作。每个操作包括请求和代表对所述请求的系统范围响应的组合响应。观察所述多个代理之间的请求和组合响应的等待时间。通过参考所述观察的等待时间来使用保护窗口扩展的相应持续时间配置所述多个代理中的每个代理。每个保护窗口扩展是接收到组合响应之后的时间段,在此期间,所述多个代理中的一个关联 代理保护数据颗粒的一致性所有权在代理之间的转移。所述多个代理根据所述配置来采用保护窗口扩展,并且至少两个所述代理具有不同持续时间的保护窗口扩展。
本发明的所有目标、特征和优点将在以下详细的书面描述中变得显而易见。
附图说明
在所附权利要求书中说明了被认为是本发明特性的新颖特征。但是,当结合附图阅读时,通过参考以下对示例性实施例的详细说明,可以最佳地理解本发明及其优选使用方式,这些附图是:
图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)以及用于执行指令的一个或多个执行单元106。执行单元106执行的指令可以包括,例如,定点和浮点算术指令、逻辑指令以及请求对存储器块的读写访问的指令。
每个处理器核心102a、102b的操作都由在其最低级别具有一个或多个共享系统存储器132(仅其中之一在图1中示出)并且在其较高级别具有一个或多个级别的高速缓冲存储器的多级别易失性存储器层次结构来支持。如图所示,处理单元100包括集成存储器控制器(IMC)124,集成存储器控制器124控制对系统存储132的读写访问,以响应从处理器核心102a、102b接收的请求和由窥探器126在互连结构(下文介绍)上窥探的操作。
在示例性实施例中,处理单元100的高速缓冲存储器层次结构包括每个处理器核心102a、102b内的直通存储(store-through)一级(L1)高 速缓存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支持任意数量的t1个“一层”互连链路,在这种情况下,其包括入站和出站X、Y和Z链路。互连逻辑120还支持任意数量的t2个二层互连链路,后者在图1中示为入站和出站A和B链路。通过这些一层和二层链路,每个处理单元100都可以连接到多达t1/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链路上接收数据。
根据本发明的示出的实施例,处理单元100还包括用于优化包括多个处理单元100的数据处理系统中的通信的工具,如下文参考图1讨论的。 此类工具至少包括ε寄存器140,并且在下文参考图8A-8E说明的本发明的第二实施例中,还包括计时器150、地址时间戳寄存器152,以及组合响应(Cresp)时间戳寄存器154。
现在参考图2,其中示出了根据本发明的包括多个处理单元100的数据处理系统200的示例性实施例的方块图。如图所示,数据处理系统200包括8个处理节点202a0-202d0和202a1-202d1,在示出的实施例中,每个处理节点都实现为多芯片模块(MCM),后者包括包含4个处理单元100的封装。每个处理节点202中的处理单元100都连接以便如图所示通过处理单元的X、Y和Z链路进行点对点通信。每个处理单元100还可以连接到位于两个不同处理节点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)节点[额外][非K].芯片[I].链路[K],在所有链路都完全利用的情况下(即,九个8路节点形成72路系统);以及
其中I和J属于集合{a,b,c,d}并且K属于集合{A,B}。
当然,可以定义备选表达以形成其他功能等同的拓扑。此外,应该理解的是,示出的拓扑为代表性的,而不是穷举体现本发明的数据处理系统的拓扑,并且其他拓扑也是可能的。在此类备选拓扑中,例如,连接到每 个处理单元100的一层和二层链路数可以是任意数量,并且每层中的处理节点202数(即,I)无需等于每个处理节点的处理单元100数(即,J)。此外,在一些实施方式中,拓扑可以是不完全填充的,因为一些处理节点202或独立处理单元100可以缺失、被禁用(例如,出于电源管理或工作负荷原因),或在其他情况下不工作(例如,由于硬件错误)。
虽然如图2所示的方式完全连接,但是所有处理节点202无需将每个操作都传送给所有其他处理节点202。具体地说,如前所述,处理单元100可以在限于其处理节点202的范围或更大范围(例如,包括所有处理节点202的系统范围)内广播操作。
本领域的技术人员将理解,SMP数据处理系统100可以包括许多其他未示出的组件,例如,互连桥、非易失性存储装置、用于连接到网络或附加设备的端口等。因为此类其他组件对于理解本发明并非必需,所以未在图2示出或在文中进一步说明。
II.示例性操作
现在参考图3,其中示出了在图2的数据处理系统200的互连结构上的示例性操作的时空图。所述操作当主机300(例如,L2高速缓存110的主机112或I/O控制器128中的主机)在互连结构上发出请求302时开始。请求302优选地至少包括指示所需访问类型的事务类型以及指示所述请求要访问的资源的资源标识符(例如,真实地址)。常见的请求类型优选地包括那些在下表I中说明的类型。
表I
请求 | 描述 |
READ | 请求用于查询目的的存储器块的映像的副本 |
RWITM(具有修改目的的读) | 请求存储器块的映像的唯一副本,其目的是对其进行更新(修改)并需要破坏其他副本(如果有) |
DCLAIM(数据 | 请求授权以将存储器块的现有只查询副本提升为唯 |
[0043]
要求) | 一副本,其目的是对其进行更新(修改)并需要破坏其他副本(如果有) |
DCBZ(数据高速缓存块清零) | 请求授权以创建存储器块的与其当前状态无关的新的唯一副本并随后修改其内容;需要破坏其他副本(如果有) |
CASTOUT | 将存储器块的映像从较高级别的存储器复制到较低级别的存储器,以便为破坏较高级别的副本做准备 |
WRITE | 请求授权以创建存储器块的与其当前状态无关的新的唯一副本并立即将存储器块的映像从较高级别的存储器复制到较低级别的存储器,以便为破坏较高级别的副本做准备 |
PARTIAL WRITE | 请求授权以创建部分存储器块的与其当前状态无关的新的唯一副本并立即将部分存储器块的映像从较高级别的存储器复制到较低级别的存储器,以便为破坏较高级别的副本做准备 |
有关这些操作的其他详细信息和有助于有效处理这些操作的示例性高速缓存一致性协议可以参见引入作为参考的未决美国专利申请11/055,305。
由分布在整个数据处理系统200中的窥探器304(例如,L2高速缓存110的窥探器116和IMC 124的窥探器126)接收请求302。通常(存在某些例外),由于仅当处理单元100无法内部地为请求302服务时,请求302才在互连结构上传输,所以在与请求302的主机112处于同一L2高速缓存110中的窥探器116不会窥探请求302(即,一般没有自我窥探)。接收和处理请求302的窥探器304提供代表至少该窥探器304对请求302的响应的相应部分响应306。IMC 124中的窥探器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的响应(例如,成功、失败、重试等)。如果CR 310指示请求302成功,则CR 310可以指示,例如,请求的存储器块的数据源、将由主机300缓存的已请求的存储器块的高速缓存状态,以及是否需要使一个或多个L2高速缓存110中的已请求的存储器块无效的“清空”操作。
响应于接收到组合响应310,一个或多个主机300和窥探器304通常执行一个或多个操作以便为请求302服务。这些操作可以包括向主机300提供数据、使一个或多个L2高速缓存110中缓存的数据的一致性状态无效或以其他方式对其进行更新、执行驱逐操作、将数据写回系统存储器132等。如果请求302需要,在响应逻辑122生成组合响应310之前或之后,请求或目标存储器块可以被传输到主机300或从主机300传输到请求或目标存储器块。
在以下描述中,将根据请求指定的请求地址参考窥探器是最高一致性点(HPC)、最低一致性点(LPC)还是两者皆不是来描述窥探器304对请求302的部分响应306以及由窥探器304响应于请求302和/或其组合响应310而执行的操作。LPC在此被定义为用作存储器块的库的存储器设备或I/O设备。在存储器块不存在HPC的情况下,LPC持有存储器块的真实映像并有权许可或拒绝生成所述存储器块的其他高速缓存副本的请求。对于图1和2的数据处理系统实施例中的典型请求,所述LPC将是持有所引用的存储器块的系统存储器132的存储器控制器124。HPC在此被定义为缓存所述存储器块(其与LPC处的相应存储器块可能一致,也可能不一 致)的真实映像的唯一标识的设备并有权许可或拒绝修改存储器块的请求。说明性地,HPC还可以响应于不修改所述存储器块的操作而向请求方提供所述存储器块的副本。因此,对于图1和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.示例性操作的广播流
现在参考图4,并将结合图5A-5C对其进行说明,其中示出了图2的数据处理系统200中的系统范围操作的示例性操作流程的时空图。在这些图中,使用两个位置标识符对数据处理系统200中的各种处理单元100进行标记-第一个标识处理单元100所属的处理节点202,第二个标识处理节点202中的特定处理单元100。因此,例如,处理单元100a0c指处理节点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,请求阶段始于本地主机100a0c(即,处理节点202a0的处理单元100c)执行将请求(例如,读取请求)同步广播到其处理节点202a0中的每个本地集线器100a0a、100a0b、100a0c和100a0d。应指出的是,本地集线器的列表包括本地集线器100a0c,它也是本地主机。如下文详述,有利地使用这种内部传输使本地集线器100a0c的操作与本地集线器100a0a、100a0b和100a0d同步,以便可以更容易地满 足下文讨论的定时约束。
响应于接收到请求,每个通过其A或B链路连接到远程集线器100的本地集线器100将操作传输到其(多个)远程集线器100。因此,本地集线器100a0a未在其出站A链路上传输操作,而是通过其到处理节点202a1中的远程集线器的出站B链路传输操作。本地集线器100a0b、100a0c和100a0d通过其各自的到在处理节点202b0和202b1、处理节点202c0和202c1,以及处理节点202d0和202d1的远程集线器的相应出站A和B链路来传输操作。每个接收到操作的远程集线器100又将操作传输到其处理节点202中的每个远程叶100。因此,例如,本地集线器100b0a将操作传输到远程叶100b0b、100b0c和100b0d。这样,有效地利用不多于3个的链路上的传输将操作广播到数据处理系统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,优选地通过非破坏性方式来聚集部分响应(如果确实要做),例如,使用逻辑“或”功能和在该功能下不丢失任何相关信息的编码(例如,“一位有效”编码)。
如图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的转移,优选地限制根据图4的处理单元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到拥有所请求存储器块的一致性的窥探器(多个)304n的寻址等待时间,A_lat(CM_WM)是任何竞争主机(CM)320到由窥探器304n授予一致性所有权的“获胜”主机(WM)300的寻址等待时间,C_lat(WM_S)是从获胜主机(WM)300接收到组合响应的时间到拥有所请求存储器块的窥探器(S)304n接收到组合响应的时间的组合响应等待时间,而ε是窗口扩展312b的持续时间。
如果未满足可应用于具有任意拓扑的系统的上述定时约束,则竞争主机320的请求322可以(1)由获胜主机300在其获得一致性所有权并启动保护窗口312b之前接收,以及(2)由窥探器304n在保护窗口312a和窗口扩展312b结束之后接收。在此类情况下,获胜主机300或窥探器304n都不会提供对竞争请求322的部分响应,这阻止了竞争主机320取得存储器块的一致性所有权及从存储器读取非一致性数据。但是,为了避免这种一致性错误,可以将窗口扩展312b编程设置(例如,通过配置寄存器123的适当设置)为长度(ε),以补偿物理实施方式(否则可能无法满足维护一致性所必须满足的定时约束)的等待时间变化或缺点。因此,通过从上面的等式解出ε,可以针对任何实施方式中的每个代理(例如,处理单元100)的窗口扩展312b确定理想长度。
如将理解的,窗口扩展312b的理想长度将根据代理之间物理连接的长 度变化(例如,A、B和X、Y和Z链路长度的不同)和拓扑中各种处理单元100和/或处理节点202的存在或缺失而在代理之间变化(不一致)。优选地优化每个代理的窗口扩展312b的持续时间,而不是将最坏情况(最长的)持续时间应用到所有代理以降低在系统中重试的请求数来保护一致性所有权的转移。
可以做出若干有关上述定时约束的结论。首先,从竞争主机320到拥有的窥探器304a的寻址等待时间不必具有下限,但是必须具有上限。在给定最大可能振荡器漂移、连接处理单元100的最长链路、累计停机的最大次数以及有保证的最差情况吞吐量等情况下,通过确定可获得的最差情况等待时间来制定上限。为了确保遵守上限,互连结构必须确保无阻塞的行为。
第二,从竞争主机320到获胜主机300的请求等待时间不必具有上限,但必须具有下限。在给定没有停机、处理单元100间的最短可能链路以及给定特定静态配置下的最慢振荡器漂移等情况下,通过确定可获取的最好情况等待时间来确定下限。
尽管对于给定操作,获胜主机300和竞争主机320中的每一个都仅具有一个针对其相应请求的定时限制,但是将理解的是,在操作过程中,任何处理单元100都可以是某些操作的获胜主机,并且是其他操作的竞争(以及失败)主机。因此,每个处理单元100都有效地具有针对其寻址等待时间的上限和下限。
第三,从生成组合响应的时间到获胜主机300观察到组合响应的时间的组合响应等待时间不必具有下限(组合响应可以在任意早的时间到达获胜主机300),但是必须具有上限。相比之下,从生成组合响应的时间直到窥探器304n接收组合响应为止的组合响应等待时间具有下限,但不必具有上限(尽管可以任意施加上限以限制同时发生的操作数)。
第四,对于部分响应等待时间没有约束。也就是说,因为所有以上列举的定时约束的条件都与请求/寻址等待时间和组合响应等待时间有关,所以窥探器304和竞争主机320到获胜主机300的部分响应等待时间不必具 有上限或下限。
V.配置保护窗口扩展持续时间的第一实施例
根据本发明的第一实施例,基于实际实现多个可能的数据处理系统拓扑中的哪个拓扑来预先确定每个代理的窗口扩展312b的持续时间。根据本发明的第一实施例且如图7A所示,数据处理系统200中的非易失性数据存储(例如,EEPROM 130,也在图1中示出)包括程序代码(例如,ε配置例程700)和包含多组可能窗口扩展持续时间的数据结构(例如,ε表702)。ε配置例程700通过参考ε表702中指定的多组窗口扩展持续时间之一来根据图7B示出的过程配置每个代理(例如,处理单元100)中的ε寄存器140。
现在参考图7B,其中示出了根据本发明的第一实施例的在数据处理系统200中设置代理的非一致保护窗口扩展的持续时间的示例性过程的高级逻辑流程图。所述过程始于块710,例如,响应于数据处理系统200的未示出的引导软件在系统启动时使数据处理系统200中的主机处理单元100执行ε配置例程700。接下来,在块712,ε配置例程700根据例如在数据处理系统200中哪些处理单元100和处理节点202存在并工作,X、Y、Z和A与B链路的物理长度以及其他可能因素来确定数据处理系统200的配置。在一种实施方式中,可以通过参考加载有表示数据处理系统200系统配置的值的预定存储器位置(例如,在处理器寄存器或系统存储器132中)做出在块712处示出的确定。
然后,在块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。主机ε配置例程802通过参考数据处理系统200中观察的实际操作等待时间来根据图8B、8D和8E中示出的过程配置每个代理(例如,处理单元100)中的ε寄存器140。
现在参考图8B,其中示出了根据本发明的第二实施例的主机处理单元100在数据处理系统200中设置代理的非一致保护窗口扩展的持续时间的示例性方法的高级逻辑流程图。如图所示,过程始于块810,例如,响应于在系统启动之后数据处理系统200的引导软件使每个数据处理系统200中的所有处理单元100执行代理ε配置例程800并且使数据处理系统200的单个主机处理单元100执行主机ε配置例程802。接下来,在块812,主机ε配置例程802初始化并启动每个处理单元100中的计时器150,以便所有计时器150以预定速度单调增加(或减少)以为所有处理单元100提 供公共的同步时间标准。此外,主机ε配置例程802在系统存储器132中初始化多个用于记录在数据处理系统200中的各个代理处观察的等待时间的数据结构。如图8C所示,在一个示例性实施例中,这些数据结构包括N×N寻址等待时间表840,对于数据处理系统200中存在和工作的N个代理中的每个代理,表840包含在数据处理系统200中从该代理到每个代理的寻址(即,请求)等待时间列842。此外,系统存储器132中的数据结构包括N×N部分响应等待时间表844,对于所述N个代理中的每个代理,表844包含在数据处理系统200中从该代理到每个代理的部分响应等待时间列846。所述数据结构还包括第一1×N标志向量850(对于每个代理,标志向量850包含用于由该代理发起等待时间测量操作的标志852),以及包括1×Nε向量854(其包含每个代理的ε字段856)。
优选地将寻址等待时间表840和部分响应等待时间表844中的所有表项初始化为特殊值(例如,全部为1的最大值),以便可以将已经写入的表项与尚未写入的表项区分开。还优选地将标志向量850中的表项初始化为重置状态。对表840、844以及向量850和854的所有读写访问优选地是不可缓存(即,缓存禁止)的访问。作为不可缓存的操作来执行这些写入操作允许写入访问仅涉及写入系统存储器132和关联的IMC 124的代理,而不涉及L2高速缓存110,后者尚未配置有ε值来维持存储器一致性。
再次参考图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和部分响应等待时间表844中记录的原始数据。
块822示出了主机ε配置例程802从同一列842或846中的所有表表项减去沿每个表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)的所有可能组合的寻址和部分响应等待时间,主机ε配置例程802计算以下等式以根据等式确定每个代理的最大ε:
ε≥A_lat(CM_S)-(A_lat(CM_WM)+C_lat(WM_S))
主机ε配置例程802记录ε向量854中的每个代理(例如,处理单元100)的最大ε。如块826所示,主机ε配置例程802然后向在ε向量854中记录的每个ε值添加小的校正因数以考虑定时抖动,所述抖动例如由于通过处理单元100中内部信号路径的请求的通信等待时间的变化和其他导致操作之间定时变化的定时因数所引起。
在块826之后,过程转到块828,块828示出了主机ε配置例程802将适当的ε值(即,窗口扩展312b的持续时间)从ε向量854写入每个处理单元100的ε寄存器140。可以通过扫描链写入操作或其他公知的芯片 配置机制来执行在块828示出的写入操作。此后,用于配置窗口扩展312b的持续时间的示出过程然后在块830终止。此后,每个处理单元100中的所有窥探器都使用该处理单元100的ε寄存器140中指定的窗口扩展312b的持续时间来保护一致性所有权的转移。
现在参考图8D,其中示出了根据本发明第二实施例的数据处理系统中每个代理(例如,处理单元100)收集指示对数据处理系统中的其他代理的寻址和组合响应等待时间的时间戳值的示例性方法的高级逻辑流程图。过程在块860开始,以响应数据处理系统200中未示出的引导软件在系统启动之后调用代理ε配置例程800。如块862所示,在块864处测试是否设置了标志向量850中其代理的关联标志852以指示轮到该代理通过发布等待时间测量操作来收集等待时间数据之前,代理ε配置例程800等待时间T2。希望代理顺序地发布此类操作以防系统因并行操作而满负荷,这可能会增加操作等待时间并不必要地增加保护窗口扩展312b的持续时间。响应于在块864判定未设置代理的标志852,过程返回块862,并重复块864和862,直至在块864做出肯定的判定。
响应于在块864判定在标志向量850中设置了代理的标志852,过程转到块868。在块868,代理ε配置例程800将特殊的等待时间测量请求广播到数据处理系统200中的所有代理,以触发在寻址等待时间表840和部分响应等待时间表844的相关表项中记录指示每个代理的寻址和部分响应等待时间的时间戳。优选地将等待时间测量请求标识为请求中包含的特殊事务类型(ttype)。在发布等待时间测量请求之后,代理ε配置例程800等待时间T3,如块870所示,以允许所有窥探代理将其时间戳写入表840和844。代理ε配置例程800然后在块872验证寻址等待时间表840和部分响应等待时间表844中其代理的列中的所有表项被等待时间时间戳填充而不是被所初始化的特殊值填充。
在块872之后,代理ε配置例程800在块874判定其代理是否是代理N(即,最后一个代理)。如果是,则图8D中示出的过程在块800结束。另一种情况下,如果代理ε配置例程800在块878判定其代理不是代理N, 则代理ε配置例程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结束。
将理解的是,虽然参考示例性实施方式说明了本发明的第二实施例,在所述实施方式中,非易失性数据存储中的主机和代理ε配置例程用于通过参考观察的等待时间来配置每个代理的ε持续时间,第二实施例的其他实施方式是可能的。例如,主机和代理ε配置例程的功能可以备选地在硬件中实现。
X.结论
如上所述,本发明提供了数据处理的改进的数据处理系统、程序产品和方法,其中窥探器用于保护一致性所有权的转移的保护窗口扩展的持续时间是非一致的。根据一个实施例,预先确定保护窗口扩展的持续时间并 将其写入数据处理系统中的单独代理。在另一个实施例中,根据在数据处理系统中观察的实际等待时间来动态地确定保护窗口扩展的持续时间。
虽然参考优选实施例具体示出并说明了本发明,但是本领域的技术人员将理解,在不偏离本发明的精神和范围的情况下,可以做出各种形式和细节上的更改。例如,尽管在示出的实施例中,所有窥探器共享公共窗口扩展持续时间的代理是处理单元100,但是本领域的技术人员将理解,在其他实施例中,更多或更少的窥探器可以共享公共窗口扩展持续时间。此外,尽管根据执行实现本发明的功能的程序代码的数据处理系统说明了本发明的各方面,但是应该理解,本发明可以备选地实现为与数据处理系统一起使用的程序产品。可以将限定本发明功能的程序代码通过各种计算机可读介质传递到数据处理系统,所述介质包括(但不限于)不可重写存储介质(例如,CD-ROM)、可重写存储介质(例如,软盘或硬盘驱动器),以及通信介质(例如,数字和模拟网络)。因此,应该理解,此类计算机可读介质,在承载或编码了实现本发明的功能的计算机可读指令时,代表本发明的备选实施例。
Claims (12)
1.一种在数据处理系统中的数据处理装置,所述数据处理装置包括:
用于在所述数据处理系统中的多个代理之间传送操作的装置,每个操作包括请求和代表对所述请求的系统范围响应的组合响应;
用于观察所述多个代理之间的请求和组合响应的等待时间的装置;以及
用于通过参考所述观察的等待时间来使用保护窗口扩展的相应持续时间配置所述多个代理中的每个代理的装置,其中每个保护窗口扩展是接收到组合响应之后的时间段,在此期间,所述多个代理中的一个关联代理保护数据颗粒的一致性所有权在代理之间的转移,并且其中至少两个所述代理具有不同持续时间的保护窗口扩展;
其中,所述多个代理根据所述配置操作来采用保护窗口扩展。
2.如权利要求1中所述的数据处理装置,其中:
所述数据处理系统还包括数据存储;以及
所述用于观察所述多个代理之间的请求和组合响应的等待时间的装置以及所述用于通过参考所述观察的等待时间来使用保护窗口扩展的相应持续时间配置所述多个代理中的每个代理的装置包括在所述数据存储中的配置程序代码。
3.如权利要求2中所述的数据处理装置,其中:
所述多个代理中的一个代理包括多个窥探器;
所有所述多个窥探器都使用所述代理的保护窗口扩展持续时间。
4.如权利要求1中所述的数据处理装置,其中每个保护窗口扩展至少具有以下持续时间:在所述多个代理中的一个代理内的竞争主机与所述多个代理中的一个代理内的保护窥探器之间的请求的第一通信等待时间,减去在所述竞争主机与发起请求的获胜主机之间的请求的第二通信等待时间,再减去在所述获胜主机与所述保护窥探器之间的所述组合响应的第三通信等待时间。
5.如权利要求1中所述的数据处理装置,其中所述用于观察所述多个代理之间的请求和组合响应的等待时间的装置以及所述用于通过参考所述观察的等待时间来使用保护窗口扩展的相应持续时间配置所述多个代理中的每个代理的装置包括:
由所述多个代理中的主机代理执行的主机ε配置程序代码;以及
由所述多个代理中的每个代理执行的代理ε配置程序代码。
6.如权利要求1中所述的数据处理装置,其中所述用于观察所述多个代理之间的请求和组合响应的等待时间的装置以及所述用于通过参考所述观察的等待时间来使用保护窗口扩展的相应持续时间配置所述多个代理中的每个代理的装置使所述多个代理中的每个代理发布操作,所述操作使得所述多个代理中该代理之外的每个其他代理记录指示其观察的请求和组合响应等待时间的值。
7.如权利要求1中所述的数据处理装置,其中所述用于观察所述多个代理之间的请求和组合响应的等待时间的装置以及所述用于通过参考所述观察的等待时间来使用保护窗口扩展的相应持续时间配置所述多个代理中的每个代理的装置包括用于在所述多个代理中的每个代理内使用指示所述每个代理的保护窗口扩展持续时间的值来设置存储位置的装置。
8.一种在数据处理系统中的数据处理方法,所述方法包括:
在所述数据处理系统中的多个代理之间传送操作,每个操作包括请求和代表对所述请求的系统范围响应的组合响应;以及
观察所述多个代理之间的请求和组合响应的等待时间;
通过参考所述观察的等待时间来使用保护窗口扩展的相应持续时间配置所述多个代理中的每个代理,其中每个保护窗口扩展是接收到组合响应之后的时间段,在此期间,所述多个代理中的一个关联代理保护数据颗粒的一致性所有权在代理之间的转移,并且其中至少两个所述代理具有不同持续时间的保护窗口扩展;以及
所述多个代理根据所述配置步骤来采用保护窗口扩展。
9.如权利要求8中所述的方法,其中:
所述多个代理中的一代理包括多个窥探器;
所述采用步骤包括所述代理中的所有所述多个窥探器都使用所述代理的保护窗口扩展持续时间。
10.如权利要求8中所述的方法,其中每个保护窗口扩展至少具有以下持续时间:在所述多个代理中的一个代理内的竞争主机与所述多个代理中的一个代理内的保护窥探器之间的请求的第一通信等待时间,减去在所述竞争主机与发起请求的获胜主机之间的请求的第二通信等待时间,再减去在所述获胜主机与所述保护窥探器之间的所述组合响应的第三通信等待时间。
11.如权利要求8中所述的方法,其中:
所述配置步骤还包括使所述多个代理中的每个代理发布操作,所述操作使得所述多个代理中该代理之外的每个其他代理记录指示其观察的请求和组合响应等待时间的值。
12.如权利要求8中所述的方法,其中所述配置步骤包括在所述多个代理中的每个代理内使用指示所述每个代理的保护窗口扩展持续时间的值来设置存储位置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/560,619 | 2006-11-16 | ||
US11/560,619 US8205024B2 (en) | 2006-11-16 | 2006-11-16 | Protecting ownership transfer with non-uniform protection windows |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101183350A CN101183350A (zh) | 2008-05-21 |
CN101183350B true CN101183350B (zh) | 2011-03-30 |
Family
ID=39418364
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007101695309A Active CN101183350B (zh) | 2006-11-16 | 2007-11-09 | 保护所有权转移的数据处理系统中的数据处理装置和方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8205024B2 (zh) |
CN (1) | CN101183350B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6166254B2 (ja) * | 2011-04-08 | 2017-07-19 | リープマン, アンドリューLIEBMAN, Andrew | プロジェクト共有のためのシステム、コンピュータ可読記憶媒体およびコンピュータ実装方法 |
US9251111B2 (en) * | 2013-12-20 | 2016-02-02 | International Business Machines Corporation | Command rate configuration in data processing system |
US11010833B2 (en) | 2015-10-09 | 2021-05-18 | Chicago Mercantile Exchange Inc. | Systems and methods for calculating a latency of a transaction processing system |
US10592279B2 (en) * | 2016-06-23 | 2020-03-17 | Advanced Micro Devices, Inc. | Multi-processor apparatus and method of detection and acceleration of lagging tasks |
US10642760B2 (en) | 2017-08-02 | 2020-05-05 | International Business Machines Corporation | Techniques for command arbitation in symmetric multiprocessor systems |
US10725937B2 (en) * | 2018-07-30 | 2020-07-28 | International Business Machines Corporation | Synchronized access to shared memory by extending protection for a store target address of a store-conditional request |
US11068407B2 (en) | 2018-10-26 | 2021-07-20 | International Business Machines Corporation | Synchronized access to data in shared memory by protecting the load target address of a load-reserve instruction |
US10884740B2 (en) | 2018-11-08 | 2021-01-05 | International Business Machines Corporation | Synchronized access to data in shared memory by resolving conflicting accesses by co-located hardware threads |
US11119781B2 (en) | 2018-12-11 | 2021-09-14 | International Business Machines Corporation | Synchronized access to data in shared memory by protecting the load target address of a fronting load |
US11106608B1 (en) | 2020-06-22 | 2021-08-31 | International Business Machines Corporation | Synchronizing access to shared memory by extending protection for a target address of a store-conditional request |
US11693776B2 (en) | 2021-06-18 | 2023-07-04 | International Business Machines Corporation | Variable protection window extension for a target address of a store-conditional request |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1527975A (zh) * | 2001-07-31 | 2004-09-08 | �Ҵ���˾ | 用于在对称多处理器系统中发送分组的方法和装置 |
CN1704922A (zh) * | 2004-06-03 | 2005-12-07 | 英特尔公司 | 在多处理器系统中启动安全内核 |
Family Cites Families (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5297269A (en) * | 1990-04-26 | 1994-03-22 | Digital Equipment Company | Cache coherency protocol for multi processor computer system |
US5325503A (en) * | 1992-02-21 | 1994-06-28 | Compaq Computer Corporation | Cache memory system which snoops an operation to a first location in a cache line and does not snoop further operations to locations in the same line |
DE69319763T2 (de) * | 1992-03-04 | 1999-03-11 | Motorola Inc | Verfahren und Gerät zur Durchführung eines Busarbitrierungsprotokolls in einem Datenverarbeitungssystem |
US5666515A (en) * | 1993-02-18 | 1997-09-09 | Unisys Corporation | Information processing system having multiple modules and a memory on a bus, where any module can lock an addressable portion of the memory by sending retry signals to other modules that try to read at the locked address |
US5608878A (en) * | 1994-10-03 | 1997-03-04 | International Business Machines Corporation | Dual latency status and coherency reporting for a multiprocessing system |
US5790892A (en) * | 1995-09-29 | 1998-08-04 | International Business Machines Corporation | Information handling system for modifying coherency response set to allow intervention of a read command so that the intervention is not allowed by the system memory |
US5852716A (en) * | 1996-07-02 | 1998-12-22 | Sun Microsystems, Inc. | Split-SMP computer system with local domains and a top repeater that distinguishes local and global transactions |
US6029204A (en) * | 1997-03-13 | 2000-02-22 | International Business Machines Corporation | Precise synchronization mechanism for SMP system buses using tagged snoop operations to avoid retries |
US6065098A (en) * | 1997-09-18 | 2000-05-16 | International Business Machines Corporation | Method for maintaining multi-level cache coherency in a processor with non-inclusive caches and processor implementing the same |
US6266741B1 (en) * | 1998-06-15 | 2001-07-24 | International Business Machines Corporation | Method and apparatus to reduce system bus latency on a cache miss with address acknowledgments |
US6405290B1 (en) * | 1999-06-24 | 2002-06-11 | International Business Machines Corporation | Multiprocessor system bus protocol for O state memory-consistent data |
US6597664B1 (en) * | 1999-08-19 | 2003-07-22 | Massachusetts Institute Of Technology | Digital circuit synthesis system |
US7529799B2 (en) * | 1999-11-08 | 2009-05-05 | International Business Machines Corporation | Method and apparatus for transaction tag assignment and maintenance in a distributed symmetric multiprocessor system |
US6606676B1 (en) * | 1999-11-08 | 2003-08-12 | International Business Machines Corporation | Method and apparatus to distribute interrupts to multiple interrupt handlers in a distributed symmetric multiprocessor system |
US6629212B1 (en) * | 1999-11-09 | 2003-09-30 | International Business Machines Corporation | High speed lock acquisition mechanism with time parameterized cache coherency states |
US6763434B2 (en) * | 2000-12-30 | 2004-07-13 | International Business Machines Corporation | Data processing system and method for resolving a conflict between requests to modify a shared cache line |
US6754782B2 (en) * | 2001-06-21 | 2004-06-22 | International Business Machines Corporation | Decentralized global coherency management in a multi-node computer system |
US6615322B2 (en) | 2001-06-21 | 2003-09-02 | International Business Machines Corporation | Two-stage request protocol for accessing remote memory data in a NUMA data processing system |
US6801984B2 (en) | 2001-06-29 | 2004-10-05 | International Business Machines Corporation | Imprecise snooping based invalidation mechanism |
US6587926B2 (en) | 2001-07-12 | 2003-07-01 | International Business Machines Corporation | Incremental tag build for hierarchical memory architecture |
US6785774B2 (en) * | 2001-10-16 | 2004-08-31 | International Business Machines Corporation | High performance symmetric multiprocessing systems via super-coherent data mechanisms |
US7263097B1 (en) * | 2001-11-26 | 2007-08-28 | Integrated Device Technology, Inc. | Programmably sliceable switch-fabric unit and methods of use |
US7100001B2 (en) * | 2002-01-24 | 2006-08-29 | Intel Corporation | Methods and apparatus for cache intervention |
US7266587B2 (en) * | 2002-05-15 | 2007-09-04 | Broadcom Corporation | System having interfaces, switch, and memory bridge for CC-NUMA operation |
US7096323B1 (en) * | 2002-09-27 | 2006-08-22 | Advanced Micro Devices, Inc. | Computer system with processor cache that stores remote cache presence information |
US6985972B2 (en) * | 2002-10-03 | 2006-01-10 | International Business Machines Corporation | Dynamic cache coherency snooper presence with variable snoop latency |
US6996693B2 (en) | 2002-12-05 | 2006-02-07 | International Business Machines Corporation | High speed memory cloning facility via a source/destination switching mechanism |
US7529893B2 (en) | 2003-04-11 | 2009-05-05 | Sun Microsystems, Inc. | Multi-node system with split ownership and access right coherence mechanism |
GB2403560A (en) * | 2003-07-02 | 2005-01-05 | Advanced Risc Mach Ltd | Memory bus within a coherent multi-processing system |
US20060179197A1 (en) * | 2005-02-10 | 2006-08-10 | International Business Machines Corporation | Data processing system, method and interconnect fabric having a partial response rebroadcast |
US7389388B2 (en) * | 2005-02-10 | 2008-06-17 | International Business Machines Corporation | Data processing system and method for efficient communication utilizing an in coherency state |
US20060179253A1 (en) | 2005-02-10 | 2006-08-10 | International Business Machines Corporation | Data processing system, method and interconnect fabric that protect ownership transfer with a protection window extension |
US7536513B2 (en) * | 2005-03-31 | 2009-05-19 | International Business Machines Corporation | Data processing system, cache system and method for issuing a request on an interconnect fabric without reference to a lower level cache based upon a tagged cache state |
US7734876B2 (en) * | 2006-11-16 | 2010-06-08 | International Business Machines Corporation | Protecting ownership transfer with non-uniform protection windows |
-
2006
- 2006-11-16 US US11/560,619 patent/US8205024B2/en active Active
-
2007
- 2007-11-09 CN CN2007101695309A patent/CN101183350B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1527975A (zh) * | 2001-07-31 | 2004-09-08 | �Ҵ���˾ | 用于在对称多处理器系统中发送分组的方法和装置 |
CN1704922A (zh) * | 2004-06-03 | 2005-12-07 | 英特尔公司 | 在多处理器系统中启动安全内核 |
Also Published As
Publication number | Publication date |
---|---|
US20080120625A1 (en) | 2008-05-22 |
US8205024B2 (en) | 2012-06-19 |
CN101183350A (zh) | 2008-05-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101183350B (zh) | 保护所有权转移的数据处理系统中的数据处理装置和方法 | |
CN100428195C (zh) | 数据处理系统和方法 | |
CN101030171B (zh) | 减少无效一致状态的数据处理系统、高速缓存系统和方法 | |
CN100444134C (zh) | 数据处理系统和方法 | |
CN100397366C (zh) | 用于初始化存储器块的处理器、数据处理系统和方法 | |
EP1153349B1 (en) | Non-uniform memory access (numa) data processing system that speculatively forwards a read request to a remote processing node | |
US6108764A (en) | Non-uniform memory access (NUMA) data processing system with multiple caches concurrently holding data in a recent state from which data can be sourced by shared intervention | |
CN100437521C (zh) | 提供高速缓存状态信息的方法及装置 | |
US6067611A (en) | Non-uniform memory access (NUMA) data processing system that buffers potential third node transactions to decrease communication latency | |
CN101183349B (zh) | 以不一致保护窗口保护所有权转移的数据处理系统和方法 | |
CN100495360C (zh) | 数据处理的单元、系统和方法 | |
CN101162442A (zh) | 支持共享全局一致性状态的处理器、数据处理系统和方法 | |
JP3629511B2 (ja) | 不均等メモリ・アクセス・システムにおいてトランザクションのキャンセルによるデータ損失を避けるための方法およびシステム | |
CN1114865C (zh) | 用于避免冲突回写造成的活锁的方法和系统 | |
CN1116641C (zh) | 用于避免因冲突的失效事务而造成的活锁的方法和系统 | |
US10152417B2 (en) | Early freeing of a snoop machine of a data processing system prior to completion of snoop processing for an interconnect operation | |
JP2000250884A (ja) | 不均等メモリ・アクセス・コンピュータ・システムにおいてエヴィクション・プロトコルを提供するための方法およびシステム | |
US10102130B2 (en) | Decreasing the data handoff interval in a multiprocessor data processing system based on an early indication of a systemwide coherence response | |
US10437725B2 (en) | Master requesting missing segments of a cache line for which the master has coherence ownership | |
CN101004710A (zh) | 数据处理系统、高速缓存系统和方法 | |
US6085293A (en) | Non-uniform memory access (NUMA) data processing system that decreases latency by expediting rerun requests | |
US11449489B2 (en) | Split transaction coherency protocol in a data processing system | |
US10394636B2 (en) | Techniques for managing a hang condition in a data processing system with shared memory | |
US6813694B2 (en) | Local invalidation buses for a highly scalable shared cache memory hierarchy | |
US6826654B2 (en) | Cache invalidation bus for a highly scalable shared cache memory hierarchy |
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 |