1.一种多处理器计算机系统,包括:
多个处理节点和多个使用与所述处理节点相关联的高速缓存的动态 高速缓存一致性区域,并且具有
在所述处理节点内的高速缓存控制器,其控制所述多个高速缓存一致 性区域间的由软件发起的软件进程的移动,而不需要在一个或多个所述处 理节点中有选择地清除高速缓存内容。
2.如权利要求1的多处理器计算机系统,其包括系统管理程序软件, 所述系统管理程序软件使得处理节点内的所述高速缓存控制器确保:对于 针对一个存储地址的进入的存储请求,只要用于所请求的存储地址的高速 缓存项被发现存在于包含发起所述进入的存储请求的处理器的所述处理节 点的任何高速缓存上,则在处理器的由当前一致性区域模式规定的当前一 致性区域之外不存在所请求的存储地址的副本。
3.如权利要求2的多处理器计算机系统,其中所述系统管理程序软 件为每个具有其自己的一致性区域的进程创建一个唯一的一致性区域ID。
4.如权利要求2的多处理器计算机系统,其中所述系统管理程序软 件为该系统内的每个处理节点创建一个表,对于每个当前被允许分派在所 述处理节点上的一致性区域ID,该表都具有一项。
5.如权利要求2的多处理器计算机系统,其中所述系统管理程序软 件为每个具有其自己的一致性区域的进程创建一个唯一的一致性区域ID, 并且为该多处理器计算机系统中的每个处理器创建一个或多个一致性模式 位,并且当传输由一处理器发起的每个存储事务以便与所述多处理器计算 机系统的其它处理器通信时,与该存储事务一起发送与该处理器相关联的 所述一致性模式位和一致性区域ID。
6.如权利要求2的多处理器计算机系统,其中所述系统管理程序软 件为每个具有其自己的一致性区域的进程创建一个唯一的一致性区域ID, 并且为该多处理器系统中的每个处理器创建一个或多个一致性模式位,以 便由用于一处理节点的节点控制器使用。
7.如权利要求2的多处理器计算机系统,其中所述系统管理程序软 件为每个具有其自己的一致性区域的进程创建一个唯一的一致性区域ID, 并且为该多处理器计算机系统中的每个处理器创建一个或多个一致性模式 位,并且其中与每个事务相关联的所述模式位被用于确定哪些高速缓存必 须参与它们从所述多处理器计算机系统的任何处理器接收的任何存储事 务。
8.如权利要求2的多处理器计算机系统,其中所述系统管理程序软 件为每个具有其自己的一致性区域的进程创建一个唯一的一致性区域ID, 并且为该多处理器计算机系统中的每个处理器创建一个或多个一致性模式 位,并且使得多个高速缓存一致性区域运行,而不在某些在一致性区域之 间移动软件进程的操作过程中使用高速缓存清除。
9.如权利要求8的多处理器计算机系统,其中所述系统管理程序软 件将软件进程从所述软件进程将不再使用的一个一致性区域中移出,并且 将其移入已创建的另一个一致性区域,该一致性区域覆盖有与第一个一致 性区域相同的地址空间,但是包括一组新的处理节点。
10.如权利要求2的多处理器计算机系统,其中所述系统管理程序软 件为每个具有其自己的一致性区域的进程创建一个唯一的一致性区域ID, 并且将软件进程从包括一组处理节点的一个一致性区域中移到包括另一组 处理节点的另一个一致性区域,而不需要对任何处理节点的高速缓存进行 高速缓存清除。
11.如权利要求10的多处理器计算机系统,其中如果所述另一个一 致性区域包括比初始一致性区域更少的硬件处理节点,则用于所述处理节 点的一致性区域的大小已被有效地减小了。
12.如权利要求1的多处理器计算机系统,其中具有多个所述处理节 点的所述多处理器计算机系统使用与每个处理节点相关联的活动一致性区 域信息表确定何时改变处理节点的高速缓存状态变迁。
13.如权利要求12的多处理器计算机系统,其中系统管理程序软件 初始化与每个处理节点相关联的所述表,并且在所述表内为系统管理程序 意欲用于该处理节点之上的每个一致性区域建立一项。
14.如权利要求1的多处理器计算机系统,其中系统管理程序为每个 一致性区域分配一个唯一的一致性区域ID,系统管理程序可以将访问由该 一致性区域所包含的存储地址的所有软件进程与该一致性区域ID相关联。
15.如权利要求1的多处理器计算机系统,其中处理节点能够识别这 样的进入的存储请求,其目标管线不再是系统管理程序软件当前使得其被 分派在该节点上的任何软件进程的地址空间的一部分。
16.如权利要求1的多处理器计算机系统,其中处理节点能够识别这 样的进入的存储请求,其目标管线不再是系统管理程序软件当前使得其被 分派在该节点上的任何软件进程的地址空间的一部分,从而识别不再被该 处理节点上的任何软件进程活动地使用的高速缓存管线,并且响应来自该 一致性区域以外的存储请求,将用于该处理节点的高速缓存项改变为是无 效的。
17.如权利要求1的多处理器计算机系统,其中处理节点能够识别这 样的进入的存储请求,其目标管线不再是系统管理程序软件当前使得其被 分派在该节点上的任何软件进程的地址空间的一部分,并且在为一个软件 进程有效地改变一致性边界的同时,允许所述多处理器计算机系统内的所 有高速缓存继续进行一致性事务的处理。
18.如权利要求1的多处理器计算机系统,其中处理节点能够识别这 样的进入的存储请求,其目标管线不再是系统管理程序软件当前使得其被 分派在该节点上的任何软件进程的地址空间的一部分,从而识别出属于不 再被活动地分派在给定处理节点上的软件进程的高速缓存管线,并且将其 无效,由此使得它们可以被再次使用。
19.如权利要求1的多处理器计算机系统,其中系统管理程序软件使 用处理器状态信息确定该多处理器计算机系统内的哪些高速缓存需要检查 由单个发起处理器的进入存储请求产生的一致性事务。
20.如权利要求19的多处理器计算机系统,其中多处理器计算机系 统的处理节点具有动态的一致性边界,从而多处理器计算机系统在任何给 定的时间点为单个工作负载仅使用一系统内全部处理器的一个子集,并且 由于系统管理程序软件扩展和收缩运行任何单个工作负载所使用的处理器 的数目,可以最优化高速缓存一致性。
21.如权利要求20的多处理器计算机系统,其中可以将处理节点的 多个实例连接于第二级控制器,以创建大型多处理器系统。
22.如权利要求21的多处理器计算机系统,其中所述系统管理程序 软件为每个具有其自己的一致性区域的进程创建一个唯一的一致性区域 ID,并且为该多处理器计算机系统中的每个处理器创建一个或多个一致性 模式位,并且使得多个高速缓存一致性区域运行,而在某些在一致性区域 间移动软件进程的操作过程中不使用高速缓存清除,并且节点控制器使用 所述模式位确定哪些处理器必须接收由该节点控制器接收到的任何给定的 事务。
23.如权利要求22的多处理器计算机系统,其中第二级控制器使用 模式位确定哪些处理节点必须接收由该第二级控制器接收到的任何给定事 务。
24.如权利要求21的多处理器计算机系统,其中所述节点控制器上 的监管软件使用被映射到允许的物理处理器上的逻辑分区,并且可以使用 所述系统管理程序为每个分区定义不同的高速缓存一致性区域。
25.如权利要求2的多处理器计算机系统,其中使用所述的一致性区 域ID执行高速缓存一致性模式的功能,并且节点控制器确定哪些物理处 理节点与特定一致性区域ID相关联。
26.如权利要求3的多处理器计算机系统,其中未命中在发起者的一 致性区域内的所有高速缓存的任何进入存储请求被发送到整个系统的所有 处理节点上,而不管所述模式位的设置。
27.如权利要求3的多处理器计算机系统,其中在发起者的一致性区 域内命中但不具有正确的高速缓存状态的任何进入存储请求不需要被发送 到该一致性区域之外。
28.如权利要求3的多处理器计算机系统,其中不能在两个不同的一 致性区域内将一个高速缓存管线标记为是共享的,并且当所述系统管理程 序将一个一致性区域从一组处理节点移动到另一组处理节点时,它有效地 将该一致性区域的高速缓存项保留在旧节点上,并且确保从新的处理节点 发起的进入存储请求将能看到这些旧的高速缓存项,并且在新的处理节点 内不会为相同的主存储地址建立高速缓存项,直到旧的项失效为止。
29.一种用于多处理器计算机系统中的方法,包括如下步骤:
在系统管理程序软件为具有其自己的一致性区域的每个进程创建了 唯一的一致性区域ID之后,在与所述多处理器计算机系统的多个处理节 点相关联的高速缓存的多个高速缓存一致性区域间移动软件进程,而不需 要在一个或多个所述处理节点中进行有选择的高速缓存内容清除,并且
所述系统管理程序软件为该多处理器计算机系统内的每个处理节点 创建一个表,对于当前被允许分派在所述处理节点上的每个一致性区域 ID,该表都具有一项。
30.如权利要求29的用于多处理器计算机系统中的方法,其中当为 了与所述多处理器计算机系统内的其它处理器通信而传输由一处理器发起 的每个存储事务时,与该处理器相关联的所述的一致性模式位和一致性区 域ID被与具有所请求的存储地址的该存储事务一起发送。
31.如权利要求29的用于多处理器计算机系统中的方法,其包括这 样的步骤:使用系统管理程序软件,使得多处理器计算机系统在一处理节 点内的高速缓存控制器逻辑能够确保当在所述处理节点上接收到针对一存 储地址的进入存储请求时,只要针对所请求的存储地址的高速缓存项被发 现存在于所述多处理器计算机系统的包括发起所述进入存储请求的处理器 的任何处理节点的任何高速缓存上,则没有所请求的存储地址的副本存在 于所述处理节点的由当前一致性区域模式所规定的当前一致性区域之外。
技术领域\n本发明涉及具有多个节点和一些动态高速缓存一致性区域(cache coherency region)的多处理器计算机系统。更具体地,本发明涉及这样的 计算机系统,其可以在诸一致性区域之间移动软件进程,而不需要对高速 缓存的内容进行有选择的清除。\n背景技术\n计算机处理器在等待完成存储器引用时所花的空闲时间已经成为多种 重要的商业和技术计算工作负载的总执行时间中的一个较大部分。在多处 理器系统设计中已经使用了许多现有技术以最小化完成主存储单元的访问 时处理器必须等待的时间。这些技术大致分为两种。第一种技术试图为正 在等待正在经历延迟的存储器引用的处理器寻找另外的指令来执行。这些 技术包括诸如乱序执行和多线程的硬件和软件机制。第二种技术集中于最 小化存储器引用本身的等待时间,例如SRAM高速缓存、DRAM高速缓 存以及高速多处理器总线体系结构。SRAM和DRAM高速缓存在减少存 储器引用等待时间方面非常成功,而当今所有多处理器设计都使用了它们 中的一种或全部两种。现有技术的高速缓存设计包括为多处理器系统保持 高速缓存一致性的专用硬件和软件。对于通过一共享总线连接多个处理器 的系统,通常使用监测总线协议(snoop bus protoco1)。对在共享总线上 执行的每个一致性事务对照附连在该总线上的所有其它设备的高速缓存中 的数据进行检查(或“监测”)。如果发现了受影响的数据的副本,可以 更新包含该数据的高速缓存管线(cache line)的状态以响应该一致性事务。\n虽然对于具有中等数量的处理器的多处理器系统,高速缓存工作得很 好,但是现有技术的多处理器设计当被扩展到大量的处理器时不能提供好 的扩展,这些大量的处理器用于许多重要的工作负载,包括由TPC-C基 准测试模拟的事务处理和数据库工作负载。\n如在美国专利No.4843541所说明的逻辑分区,在使用共享处理器的情 况下,也造成现有技术的系统设计在扩展到大量的处理器时具有很低的可 扩展能力。美国专利No.4843541显示了如何使用一虚拟机系统管理程序 (hypervisor)“将数据处理系统的中央电子联合体(central electronic complex)内的资源分区到多个逻辑分区”。逻辑分区广泛地使用于大型多 处理器系统,以运行同时地处理其私有数据的许多工作负载。在典型的使 用逻辑分区的系统内,在每个逻辑分区内初始化一个操作系统实例。逻辑 分区可以有1到n个逻辑处理器。系统管理程序负责将每个逻辑处理器分 派到一个物理处理器上。如果一物理处理器在一段长时间内仅服务于单个 逻辑处理器,就称其“专用于”该逻辑处理器的分区。如果一个物理处理 器服务于多个分区的诸逻辑处理器,则称其为“共事的”处理器。从整体 硬件利用率的角度出发,希望大型多处理器系统允许灵活地将许多或大多 数的物理处理器定义为“共享的”处理器,并且在物理处理器的利用率随 着外界变化而波动时,允许逻辑处理器在该多处理器系统的物理处理器之 间移动。对于这些分区的工作负载,现有技术的多处理器高速缓存设计不 能很好地扩展,特别是当物理处理器被定义为“共享的”时。\n大型多处理器系统在大型单个数据库工作负载和共享逻辑分区这两种 情况下的低的可扩展性能的一大因素在于增加处理器的数目和在这些处理 器间通信所需的时间延迟之间的关系。监测总线协议需要将未命中本地高 速缓存的存储器引用广播到所有可能包含所请求的管线的副本的高速缓 存,通常是广播到系统中的所有其它高速缓存。为大型多处理器系统发布 这些地址及其响应所需的总线带宽非常高。对提供所需的高带宽的需要驱 使现有技术的设计使用具有许多宽端口的交换芯片(switch chip)、昂贵 的芯片载体以提供所需的管脚、昂贵的板卡技术以提供好的电特性并由此 提供高速总线、昂贵的板卡连接器以提供宽的总线等。当试图改进大型多 处理器系统的性价比时,所有这些元件的成本已经成了一个大问题。\n现有技术的设计试图以许多不同的方式解决这样两个问题,一致性操 作延迟和地址带宽限制,但是每种方法都在系统设计上增加了其它的成本, 这是本发明力图避免的。\n在现有技术的设计中,使用了如例示于IBM S/390 G4设计(IBM Journal of Research and Development Volume 41,Numbers 4&5,1997) 中的大的共享高速缓存来解决这两个问题。少数几个大的共享高速缓存的 互连对于命中共享高速缓存的请求的确提供了好的等待时间。所包含的共 享高速缓存也起过滤器的作用,其可以消除在某些情况下向系统内所有处 理器广播地址的需要。该设计不能很好地扩展到大量的处理器。对额外处 理器的使用驱使设计使用具有许多布线层的大的多芯片模块以及具有非常 大量的I/O的L2高速缓存芯片,这些I/O是为每个相连的处理器提供一 个端口所需要的。\n依据目录追踪远程请求者对本地存储器的访问的多处理器系统,如 Sequent NUMA-Q设计(“STiNG:A CC-NUMA Computer System for the Commercial Marketplace”,in Proc.23rd International Symposium of Computer Architecture,May 1996)所例示的,运作以减少大量处理器所 需的地址带宽。它们以大的RAM目录和增加的协议复杂性及硬件支持的 代价来实现这一点。这种类型的设计还依赖于这样的假设,即由特定软件 进程引用的多数主存储管线位于与执行该工作负载的处理器当前被分派的 节点为同一节点的物理节点上。对于工作负载访问大量的远程管线的情况, 存在极其严重的性能惩罚,这是因为可由远程节点“借出”(check out) 的管线的数目受限于NUMA目录的大小。本发明的一个目标在于允许工 作负载的执行可以快速地并且容易地在多个处理器间移动,而不必移动主 存储内容并且没有明显的性能下降。\nHagersten等的美国专利No.5852716描述了使用多个地址分区以便定 义高速缓存一致性操作,所述一致性操作既可以是“本地的”并限制在大 型多处理器系统中的处理器的一个子集上,或是“全局的”并因此广播到 所有处理器。Hagersten的发明中的本地事务定义为这样的事务,其具有 分配给与发起存储请求的处理器所属的处理节点子集相同的处理节点子集 的物理存储器。开始于美国专利No.5852716的第7列第63行的描述清楚 地表明,该现有技术的发明不允许在其所称的“本地域”之间移动进程, 而既不移动与该进程相关联的物理存储,又不将寻址模式改变为“全局的”。\n我们已经确定,存在对减少多处理器计算机系统内的各个处理器间的 地址请求传输,而不使用大量的SRAM目录,并且不需要移动主存储内容 的技术的需要。在开发用于满足这种需求的解决方案中,我们已经确定存 在有相关联的需求以便减少大型多处理器系统中所有存储引用事务的等待 时间。\n发明内容\n根据本发明的一个方面,一种多处理器计算机系统,包括:\n多个处理节点和多个使用与所述处理节点相关联的高速缓存的动态 高速缓存一致性区域,并且具有 在所述处理节点内的高速缓存控制器,其控制所述多个高速缓存一致性区 域间的由软件发起的软件进程的移动,而不需要在一个或多个所述处理节 点中有选择地清除高速缓存内容。\n根据本发明的另一个方面,一种用于多处理器计算机系统中的方 法,包括如下步骤:\n在系统管理程序软件为具有其自己的一致性区域的每个进程创建了 唯一的一致性区域ID之后,在与所述多处理器计算机系统的多个处理节 点相关联的高速缓存的多个高速缓存一致性区域间移动软件进程,而不需 要在一个或多个所述处理节点中进行有选择的高速缓存内容清除,并且 所述系统管理程序软件为该多处理器计算机系统内的每个处理节点创建一 个表,对于当前被允许分派在所述处理节点上的每个一致性区域ID,该表 都具有一项。\n在满足这些已经确定的需求时,我们使用了硬件一致性控制,其使得 使用多个高速缓存一致性区域的系统能够运行,而不必在某些在诸一致性 区域间移动软件进程的操作中使用高速缓存清除。当前发明用于这样的情 况,其中从一个将不再被使用的一致性区域移出软件进程,并且将其移入 另一个已被创建的覆盖与第一个一致性区域相同的地址空间、但是包括新 的一组处理节点的一致性区域内。我们的发明的优选实施例可以允许一系 统管理程序从一个包含一组处理节点的一致性区域内将软件进程移动到另 一包含另一组处理节点的一致性区域内,而不需要这些处理节点内的任何 处理节点的高速缓存的高速缓存清除。如果目的地一致性区域包括比初始 一致性区域更少的硬件处理节点,则一致性区域的大小已被有效地减少了。\n本发明的优选实施例体现在这样的多处理器计算机系统中,该计算机 系统具有多个节点,并且使用与每个处理节点相关联的活动一致性区域信 息表来确定何时改变现有技术的高速缓存状态的变迁。一系统管理程序初 始化与每个处理节点相关联的表。为系统管理程序打算在该处理节点上使 用的每个一致性区域在所述表内建立一项。每个一致性区域分配有一个唯 一的一致性区域ID,系统管理程序可以将其与访问由该一致性区域所包括 的存储地址的所有软件进程关联起来。\n使用本发明的处理节点能够识别这样的进入存储请求,其目标管线不 再是系统管理程序软件当前使得其被分派到该节点上的任何软件进程的地 址空间的一部分。在优选实施例中,这个信息允许处理节点识别不再被该 节点上的任何软件进程活动地使用的高速缓存管线,并且响应来自该一致 性区域外部的存储请求,将高速缓存项改变为是无效的。\n本发明的优点是多方面的。本发明的一个优点是它消除了对高速缓存 控制硬件的需要,而对于在诸高速缓存一致性区域间移动软件进程时执行 有选择的高速缓存清除来说本来是需要这些控制硬件的。第二个优点是本 发明允许在有效地改变软件进程的一致性边界的同时系统内的全部高速缓 存继续处理一致性事务。第三个优点是可以识别属于这样的软件进程的高 速缓存管线,这些软件进程不再被活动地分派在给定的节点上,并使这些 高速缓存管线无效,从而能够再次使用它们。\n下面的详细描述中给出了这些和其它改进。为了更好地理解本发明的 优点和特征,请参考该描述以及附图。\n附图说明\n图1给出了具有动态一致性边界的计算机的方块图。节点控制器包括 活动一致性区域表的硬件实现。\n图2给出了图1的计算机的节点的多个实例可以怎样与第二级控制器 连接以创建大型多处理器系统。\n图3给出了图1的单个处理单元。\n图4给出了一个表,其说明了节点控制器如何使用模式位来确定哪些 处理器必须接收由该节点控制器接收的任何给定的事务。\n图5给出了一个表,其描述了第二级控制器如何使用模式位来确定哪 些节点必须接收由第二级控制器接收的任何给定的事务。\n图6给出了逻辑分区到允许的物理处理器的一种可能的映射。\n图7给出了活动一致性区域表的硬件实现的其它细节。该表是系统管 理程序软件控制的、当前被允许使用该处理节点来进行软件进程调度的一 致性区域的列表。\n我们的更详细的说明通过参考附图以示例的方式解释了本发明的优选\n实施例的优点和特征。\n具体实施方式\n现在转到图1,其给出了具有动态一致性边界的一个计算机节点(10) 的一个实施例的方块图。图1给出了多个处理器P0-P3,每个处理器具有 一个连接于本地节点控制器(11)高速缓存。本地控制器将多个处理器与 一个DRAM主存储单元(12)连接在一起。由单个处理器发起的存储事 务被传输到节点控制器,节点控制器又可以将该事务传递给该节点内的任 一或所有其它处理器。节点控制器还可以在总线(13)上将该事务传递给 该计算系统的包括其它处理器(未示出)的其它部分。节点控制器使用活 动一致性区域表(14)确定所需的适当的高速缓存状态变迁,以响应从计 算系统的其它部分(未示出)通过总线(13)进入节点的存储请求。图2 给出了如何将图1的节点(10)的多个实例连接在第二级控制器(15)上, 以创建一大型多处理器系统。图1给出了使用4个处理单元,但是应当理 解,可以使用任意数目的处理单元。图1仅给出了1个存储单元,但是应 当理解,可以使用任何数目的存储单元。优选实施例使用了如图1和图2 所示的分层总线体系结构,但是本发明也可以适用于使用任何其它种类的 互连拓扑的多处理器系统。\n图3给出了图1中的单个处理单元。本发明为多处理器系统内的每个 处理器使用一个或多个一致性模式位(16)。本发明为多处理器系统内的 每个处理器使用一个一致性区域ID。当通过图3中的总线(17)将由一处 理器发起的每个存储事务传输给节点控制器时,与该存储事务一起发送与 该处理器相关联的一致性模式位和一致性区域ID。应当理解,这个实施例 中使用了节点控制器,但是在其它实施例中可以用简单的物理总线替换它。 节点控制器(11)内的高速缓存一致性硬件和第二级控制器(15)使用与 每个事务相关联的模式位来确定哪些高速缓存必须参与它们从任何处理器 接收到的任何的存储事务。优选实施例使用了3个模式位。这3个模式位 被一起用于为节点控制器和第二级控制器识别以下操作模式。“000”的一 致性模式设置用于定义如图1中的虚线(10’)所示的仅仅单个处理器的一 致性区域。其它3个处理器中的任何一个也可以用在一单个处理器一致性 区域。“001”的一致性模式设置用于定义如图1中的虚线(18)和(19) 所示的2个处理器的一致性区域。当前实施例允许系统管理程序定义2- 处理器一致性区域,其或是覆盖(P0和P1)或是覆盖(P2和P3),以便 简化节点控制器内所需的硬件控制。其它实施例可能允许其它组合,诸如 来自节点1的P0和来自节点2的P0。“010”的一致性模式设置用于定义 包括如图1中的虚线(20)给出的、单个节点的所有处理器的一致性区域。 设置“101”定义了如图2中的虚线(21)和(22)所示的包括2个节点的 一致性区域。最后,具有“111”设置的处理器指示产生的所有存储事务必 须被发送到整个系统中的所有高速缓存。\n一致性模式设置被认为是逻辑分区的状态的一部分,并且因此是被定 义于该分区内的逻辑处理器的状态的一部分。在当前实施例中,来自单个 逻辑分区的所有逻辑处理器在单个时间点上具有相同的一致性模式设置。 应当理解,可以使用附加的软件或固件来定义单个分区内的进程,所述进 程使用单独的一组存储地址,并且因此可以被提供一不同的一致性模式设 置以及可以用于分派的不同的一组允许的物理处理器。当一个逻辑处理器 被分派到单个物理处理器上时,该物理处理器暂时获得该逻辑处理器的一 致性模式设置。当存储事务被传输给节点控制器(11)时,一致性模式位 被与由处理器产生的所有这些存储事务一起发送。因为可以同时定义和使 用许多逻辑分区,所以在同一时间有许多不同的并且重叠的一致性区域被 使用。当前发明提供了节点控制器(11)和第二级控制器(15)内的硬件 及固件控制,它们使用与每个总线事务相伴的一致性模式位来确定如何通 过互连了系统内诸处理器的诸总线来路由事务。\n图4给出了一个表,该表说明了节点控制器如何使用模式位来确定哪 些处理器必须接收由该节点控制器收到的任何给定的事务。图5给出了一 个表,该表说明了第二级控制器如何使用模式位来确定哪些节点必须接收 由该第二级控制器收到的任何给定的事务。图6给出了逻辑分区到允许的 物理处理器的一种可能的映射。在当前实施例中,节点控制器将从第二级 节点控制器接收的所有事务转发到与该节点控制器连接的所有处理器。应 当理解,存在有许多其它可以建立的可能的一致性边界,其需要节点控制 器将来自第二级节点控制器的请求只传输给与该第二级节点控制器连接的 处理器的一子集。\n系统管理程序软件为每个具有其自己的一致性区域的进程建立一个唯 一的一致性区域ID。系统管理程序软件为系统内的每个处理节点建立一个 表。对于当前被允许被分派在该处理节点上的每个一致性区域ID,该表都 具有一项。\n在相关的专利申请中可以发现其他方法。所参考的相关的专利申请使 用软件控制程序和硬件模式位的组合来规定使用多于一个处理节点的一计 算系统内的动态一致性边界。该一致性边界可以调整以创建覆盖任何数目 的处理节点的一致性区域,所述的处理节点的数目从1个节点到整个系统 内的所有节点。相关的申请还说明了如何可以定义多个一致性区域,每个 一致性区域都运行在一个私有地址空间上。在系统运行过程中的任何时刻, 可以扩展一致性区域以包括其它节点。在遵循所需的程序的情况下,还可 以通过从区域内删除处理节点来减少一致性区域的大小。\n在这些程序中包括需要清除将被从该一致性区域内删除的处理节点内 的某些高速缓存项。需要被删除的高速缓存项仅为那些保持有主存储管线 的高速缓存副本的项,所述的主存储管线是将减小大小的一致性区域的一 部分。不能基于识别“拥有”已高速缓存的管线的一致性区域而执行有选 择的清除的高速缓存必须被全部地清除掉。与现有技术的设计相比,有选 择的清除需要额外的高速缓存控制器硬件。此处给出的优选实施例适用于 利用了这样的能力的处理系统,即可以消除当在两组不同的处理节点之间 移动软件进程时对高速缓存清除的需要。\n相关的专利申请说明了系统管理程序软件在调度使用不同于先前调度 的软件进程的高速缓存一致性区域的软件进程时,如何必须改变处理器的 “高速缓存一致性模式”。当前发明需要用关于发起一个存储请求的准确 的一致性区域的更特定的信息来标记该存储请求。当前发明使用发起进程 的一致性区域ID作为这个更特定的标记。在优选实施例中“高速缓存一 致性模式”仍然被节点控制逻辑用来确定需要多处理器系统中的哪些节点 检查存储请求。监测处理器使用当前发明的一致性区域ID来确定正确的 监测响应。\n应当理解,除了为所述优选实施例说明的功能之外,当前发明的另一 优选实施例可以使用一致性区域ID执行“高速缓存一致性模式”的功能。 所述优选实施例假设当必须读取“高速缓存一致性模式”的节点控制逻辑 可以依赖“高速缓存一致性模式”简单的编码时,其可以被做得更快更小。 本发明的另一优选实施例提供了存在于节点控制器内的可编程的逻辑,系 统管理程序使用它帮助节点控制器确定哪些物理节点与特定的一致性区域 ID相关联。\n与相关的专利申请相比,当前发明改变了用于确定哪些处理节点必须 检查特定存储请求的逻辑。在所参考的相关的专利申请中,使用由模式位 表示的一致性区域来做出该决定。在本发明的当前优选实施例中这发生了 改变,从而未命中在发起者的一致性区域内的所有高速缓存的任何存储请 求被随后发送到整个系统内的所有处理节点上,而不管模式位的设置。在 发起者的一致性区域内命中、但是不具有正确的高速缓存状态的请求不需 要向该一致性区域以外发送。这后一种情况的一个例子是这样的存储请求, 其旨在改变一存储管线,但是在存储事务的过程中发现,在其一致性区域 内的一个高速缓存具有被标记为是共享的该管线的一个副本。当前发明的 高速缓存状态变迁被建立以确保高速缓存管线不能在两个不同的一致性区 域内被标记为是共享的。当系统管理程序将一个一致性区域从一组处理节 点移动到另一组处理节点时,其有效地将该一致性区域的高速缓存项保留 在旧的节点上。当前发明运作以确保这些旧的高速缓存项将被从新的处理 节点发起的请求看到,并且用于相同的主存储地址的高速缓存项将不会在 新的处理节点上被建立,直到旧的项失效为止。\n与相关的专利申请中说明的系统相比,当前发明提供了对处理节点之 间的额外的通信的使用。已假设当前发明将结合大的节点上高速缓存一起 使用,这将最小化完全未命中节点上高速缓存的存储请求的数目。与不使 用动态一致性边界的现有技术的设计相比,当前发明将仍然可以实现处理 节点间的通信的总体减少。\n当前发明提供了软件进程在一致性区域间容易的移动。通过使用系统 管理程序软件,本发明使得一处理节点内的高速缓存控制器能够确保只要 用于所请求的存储地址的高速缓存项被发现存在于包含发起该请求的处理 器的处理节点中的任何高速缓存内,则在该处理器的由当前一致性区域模 式规定的当前一致性区域之外不存在所请求的存储地址的副本。\n监测高速缓存使用新的一致性区域ID确定如何响应存储请求。如果 附带于进入请求的一致性区域ID不与该处理节点的活动一致性区域表内 的任何ID匹配,则该处理节点内的高速缓存用通常的MESI协议响应进 行响应,并且然后将该高速缓存设置为是无效的。如果改变为无效需要将 脏的数据写回主存储,则同时也开始该操作。图7给出了活动一致性区域 ID表的一个例子,处理节点在处理进入存储事务的过程中使用它。该表可 被建成任意大,以便容纳所期望的项数,每个在这个处理节点上活动的唯 一一致性区域都在该表内有一项。优选实施例使用硬件表,但是应当显而 易见的是,可以使用软件、固件或硬件的任意的组合来实现本发明所需的 功能。
法律信息
- 2021-05-28
未缴年费专利权终止
IPC(主分类): G06F 12/08
专利号: ZL 200410048159.7
申请日: 2004.06.16
授权公告日: 2007.01.10
- 2007-01-10
- 2005-04-13
- 2005-02-09
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| | 暂无 |
1987-07-29
| | |
2
| | 暂无 |
2000-03-08
| | |
3
| | 暂无 |
1996-07-02
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |