首页> 中国专利> 具有多个一致性区域的多处理器计算机系统及其方法

具有多个一致性区域的多处理器计算机系统及其方法

摘要

一种多处理器计算机系统具有多个处理节点,其利用处理器状态信息来确定该系统内的哪些一致性高速缓存被要求检查由单个发起处理器的存储请求产生的一致性事务。该计算机的节点具有动态一致性边界,从而在任何给定的时间点,硬件为单个工作负载仅使用一大型系统内的所有处理器的一个子集,并且由于系统管理程序软件或固件扩展和收缩用于运行任何单个工作负载的处理器的数目,可以优化高速缓存一致性。

著录项

  • 公开/公告号CN1577294A

    专利类型发明专利

  • 公开/公告日2005-02-09

    原文格式PDF

  • 申请/专利权人 国际商业机器公司;

    申请/专利号CN200410048159.7

  • 发明设计人 T·J·小赫勒;

    申请日2004-06-16

  • 分类号G06F12/08;G06F9/46;G06F15/16;

  • 代理机构11247 北京市中咨律师事务所;

  • 代理人于静;李峥

  • 地址 美国纽约

  • 入库时间 2023-12-17 15:51:36

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2007-01-10

    授权

    授权

  • 2005-04-13

    实质审查的生效

    实质审查的生效

  • 2005-02-09

    公开

    公开

说明书

技术领域

本发明涉及具有多个节点和一些动态高速缓存一致性区域(cachecoherency region)的多处理器计算机系统。更具体地,本发明涉及这样的计算机系统,其可以在诸一致性区域之间移动软件进程,而不需要对高速缓存的内容进行有选择的清除。

背景技术

计算机处理器在等待完成存储器引用时所花的空闲时间已经成为多种重要的商业和技术计算工作负载的总执行时间中的一个较大部分。在多处理器系统设计中已经使用了许多现有技术以最小化完成主存储单元的访问时处理器必须等待的时间。这些技术大致分为两种。第一种技术试图为正在等待正在经历延迟的存储器引用的处理器寻找另外的指令来执行。这些技术包括诸如乱序执行和多线程的硬件和软件机制。第二种技术集中于最小化存储器引用本身的等待时间,例如SRAM高速缓存、DRAM高速缓存以及高速多处理器总线体系结构。SRAM和DRAM高速缓存在减少存储器引用等待时间方面非常成功,而当今所有多处理器设计都使用了它们中的一种或全部两种。现有技术的高速缓存设计包括为多处理器系统保持高速缓存一致性的专用硬件和软件。对于通过一共享总线连接多个处理器的系统,通常使用监测总线协议(snoop bus protocol)。对在共享总线上执行的每个一致性事务对照附连在该总线上的所有其它设备的高速缓存中的数据进行检查(或“监测”)。如果发现了受影响的数据的副本,可以更新包含该数据的高速缓存管线(cache line)的状态以响应该一致性事务。

虽然对于具有中等数量的处理器的多处理器系统,高速缓存工作得很好,但是现有技术的多处理器设计当被扩展到大量的处理器时不能提供好的扩展,这些大量的处理器用于许多重要的工作负载,包括由TPC-C基准测试模拟的事务处理和数据库工作负载。

如在美国专利No.4843541所说明的逻辑分区,在使用共享处理器的情况下,也造成现有技术的系统设计在扩展到大量的处理器时具有很低的可扩展能力。美国专利No.4843541显示了如何使用一虚拟机系统管理程序(hypervisor)“将数据处理系统的中央电子联合体(central electroniccomplex)内的资源分区到多个逻辑分区”。逻辑分区广泛地使用于大型多处理器系统,以运行同时地处理其私有数据的许多工作负载。在典型的使用逻辑分区的系统内,在每个逻辑分区内初始化一个操作系统实例。逻辑分区可以有1到n个逻辑处理器。系统管理程序负责将每个逻辑处理器分派到一个物理处理器上。如果一物理处理器在一段长时间内仅服务于单个逻辑处理器,就称其“专用于”该逻辑处理器的分区。如果一个物理处理器服务于多个分区的诸逻辑处理器,则称其为“共享的”处理器。从整体硬件利用率的角度出发,希望大型多处理器系统允许灵活地将许多或大多数的物理处理器定义为“共享的”处理器,并且在物理处理器的利用率随着外界变化而波动时,允许逻辑处理器在该多处理器系统的物理处理器之间移动。对于这些分区的工作负载,现有技术的多处理器高速缓存设计不能很好地扩展,特别是当物理处理器被定义为“共享的”时。

大型多处理器系统在大型单个数据库工作负载和共享逻辑分区这两种情况下的低的可扩展性能的一大因素在于增加处理器的数目和在这些处理器间通信所需的时间延迟之间的关系。监测总线协议需要将未命中本地高速缓存的存储器引用广播到所有可能包含所请求的管线的副本的高速缓存,通常是广播到系统中的所有其它高速缓存。为大型多处理器系统发布这些地址及其响应所需的总线带宽非常高。对提供所需的高带宽的需要驱使现有技术的设计使用具有许多宽端口的交换芯片(switch chip)、昂贵的芯片载体以提供所需的管脚、昂贵的板卡技术以提供好的电特性并由此提供高速总线、昂贵的板卡连接器以提供宽的总线等。当试图改进大型多处理器系统的性价比时,所有这些元件的成本已经成了一个大问题。

现有技术的设计试图以许多不同的方式解决这样两个问题,一致性操作延迟和地址带宽限制,但是每种方法都在系统设计上增加了其它的成本,这是本发明力图避免的。

在现有技术的设计中,使用了如例示于IBM S/390 G4设计(IBMJournal of Research and Development Volume 41,Numbers 4&5,1997)中的大的共享高速缓存来解决这两个问题。少数几个大的共享高速缓存的互连对于命中共享高速缓存的请求的确提供了好的等待时间。所包含的共享高速缓存也起过滤器的作用,其可以消除在某些情况下向系统内所有处理器广播地址的需要。该设计不能很好地扩展到大量的处理器。对额外处理器的使用驱使设计使用具有许多布线层的大的多芯片模块以及具有非常大量的I/O的L2高速缓存芯片,这些I/O是为每个相连的处理器提供一个端口所需要的。

依据目录追踪远程请求者对本地存储器的访问的多处理器系统,如Sequent NUMA-Q设计(“STiNG:A CC-NUMA Computer System for theCommercial Marketplace”,in Proc.23rd International Symposium ofComputer Architecture,May 1996)所例示的,运作以减少大量处理器所需的地址带宽。它们以大的RAM目录和增加的协议复杂性及硬件支持的代价来实现这一点。这种类型的设计还依赖于这样的假设,即由特定软件进程引用的多数主存储管线位于与执行该工作负载的处理器当前被分派的节点为同一节点的物理节点上。对于工作负载访问大量的远程管线的情况,存在极其严重的性能惩罚,这是因为可由远程节点“借出”(check out)的管线的数目受限于NUMA目录的大小。本发明的一个目标在于允许工作负载的执行可以快速地并且容易地在多个处理器间移动,而不必移动主存储内容并且没有明显的性能下降。

Hagersten等的美国专利No.5852716描述了使用多个地址分区以便定义高速缓存一致性操作,所述一致性操作既可以是“本地的”并限制在大型多处理器系统中的处理器的一个子集上,或是“全局的”并因此广播到所有处理器。Hagersten的发明中的本地事务定义为这样的事务,其具有分配给与发起存储请求的处理器所属的处理节点子集相同的处理节点子集的物理存储器。开始于美国专利No.5852716的第7列第63行的描述清楚地表明,该现有技术的发明不允许在其所称的“本地域”之间移动进程,而既不移动与该进程相关联的物理存储,又不将寻址模式改变为“全局的”。

我们已经确定,存在对减少多处理器计算机系统内的各个处理器间的地址请求传输,而不使用大量的SRAM目录,并且不需要移动主存储内容的技术的需要。在开发用于满足这种需求的解决方案中,我们已经确定存在有相关联的需求以便减少大型多处理器系统中所有存储引用事务的等待时间。

发明内容

在满足这些已经确定的需求时,我们使用了硬件一致性控制,其使得使用多个高速缓存一致性区域的系统能够运行,而不必在某些在诸一致性区域间移动软件进程的操作中使用高速缓存清除。当前发明用于这样的情况,其中从一个将不再被使用的一致性区域移出软件进程,并且将其移入另一个已被创建的覆盖与第一个一致性区域相同的地址空间、但是包括新的一组处理节点的一致性区域内。我们的发明的优选实施例可以允许一系统管理程序从一个包含一组处理节点的一致性区域内将软件进程移动到另一包含另一组处理节点的一致性区域内,而不需要这些处理节点内的任何处理节点的高速缓存的高速缓存清除。如果目的地一致性区域包括比初始一致性区域更少的硬件处理节点,则一致性区域的大小已被有效地减少了。

本发明的优选实施例体现在这样的多处理器计算机系统中,该计算机系统具有多个节点,并且使用与每个处理节点相关联的活动一致性区域信息表来确定何时改变现有技术的高速缓存状态的变迁。一系统管理程序初始化与每个处理节点相关联的表。为系统管理程序打算在该处理节点上使用的每个一致性区域在所述表内建立一项。每个一致性区域分配有一个唯一的一致性区域ID,系统管理程序可以将其与访问由该一致性区域所包括的存储地址的所有软件进程关联起来。

使用本发明的处理节点能够识别这样的进入存储请求,其目标管线不再是系统管理程序软件当前使得其被分派到该节点上的任何软件进程的地址空间的一部分。在优选实施例中,这个信息允许处理节点识别不再被该节点上的任何软件进程活动地使用的高速缓存管线,并且响应来自该一致性区域外部的存储请求,将高速缓存项改变为是无效的。

本发明的优点是多方面的。本发明的一个优点是它消除了对高速缓存控制硬件的需要,而对于在诸高速缓存一致性区域间移动软件进程时执行有选择的高速缓存清除来说本来是需要这些控制硬件的。第二个优点是本发明允许在有效地改变软件进程的一致性边界的同时系统内的全部高速缓存继续处理一致性事务。第三个优点是可以识别属于这样的软件进程的高速缓存管线,这些软件进程不再被活动地分派在给定的节点上,并使这些高速缓存管线无效,从而能够再次使用它们。

下面的详细描述中给出了这些和其它改进。为了更好地理解本发明的优点和特征,请参考该描述以及附图。

附图说明

图1给出了具有动态一致性边界的计算机的方块图。节点控制器包括活动一致性区域表的硬件实现。

图2给出了图1的计算机的节点的多个实例可以怎样与第二级控制器连接以创建大型多处理器系统。

图3给出了图1的单个处理单元。

图4给出了一个表,其说明了节点控制器如何使用模式位来确定哪些处理器必须接收由该节点控制器接收的任何给定的事务。

图5给出了一个表,其描述了第二级控制器如何使用模式位来确定哪些节点必须接收由第二级控制器接收的任何给定的事务。

图6给出了逻辑分区到允许的物理处理器的一种可能的映射。

图7给出了活动一致性区域表的硬件实现的其它细节。该表是系统管理程序软件控制的、当前被允许使用该处理节点来进行软件进程调度的一致性区域的列表。

我们的更详细的说明通过参考附图以示例的方式解释了本发明的优选

实施例的优点和特征。

具体实施方式

现在转到图1,其给出了具有动态一致性边界的一个计算机节点(10)的一个实施例的方块图。图1给出了多个处理器P0-P3,每个处理器具有一个连接于本地节点控制器(11)高速缓存。本地控制器将多个处理器与一个DRAM主存储单元(12)连接在一起。由单个处理器发起的存储事务被传输到节点控制器,节点控制器又可以将该事务传递给该节点内的任一或所有其它处理器。节点控制器还可以在总线(13)上将该事务传递给该计算系统的包括其它处理器(未示出)的其它部分。节点控制器使用活动一致性区域表(14)确定所需的适当的高速缓存状态变迁,以响应从计算系统的其它部分(未示出)通过总线(13)进入节点的存储请求。图2给出了如何将图1的节点(10)的多个实例连接在第二级控制器(15)上,以创建一大型多处理器系统。图1给出了使用4个处理单元,但是应当理解,可以使用任意数目的处理单元。图1仅给出了1个存储单元,但是应当理解,可以使用任何数目的存储单元。优选实施例使用了如图1和图2所示的分层总线体系结构,但是本发明也可以适用于使用任何其它种类的互连拓扑的多处理器系统。

图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”设置的处理器指示产生的所有存储事务必须被发送到整个系统中的所有高速缓存。

一致性模式设置被认为是逻辑分区的状态的一部分,并且因此是被定义于该分区内的逻辑处理器的状态的一部分。在当前实施例中,来自单个逻辑分区的所有逻辑处理器在单个时间点上具有相同的一致性模式设置。应当理解,可以使用附加的软件或固件来定义单个分区内的进程,所述进程使用单独的一组存储地址,并且因此可以被提供一不同的一致性模式设置以及可以用于分派的不同的一组允许的物理处理器。当一个逻辑处理器被分派到单个物理处理器上时,该物理处理器暂时获得该逻辑处理器的一致性模式设置。当存储事务被传输给节点控制器(11)时,一致性模式位被与由处理器产生的所有这些存储事务一起发送。因为可以同时定义和使用许多逻辑分区,所以在同一时间有许多不同的并且重叠的一致性区域被使用。当前发明提供了节点控制器(11)和第二级控制器(15)内的硬件及固件控制,它们使用与每个总线事务相伴的一致性模式位来确定如何通过互连了系统内诸处理器的诸总线来路由事务。

图4给出了一个表,该表说明了节点控制器如何使用模式位来确定哪些处理器必须接收由该节点控制器收到的任何给定的事务。图5给出了一个表,该表说明了第二级控制器如何使用模式位来确定哪些节点必须接收由该第二级控制器收到的任何给定的事务。图6给出了逻辑分区到允许的物理处理器的一种可能的映射。在当前实施例中,节点控制器将从第二级节点控制器接收的所有事务转发到与该节点控制器连接的所有处理器。应当理解,存在有许多其它可以建立的可能的一致性边界,其需要节点控制器将来自第二级节点控制器的请求只传输给与该第二级节点控制器连接的处理器的一子集。

系统管理程序软件为每个具有其自己的一致性区域的进程建立一个唯一的一致性区域ID。系统管理程序软件为系统内的每个处理节点建立一个表。对于当前被允许被分派在该处理节点上的每个一致性区域ID,该表都具有一项。

在相关的专利申请中可以发现其他方法。所参考的相关的专利申请使用软件控制程序和硬件模式位的组合来规定使用多于一个处理节点的一计算系统内的动态一致性边界。该一致性边界可以调整以创建覆盖任何数目的处理节点的一致性区域,所述的处理节点的数目从1个节点到整个系统内的所有节点。相关的申请还说明了如何可以定义多个一致性区域,每个一致性区域都运行在一个私有地址空间上。在系统运行过程中的任何时刻,可以扩展一致性区域以包括其它节点。在遵循所需的程序的情况下,还可以通过从区域内删除处理节点来减少一致性区域的大小。

在这些程序中包括需要清除将被从该一致性区域内删除的处理节点内的某些高速缓存项。需要被删除的高速缓存项仅为那些保持有主存储管线的高速缓存副本的项,所述的主存储管线是将减小大小的一致性区域的一部分。不能基于识别“拥有”已高速缓存的管线的一致性区域而执行有选择的清除的高速缓存必须被全部地清除掉。与现有技术的设计相比,有选择的清除需要额外的高速缓存控制器硬件。此处给出的优选实施例适用于利用了这样的能力的处理系统,即可以消除当在两组不同的处理节点之间移动软件进程时对高速缓存清除的需要。

相关的专利申请说明了系统管理程序软件在调度使用不同于先前调度的软件进程的高速缓存一致性区域的软件进程时,如何必须改变处理器的“高速缓存一致性模式”。当前发明需要用关于发起一个存储请求的准确的一致性区域的更特定的信息来标记该存储请求。当前发明使用发起进程的一致性区域ID作为这个更特定的标记。在优选实施例中“高速缓存一致性模式”仍然被节点控制逻辑用来确定需要多处理器系统中的哪些节点检查存储请求。监测处理器使用当前发明的一致性区域ID来确定正确的监测响应。

应当理解,除了为所述优选实施例说明的功能之外,当前发明的另一优选实施例可以使用一致性区域ID执行“高速缓存一致性模式”的功能。所述优选实施例假设当必须读取“高速缓存一致性模式”的节点控制逻辑可以依赖“高速缓存一致性模式”简单的编码时,其可以被做得更快更小。本发明的另一优选实施例提供了存在于节点控制器内的可编程的逻辑,系统管理程序使用它帮助节点控制器确定哪些物理节点与特定的一致性区域ID相关联。

与相关的专利申请相比,当前发明改变了用于确定哪些处理节点必须检查特定存储请求的逻辑。在所参考的相关的专利申请中,使用由模式位表示的一致性区域来做出该决定。在本发明的当前优选实施例中这发生了改变,从而未命中在发起者的一致性区域内的所有高速缓存的任何存储请求被随后发送到整个系统内的所有处理节点上,而不管模式位的设置。在发起者的一致性区域内命中、但是不具有正确的高速缓存状态的请求不需要向该一致性区域以外发送。这后一种情况的一个例子是这样的存储请求,其旨在改变一存储管线,但是在存储事务的过程中发现,在其一致性区域内的一个高速缓存具有被标记为是共享的该管线的一个副本。当前发明的高速缓存状态变迁被建立以确保高速缓存管线不能在两个不同的一致性区域内被标记为是共享的。当系统管理程序将一个一致性区域从一组处理节点移动到另一组处理节点时,其有效地将该一致性区域的高速缓存项保留在旧的节点上。当前发明运作以确保这些旧的高速缓存项将被从新的处理节点发起的请求看到,并且用于相同的主存储地址的高速缓存项将不会在新的处理节点上被建立,直到旧的项失效为止。

与相关的专利申请中说明的系统相比,当前发明提供了对处理节点之间的额外的通信的使用。已假设当前发明将结合大的节点上高速缓存一起使用,这将最小化完全未命中节点上高速缓存的存储请求的数目。与不使用动态一致性边界的现有技术的设计相比,当前发明将仍然可以实现处理节点间的通信的总体减少。

当前发明提供了软件进程在一致性区域间容易的移动。通过使用系统管理程序软件,本发明使得一处理节点内的高速缓存控制器能够确保只要用于所请求的存储地址的高速缓存项被发现存在于包含发起该请求的处理器的处理节点中的任何高速缓存内,则在该处理器的由当前一致性区域模式规定的当前一致性区域之外不存在所请求的存储地址的副本。

监测高速缓存使用新的一致性区域ID确定如何响应存储请求。如果附带于进入请求的一致性区域ID不与该处理节点的活动一致性区域表内的任何ID匹配,则该处理节点内的高速缓存用通常的MESI协议响应进行响应,并且然后将该高速缓存设置为是无效的。如果改变为无效需要将脏的数据写回主存储,则同时也开始该操作。图7给出了活动一致性区域ID表的一个例子,处理节点在处理进入存储事务的过程中使用它。该表可被建成任意大,以便容纳所期望的项数,每个在这个处理节点上活动的唯一一致性区域都在该表内有一项。优选实施例使用硬件表,但是应当显而易见的是,可以使用软件、固件或硬件的任意的组合来实现本发明所需的功能。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号