CN111684426A - 多节点系统低功率管理 - Google Patents
多节点系统低功率管理 Download PDFInfo
- Publication number
- CN111684426A CN111684426A CN201880088614.6A CN201880088614A CN111684426A CN 111684426 A CN111684426 A CN 111684426A CN 201880088614 A CN201880088614 A CN 201880088614A CN 111684426 A CN111684426 A CN 111684426A
- Authority
- CN
- China
- Prior art keywords
- node
- nodes
- interrupt
- response
- computing system
- 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.)
- Granted
Links
- 230000015654 memory Effects 0.000 claims abstract description 82
- 239000000523 sample Substances 0.000 claims abstract description 67
- 238000000034 method Methods 0.000 claims abstract description 58
- 230000004044 response Effects 0.000 claims abstract description 58
- 238000012545 processing Methods 0.000 claims description 54
- 230000008569 process Effects 0.000 claims description 20
- 230000002618 waking effect Effects 0.000 abstract description 2
- 238000004891 communication Methods 0.000 description 21
- 239000004744 fabric Substances 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 238000011010 flushing procedure Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000005070 sampling Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000007704 transition Effects 0.000 description 3
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 2
- 238000001816 cooling Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 229910052710 silicon Inorganic materials 0.000 description 2
- 239000010703 silicon Substances 0.000 description 2
- 241001522296 Erithacus rubecula Species 0.000 description 1
- 235000008694 Humulus lupulus Nutrition 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000032258 transport Effects 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3296—Power saving characterised by the action undertaken by lowering the supply or operating voltage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/325—Power saving in peripheral device
- G06F1/3275—Power saving in memory, e.g. RAM, cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
- G06F12/0833—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means in combination with broadcast means (e.g. for invalidation or updating)
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
- G06F13/26—Handling requests for interconnection or transfer for access to input/output bus using interrupt with priority control
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Power Sources (AREA)
- Multi Processors (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
公开了用于对多节点计算系统执行高效功率管理的各种系统、装置和方法。一种包括多个节点的计算系统利用非一致存储器访问(NUMA)架构。第一节点从第二节点接收广播探测。所述第一节点针对所掉电第三节点伪装未命中响应,所述未命中响应防止所述第三节点响应于所述广播探测而唤醒。在掉电之前,所述第三节点冲洗其探测过滤器和高速缓存,并且用所接收脏高速缓存线来更新其系统存储器。所述计算系统包括主节点,所述主节点用于存储用于仲裁中断的所述计算系统中的多个内核的中断优先级。所述内核存储所述计算系统中的每个内核的固定中断标识符的指示。由内核用点对点单播消息而非广播消息来处理仲裁中断和固定中断。
Description
发明背景
背景技术
现代集成电路(IC)的功率消耗对于每一代半导体芯片来说已日益成为一个设计问题。由于功率消耗增加,必须利用更昂贵的冷却系统(诸如更大的风扇和散热器)以便移除多余的热量和防止IC故障。然而,冷却系统增加系统成本。IC功率耗散约束不仅对于便携式计算机和移动通信设备是个问题,而且对于使用高性能微处理器的台式计算机和服务器也是个问题。这些微处理器包括多个处理器内核或内核以及位于一个内核内的多个流水线。
多种计算设备(诸如多种服务器)利用异构集成,所述异构集成集成多种类型的IC以提供系统功能。多个功能放置在处理节点中,并且多个功能包括音频/视频(A/V)数据处理、医疗和商业领域的其他高速数据并行应用、通用指令集架构(ISA)的处理指令、数字、模拟、混合信号和射频(RF)功能等等。存在用于将处理节点放置在系统封装中以集成多种类型的IC的多种选择。处理节点包括多个IC、通信结构、功率控制器、中断控制器、链路接口等等。
在一些计算设备中,使用片上系统(SOC),而在其他计算设备中,处理节点的较小和较高产量的芯片作为大芯片封装在多芯片模块(MCM)中。一些计算设备包括三维集成电路(3D IC),所述3D IC利用管芯堆叠技术以及硅中介层、通过硅通孔(TSV)和其他机制来竖直地堆叠并电连接系统级封装(SiP)中的两个或更多个管芯。
无论选择哪种系统封装,用多个插座(每个插座具有选定封装的副本)使计算系统掉电都是复杂的。每个封装包括功率控制器,并且因此,系统具有多个功率控制器。如果每个功率控制器都连接到系统中的每个其他功率控制器,则在使系统掉电时进行通信变得更加容易。然而,如果要将每个功率控制器直接连接到系统中的每个其他功率控制器,则对系统进行比例缩放(诸如增加插座数量以提高性能)变得困难。此外,路由多个连接增加插座之间的信号量并且增大接口面积。另外,使处理节点掉电包括多个步骤。当给定处理节点掉电并且不久之后所述给定处理节点被唤醒时,在给定处理节点准备好处理任务之前发生明显的时延。因此,当节点掉电并且不久之后重新加电时,性能降低。
鉴于上述情况,需要用于对多节点计算系统执行高效功率管理的高效方法和系统。
附图说明
通过结合附图参考以下描述,可更好地理解本文所描述的方法和机制的优点,在附图中:
图1是处理节点的一个实施方案的框图。
图2是多节点计算系统的一个实施方案的框图。
图3是用于对多节点计算系统执行功率管理的方法的一个实施方案的流程图。
图4是用于对多节点计算系统执行功率管理的方法的另一个实施方案的流程图。
图5是用于对多节点计算系统执行功率管理的方法的另一个实施方案的流程图。
图6是用于对多节点计算系统执行功率管理的方法的另一个实施方案的流程图。
虽然本发明容易有各种修改和替代形式,但特定实施方案通过举例方式在附图中示出并且在本文中予以详细描述。然而,应当理解,附图和对其的详细描述并不意图将本发明局限于所公开的特定形式,而是相反,本发明意图涵盖落入如所附权利要求所限定的本发明的范围内的所有修改、等效物和替代方案。
具体实施方式
在以下描述中,阐述许多特定细节以提供对本文所提出的方法和机制的透彻理解。然而,本领域的普通技术人员应当认识到,可在没有这些特定细节的情况下实践各种实施方案。在一些情况下,并未详细示出众所周知的结构、组件、信号、计算机程序指令和技术,以避免混淆本文所描述的方法。应了解,为了说明的简单和清楚起见,附图中所示的元件不一定按比例绘制。例如,元件中的一些的尺寸可相对于其他元件被放大。
公开了用于对多节点计算系统执行高效功率管理的各种系统、装置、方法和计算机可读介质。在各种实施方案中,处理节点包括用于处理应用的一个或多个客户端。位于节点内的客户端的实例包括通用中央处理单元(CPU)、图形处理单元(GPU)、加速处理单元(APU)、输入/输出(I/O)设备等等。处理节点至少还包括管理控制器和用于与其他节点传输消息的多个链路接口。如本文所用,处理节点也称为节点。
在一些实施方案中,计算系统是多节点系统,所述多节点系统包括节点的多个副本,每个副本具有其自己的一个或多个客户端和功率控制器。在各种实施方案中,计算系统利用共享存储器架构,其中给定节点中的给定处理器以比访问另一个节点的远程存储器小的时延来访问其本地存储器。换句话讲,计算系统利用非一致存储器访问(NUMA)架构,并且计算系统中的节点中的每一个都是NUMA节点。
多个节点中的第一节点的功率控制器确定其一个或多个客户端中的每个客户端何时空闲。此外,功率控制器确定何时没有尝试访问第一节点的系统存储器(诸如第一节点的动态随机存取存储器(DRAM))的远程存储器请求。在一个实施方案中,当功率控制器确定满足了这些条件时,功率控制器向其链路中的一个或多个上的一个或多个节点发送指定第一节点的掉电状态的指示。然后,第一节点执行多个步骤以便掉电,诸如冲洗其高速缓存,使探测过滤器的每个条目无效,以及用由于使探测过滤器中的条目无效而接收到的脏高速缓存线来更新连接到第一节点的系统存储器。然后,所述步骤包括:禁用链路接口的驱动程序,禁用一个或多个客户端的时钟和在一个或多个客户端与存储器控制器之间传输流量的通信结构,以及将系统存储器设置为在使用动态随机存取存储器(DRAM)时执行自刷新。
在一个实施方案中,为了增加第一节点保持掉电的时间量,执行如上所描述的冲洗高速缓存和使探测过滤器无效。在其他实施方案中,直接连接到所掉电第一节点的第二节点从第三节点接收广播探测,并且当第二节点确定第一节点掉电时,第二节点针对所掉电第一节点产生未命中响应。第二节点不向第一节点发送广播探测,这将唤醒第一节点并致使第一节点从掉电状态转变到活动状态。第二节点代表所掉电第一节点将未命中响应发送到第三节点。
在一些实施方案中,计算系统包括主节点,所述主节点用于存储计算系统中的多个处理器内核的中断优先级,其中中断优先级对应于仲裁中断。因此,仲裁中断由处理器内核用点对点单播消息而非广播消息来处理。类似地,计算系统中的多个处理器内核通过支持存储多个处理器内核中的每个处理器内核的固定中断标识符(ID)来用点对点单播消息而非广播消息处理固定中断。因此,所掉电节点不由用于处理中断的广播探测唤醒。这些和其他实施方案是可能的并且是可预期的。
参考图1,示出了处理节点100的一个实施方案的一般化框图。如图所示,处理节点100包括位于客户端110、探测过滤器113、存储器控制器130、功率控制器170和链路接口180中的每一者之间的通信结构120。在一些实施方案中,处理节点100的组件是位于集成电路(IC)上的单独管芯,诸如片上系统(SOC)。在其他实施方案中,组件是位于系统级封装(SiP)或多芯片模块(MCM)中的单独管芯。
在各种实施方案中,通信结构120在客户端110与存储器控制器130之间来回传输流量,并且包括用于支持相应通信协议的接口。在一些实施方案中,通信结构120至少包括用于存储请求和响应的队列、用于在跨内部网络发送请求之前在所接收请求之间进行仲裁的选择逻辑、用于构建和解码封包的逻辑、以及用于选择封包的路由的逻辑。
在所示实施方案中,客户端110包括中央处理单元(CPU)112、图形处理单元(GPU)114和集线器116。集线器116用于与多媒体引擎118通信。CPU 112、GPU 114和多媒体引擎118是能够处理应用的计算资源的实例。尽管未示出,但在其他实施方案中,客户端110中包括其他类型的计算资源。在一个实施方案中,GPU 114包括具有显著数量的并行执行通道的高速并行数据微架构。在一个实施方案中,微架构针对并行执行通道使用单指令多数据(SIMD)流水线。多媒体引擎118包括用于处理多媒体应用的音频数据和视觉数据的处理器。
在一些实施方案中,CPU112中的一个或多个处理器内核中的每一个包括用于根据给定的所选指令集架构(ISA)来执行指令的电路。在各种实施方案中,CPU112中的处理器内核中的每一个包括用于处理给定ISA的指令的超标量体系结构的多线程微架构。如本文所用,处理器内核也称为内核。在一个实施方案中,CPU112包括8个内核,每个内核包括用于处理2个软件线程的2个硬件线程。因此,在这种实施方案中,CPU112能够同时处理16个线程。在其他实施方案中,用于同时多线程的任何数量的线程由CPU 112支持。
链路接口180通过在链路上传输消息来支持处理节点100与其他处理节点之间的通信。在各种实施方案中,跨链路在节点之间发送的消息包括一个或多个节点的操作状态的指示、对请求的响应、中断和其他信息。在各种实施方案中,每个链路是位于两个节点之间的点对点通信信道。在物理级,链路包括一个或多个通道。在一些实施方案中,链路接口180、对应的链路和其他节点包括通信协议连接,诸如PCIe(周边组件互连高速)、InfiniBand、RapidIO、HyperTransport等等。在一些实施方案中,链路接口180包括用于通过互连链路与其他节点通信的控制逻辑和缓冲器或队列。
尽管示出单个存储器控制器130,但在其他实施方案中,在处理节点100中使用另一数量的存储器控制器。在各种实施方案中,存储器控制器130通过通信结构120从客户端110接收存储器请求,安排所述存储器请求,并且将所安排存储器请求发送到系统存储器和主存储器中的一者或多者。存储器控制器130还从系统存储器和主存储器接收响应并将所述响应发送到客户端110中的对应请求源。在各种实施方案中,系统存储器通过I/O控制器与总线160和存储器总线150用来自主存储器的数据填充。具有请求块的对应高速缓存填充线从主存储器传送到客户端110中的高速缓存存储器子系统中的对应一个,以便完成原始存储器请求。高速缓存填充线放置在高速缓存的一个或多个级中。
在一些实施方案中,处理节点100的地址空间至少在CPU 112、GPU 114和集线器116以及一个或多个其他组件(诸如输入/输出(I/O)外围设备(未示出)和其他类型的计算资源)之间划分。维护存储器映射以确定将哪些地址映射到哪个组件,以及因此应当将对特定地址的存储器请求路由到CPU 112、GPU 114和集线器116中的哪一者。在一个实施方案中,系统存储器是多种动态随机存取存储器(DRAM)中的一种,并且存储器控制器130支持对应协议。所述协议确定用于信息传输的值,诸如每个时钟周期的数据传输次数、信号电压电平、信号时序、信号和时钟相位以及时钟频率。在一些实施方案中,主存储器是多种类型的非易失性随机存取数据二级存储装置中的一种。主存储器的实例为硬盘驱动器(HDD)和固态盘(SSD)。
在一个实施方案中,功率控制器170从客户端110收集数据。在一些实施方案中,功率控制器170还从存储器控制器130收集数据。在一些实施方案中,所收集数据包括预定采样信号。采样信号的切换指示切换电容的量。要采样的选定信号的实例包括时钟门控器使能信号、总线驱动器使能信号、内容可寻址存储器(CAM)、CAM字线(WL)驱动器中的失配等等。在一个实施方案中,功率控制器170收集数据以表征在给定采样间隔期间节点100中的功率消耗。
在一些实施方案中,节点100中的管芯上(on-die)电流传感器和温度传感器也向功率控制器170发送信息。功率控制器170使用传感器信息、发布指令或发布线程的计数以及加权采样信号的总和中的一者或多者来估计节点100的功率消耗。如果节点100高于(低于)阈值极限操作,则功率控制器170减少(或增加)功率消耗。在一些实施方案中,功率控制器170为客户端110中的计算资源中的每一者选择相应的功率-性能状态(P-state)。P-state至少包括操作电压和操作时钟频率。在各种实施方案中,功率控制器170和节点100支持N个P-state,其中N是非零正整数。
在各种实施方案中,处理节点100是多节点系统中的多个节点中的一个节点。在一个实施方案中,所述系统是多个服务器中的一个服务器。有时,批量发送到服务器的作业不分配给每个服务器。给定服务器可变为空闲达明显量的时间。为了减少功率消耗,可使服务器内的多个节点掉电。在各种实施方案中,功率控制器170检测客户端110中的一个或多个何时变为空闲。如果客户端110中的每一个都变为空闲,则在一个实施方案中,功率控制器170通过链路接口180向其链路中的一个或多个上的一个或多个节点中继指定掉电状态的指示。在一些实施方案中,功率控制器170将消息发送到CPU 112和GPU 114中的每一者以冲洗其高速缓存存储器子系统中的每个高速缓存。
另外,功率控制器170发送消息以使探测过滤器113的每个条目无效以及用由于使探测过滤器113中的条目无效而接收到的脏高速缓存线来更新系统存储器。然后,功率控制器170发送消息以禁用链路接口的驱动程序,禁用客户端110的时钟和通信结构120、存储器控制器130,并且将系统存储器设置为在使用动态随机存取存储器(DRAM)时执行自刷新。
许多基于目录的高速缓存一致性协议都包括使用从诸如存储器控制器的一致性点传递的消息或探测来在计算系统内的各种高速缓存之间进行通信。在一个实施方案中,通信结构120维护探测过滤器113。在各种实施方案中,探测过滤器113被实现为具有多个条目的目录。探测过滤器113的条目包含指示存在数据的高速缓存副本的信息。在一些实施方案中,每个条目存储有效位、高速缓存线的标记、指定高速缓存线的高速缓存一致性状态的指示、节点所有权标识符(ID)、其中远程客户端将数据的高速缓存副本存储在本地系统存储器中的远程节点的一个或多个节点ID、干净/脏状态等等。在一些实施方案中,高速缓存一致性状态为修改、拥有、独占、共享和无效。
探测过滤器113中的条目跟踪处理节点100中的每个高速缓存线,所述处理节点100具有存储在计算系统中的其他处理节点的高速缓存中的副本。如果存储在系统存储器中的线无论是本地高速缓存在处理节点100中还是远程高速缓存在另一个处理节点中,则都在探测过滤器113中针对所述线分配条目。探测过滤器113条目中不存在所分配条目指示未高速缓存特定线。并非无条件地广播探测,而是探测过滤器113用于确定需要将探测传送到的特定子系统(其可包含数据的高速缓存副本)以便引起特定的一致性动作。
在各种实施方案中,CPU 112正在处理的多个线程中的每一个都能够断言中断并接收中断服务例程的地址。在各种实施方案中,处理节点100是多节点计算系统的一个节点,所述多节点计算系统支持用于在多处理器计算系统中路由中断的中断重定向协议。此协议在计算系统的多个节点中的处理器之间发送中断。基于中断模式或中断类型,将中断从检测到中断的处理器发送到基于中断标识符(ID)的特定节点中的特定处理器。在一个实例中,ID用于标识特定节点中的特定处理器。如本文所用,这些类型的中断称为“固定中断”。被选择用于处理固定中断的处理器是基于ID固定的。类似地,基于不同的中断模式或不同的中断类型,将中断从检测到中断的处理器发送到基于仲裁的特定节点中的处理器。在一个实例中,为处理器中的每个硬件线程或每个内核分配中断优先级,并且由仲裁逻辑选择具有最低优先级的一个或多个处理器以处理所断言中断。如本文所用,这些类型的中断称为“仲裁中断”。在一些实施方案中,用于在不同处理器之间发送中断的协议是APIC(高级可编程中断控制器)协议,并且用于标识内核或内核内的硬件线程的标识符是APIC ID。
在一个实施方案中,除了由远程CPU上的内核断言的多个中断之外,中断控制器111通过链路接口180接收由CPU 112上运行的多个线程断言的多个中断。中断控制器111还基于诸如APIC协议的选定中断路由协议,通过链路接口180将中断路由到CPU 112中的其他内核和远程CPU中的其他内核。在一些实例中,中断控制器111将中断发送到用于服务于中断的其他内核。无论是本地还是远程的其他内核通过处理给定中断服务例程来服务于中断,所述给定中断服务例程也称为中断处理程序。在一些实施方案中,中断控制器111位于CPU 112外部并通过通信结构120从多个其他源(诸如GPU 114、集线器116、I/O外围设备和远程计算设备)接收中断。
在各种实施方案中,处理节点100是多节点系统中的主节点,所述主节点用于存储计算系统中的多个处理器内核的用于仲裁中断的中断优先级。在先前的实例中,CPU 112具有8个内核,每个内核都能够同时处理2个线程。因此,在一个实施方案中,CPU 112具有用于仲裁中断的16个中断优先级,一个中断优先级用于16个硬件线程中的每一个,并且每个内核有2个中断优先级。在其他实施方案中,用于仲裁中断的中断优先级的粒度位于内核级,并且给定内核的多个硬件线程中的每一个都具有相同的用于仲裁中断的中断优先级。在又一些实施方案中,每个线程设置有相同的中断优先级。线程的中断优先级分配的其他组合是可能的并且是可设想的。
如果计算系统具有4个节点,每个节点具有与CPU 112类似的CPU,并且每个内核具有用于仲裁中断的2个中断优先级,则在一些实施方案中,计算系统具有64个中断优先级。然而,对于仲裁中断,在一个实施方案中,具有最低中断优先级的硬件线程(或内核)被分配来服务于仲裁中断。在一些实施方案中,中断控制器111存储4个中断优先级,用于仲裁中断的一个中断优先级用于4个节点中的每一个。用于给定节点的一个中断优先级是分配给给定节点中的内核的16个中断优先级中的最低中断优先级。
当除主节点之外的第一节点中的内核断言仲裁中断时,第一节点点对点地通过链路接口180和通信结构120将消息发送到主节点的中断控制器111。在这种情况下,第一节点不使用广播消息来通知每个其他节点将一个或多个中断优先级发送到第一节点。响应于来自第一节点的点对点通信,主节点的中断控制器111确定4个所存储中断优先级中的最低中断优先级。在一个实施方案中,主节点的中断控制器111还标识第二节点,所述第二节点包括具有4个所存储中断优先级中的所标识最低中断优先级的内核。在各种实施方案中,主节点的中断控制器111以点对点消息将仲裁中断发送到第二节点中的所标识内核。因此,仲裁中断用点对点单播消息而非广播消息来处理。在各种实施方案中,当主节点、输入/输出(I/O)设备或其他设备中的本地内核断言仲裁中断而非由远程节点(诸如上述实例中的第一节点)断言仲裁中断时,使用类似的点对点通信。
在各种实施方案中,软件(诸如操作系统)为掉电的处理节点100内的内核的仲裁中断重新分配中断优先级。在一个实施方案中,软件将中断优先级重新分配为最大值或至少大于活动节点的中断优先级的值。因此,主节点不选择所掉电节点来唤醒和服务于计算系统中的断言的仲裁中断。
当CPU 112内的内核断言仲裁中断时,将消息发送到中断控制器111。作为响应,中断控制器111在响应中发送4个所存储中断优先级中的最低中断优先级。剩余步骤与上述相同,诸如以单播通信将仲裁中断发送到在响应中标识的节点中的所标识内核。同样,不发送广播消息。因此,所掉电节点不由用于处理仲裁中断的广播探测唤醒。除了仲裁中断之外,还对固定中断使用单播消息而非广播消息。
参考图2,示出了多节点计算系统200的一个实施方案的一般化框图。在所示实施方案中,封装210包括通过链路240彼此直接连接的节点220A和220B。在一些实施方案中,封装210和230中的每一者都是放置在服务器中的多孔插座母板的插座中的多芯片模块(MCM)。如图所示,节点220A包括客户端222A-222C、功率控制器224和中断控制器(IC)228。客户端222A-222C的实例为CPU、GPU、多媒体引擎、I/O外围设备等等。如图所示,至少客户端222A包括探测过滤器(PF)223。
在一些实施方案中,中断控制器228位于客户端222A-222C中的一个内,而非用作独立控制器。在各种实施方案中,功率控制器224具有(图1的)功率控制器170的功能。为了便于说明,未示出链路接口、通信结构、存储器接口、锁相环路(PLL)或其他时钟产生电路。
在一个实施方案中,链路240-246利用通信协议连接,诸如PCIe、InfiniBand、RapidIO、HyperTransport等等。在一些实施方案中,除了链路240-246之外,计算系统200还包括位于节点220A-220D之间的其他链路。在一个实施方案中,这些其他链路用于数据传输以服务于请求,而链路240-246用于传送诸如用于协商系统范围掉电的消息。
在各种实施方案中,计算系统200使用其中节点220A-220D中的每一个都是请求者的层次拓扑。在层次的低级或第一级,每个节点直接连接到每个其他节点。例如,节点220A通过链路240直接连接到封装210中的节点220B。类似地,节点220C通过链路242直接连接到封装230中的节点220D。在层次的较高级或第二级,每个节点连接到其他层次中的单个节点。例如,封装210中的节点220A通过链路244直接连接到封装230中的节点220C。然而,节点220A不直接连接到封装230中的节点220D。类似地,封装210中的节点220B通过链路246直接连接到封装230中的节点220D。然而,节点220B不直接连接到封装230中的节点220C。在其他实施方案中,使用树状或环形拓扑,其中根节点与叶节点之间的每个中间节点直接连接到单个上游节点并且直接连接到单个下游节点。在其他实施方案中,多种其他拓扑是可能的并且是可设想的。
在一个实例中,如果节点220B掉电,那么为了增加节点220B保持掉电的时间量,在一个实施方案中,执行冲洗高速缓存和使探测过滤器223无效。另外,直接连接到所掉电节点220B的另一个节点(诸如节点220A)代表所掉电节点220B对特定广播探测伪装响应。在一个实例中,节点220A从节点220C接收广播探测以搜索高速缓存线的最新有效副本。由于节点220B在掉电之前冲洗其一个或多个高速缓存存储器子系统,因此节点220B不能具有所请求高速缓存线的副本。
当节点220A确定节点220B掉电时,节点220A针对所掉电节点220B产生未命中响应。在一些实施方案中,当节点220D确定节点220B掉电时,节点220D也代表所掉电节点220B产生未命中响应。节点220A和220D中的任一者都不向所掉电节点220B发送广播探测,这将唤醒节点220B并致使节点220B从掉电状态转变到活动状态,仅仅为了报告由于其空的高速缓存造成的未命中响应。节点220A和节点220D中的一个或多个代表所掉电节点220B将未命中响应发送到节点220C。功率控制器224和用于链路接口(未示出)的逻辑中的一者或多者检测用于高速缓存线的广播探测的条件以及节点220B掉电。因此,逻辑代表所掉电节点220B伪装未命中响应。
在各种实施方案中,计算系统200利用共享存储器架构,其中节点220A-220D中的给定节点中的给定处理器以比访问另一个节点的远程存储器小的时延来访问其本地存储器。换句话讲,计算系统200利用非一致存储器访问(NUMA)架构,并且节点220A-220D中的每一个都是NUMA节点。在一个实施方案中,当服务于存储器请求时,节点220A中的通信结构(未示出)维护探测过滤器(PF)223。在各种实施方案中,探测过滤器223具有功能并且存储与(图1的)探测过滤器113相同类型的信息。
在一个实施方案中,探测过滤器223中的条目包含指示节点220B-220D中的一个或多个包含数据块的共享副本的信息。响应于对独占地访问所述块的命令,将无效探测传送到节点220B-220D中的一个或多个。一般来讲,节点220A-220D中的发布请求的节点称为“请求”节点。如果请求的存储器地址映射到耦接到节点220A-220D中的一个节点的系统存储器,则所述节点称为“归属”节点。如果220A-220D中的一个节点内的高速缓存当前存储存储器块的最新副本,则所述节点称为“所有者”节点。探测用于确定高速缓存是否具有块的副本并且任选地指示高速缓存应当使块变为的状态。接收探测的每个节点检查其探测过滤器并且对所述探测做出响应。一旦接收到所有探测响应,命令就前进至完成。
当节点220A的功率控制器224确定客户端222A-222C中的每个节点是空闲的并且没有尝试访问节点220A的系统存储器的远程存储器请求时,在一个实施方案中,系统范围功率控制器224将指定节点220A的掉电状态的指示发送到节点2202B-220D中的一个或多个。然后,系统范围功率控制器224将消息发送到客户端222A-222C以冲洗其高速缓存并使探测过滤器(诸如探测过滤器223)的每个条目无效。节点220A用由于使探测过滤器223中的条目无效而接收到的脏高速缓存线来更新其系统存储器。
在一些实施方案中,在执行上述步骤之后,功率控制器224继续使节点220A掉电。在其他实施方案中,在执行上述步骤之后,如果给定时延已经过期,则功率控制器224继续掉电。如果给定时延尚未过期并且接收到任务,则在一个实施方案中,功率控制器224将节点220A从空闲状态转变到活动状态,在其链路240和244中的每一者上发送活动状态的指示,并且将处理所接收任务的指示发送到客户端222A-222C。在再一些其他实施方案中,功率控制器224使用另外的信息以及时延来确定是继续使节点220A掉电还是处理所接收任务。另外的信息的实例为服务质量(QoS)或任务的其他优先级级别、进程或软件线程标识符(ID)、标识客户端222A-222C中的一者的硬件ID等等。如果功率控制器224确定节点220A正在掉电,则在一个实施方案中,功率控制器224禁用链路接口的驱动程序,禁用客户端222A-222C的时钟,并且将系统存储器设置为在使用DRAM时执行自刷新。
唤醒条件可在包括在功率控制器224已使节点220A掉电之后不久的任何时间发生。唤醒条件包括以下中的一者或多者:从活动节点接收对本地高速缓存探测的远程请求,从活动节点接收对系统存储器中的本地数据的远程存储器请求,从操作系统接收所分配任务等等。上述步骤包括:在掉电之前冲洗高速缓存,在掉电之前使探测过滤器无效,将固定中断ID存储在节点220A-220D中的每个节点中,将最低中断优先级存储在节点220A-220D中的主节点中,以及代表所掉电节点对寻求特定高速缓存线的广播探测伪装未命中响应。另外,除了在不进行更新的情况下维护初始固定中断ID之外,诸如操作系统的软件通过安排任务并将数据迁移到活动节点而非唤醒所掉电节点以处理任务来帮助延长节点保持处于掉电状态的时间量。
在各种实施方案中,节点220A是计算系统200中的主节点,并且中断控制器228将用于仲裁中断的多个处理器内核的中断优先级存储在计算系统200中。在一个实施方案中,用于用单播消息而非广播消息来处理仲裁中断的步骤是先前针对处理节点100描述的步骤。例如,仲裁中断由仲裁逻辑基于最低中断优先级所选择的处理器内核提供服务。在一些实施方案中,中断控制器228将处理器内核中的每一个的固定中断标识符(ID)存储在计算系统200中。在一个实施方案中,固定中断标识符(ID)是高级可编程中断控制器(APIC)ID。与仲裁中断相反,当计算系统200中的给定处理器内核断言固定中断时,给定处理器内核需要将固定中断发送到具有与所断言固定中断相匹配的固定中断ID的特定处理器内核。
在一个实施方案中,由诸如操作系统的软件以顺序方式分配固定中断ID。因此,节点220A中的中断控制器228和节点220B-220D中的每个中断控制器存储固定中断ID的范围,而非存储每个单独的固定中断ID。使用其中CPU包括8个内核、每个内核包括用于处理2个软件线程的2个硬件线程的先前实例,CPU具有16个固定中断ID。在所示实施方案中,计算系统200具有4个节点,每个节点具有类似的CPU,并且因此存在64个固定中断ID。并非节点220A-220D中的每个节点都使用64条目表来存储单独的固定中断ID,而是在一个实施方案中,节点220A-220D中的每个节点为每个节点存储2个固定中断ID,或存储总共8个固定中断ID。
在一个实施方案中,节点220A-220D中的每个节点为计算系统200中的每个节点存储一系列顺序固定中断ID中的开始固定中断ID和结束固定中断ID。例如,如果操作系统顺序地将固定中断ID 0至15分配给节点220A,则节点220A-220D的每个节点为节点220A存储值0和15,而非十六个固定中断ID中的每一个。当计算系统200中的节点220C中的给定内核断言具有固定中断ID 9的固定中断时,对计算系统200的固定中断ID的相对小的存储的查找指示节点220A已经将处理器内核分配用于服务于具有ID 9的固定中断。然后,节点220C向节点220A发送单播消息以用被分配固定中断ID 9的处理器内核来服务于固定中断。不发送广播探测以发现节点220A-220D中的节点已经将处理器内核分配用于服务于具有ID 9的固定中断。
尽管相对罕见,但操作系统可重新分配固定中断ID。在一些实施方案中,节点220A-220D中的一个或多个窥探所分配固定中断ID的初始软件副本。在一个实施方案中,已知位置(诸如存储器地址范围),并且执行读取操作之后进行检查以确定是否发生任何改变。在另一个实施方案中,调用软件进程来检查初始值并报告结果。如果发生了初始固定中断ID的更新,则在一个实施方案中,节点220A-220D中的每一个使其固定中断ID的副本无效。接着,使用广播消息来服务于固定中断。在另一个实施方案中,节点220A-220D中的每一个更新其固定中断ID的副本。接着,仍使用单播消息来服务于固定中断。
现在参考图3,示出了用于对多节点计算系统执行功率管理的方法300的一个实施方案。出于讨论目的,以顺序次序示出此实施方案(以及图4至图6)中的步骤。然而,应注意,在所描述的方法的各种实施方案中,所描述的元素中的一个或多个同时执行、以不同于所示的次序执行或完全省略。也可根据需要执行其他另外的元素。本文所描述的各种系统或装置中的任一者被配置来实现方法300。
在多节点系统中对固定中断标识符(ID)进行初始化(框302)。固定中断ID指定将哪个处理器内核或处理器内核内的哪个硬件线程分配来服务于具有匹配固定中断ID的固定中断。在各种实施方案中,操作系统对固定中断ID进行初始化,并且在一个实施方案中,以顺序方式对固定中断ID进行初始化。将固定中断ID广播到计算系统中的节点(框304)。例如,操作系统将计算系统的固定中断ID的指示发送到节点中的每一个。替代地,一个或多个节点窥探特定存储器位置以获得计算系统的固定中断ID。在又一些实例中,一个或多个节点执行对操作系统的系统调用以确定计算系统的固定中断ID。每个节点基于所接收固定中断ID来更新每个节点的固定中断ID的副本(框306)。因此,不需要广播消息来处理固定中断。
多个节点处理任务(框308)。节点内的一个或多个客户端执行计算机程序或软件应用。在一些实施方案中,多个节点位于多孔插座服务器内并且由操作系统接收批作业,操作系统将任务分配给多个节点中的一个或多个。在各种实施方案中,多节点计算系统利用非一致存储器访问(NUMA)架构,并且节点中的每一个都是NUMA节点。
如果第一节点断言固定中断(条件框310的“是”分支)并且仍使用所存储固定中断ID(条件框312的“是”分支),则基于所存储固定中断ID来标识服务于固定中断的第二节点(框314)。以单播消息将固定中断发送到第二节点(框324)。不使用广播消息来服务于固定中断。因此,如果第二节点处于活动状态,则不唤醒任何所掉电节点来服务于固定中断。
如果没有节点断言固定中断(条件框310的“否”分支),则窥探所初始化固定中断ID的软件副本(框316)。如先前所描述,计算系统中的节点中的一个或多个窥探所分配固定中断ID的初始软件副本。在一个实施方案中,已知位置(诸如存储器地址范围),并且执行读取操作之后进行检查以确定是否发生任何改变。在另一个实施方案中,调用软件进程来检查初始值并报告结果。如果确定发生了任何更新(条件框318的“是”分支),则更新多个节点中固定中断ID的存储或使其无效(框320)。使无效或更新的决定是一种基于更新频率和用于存储固定中断ID副本的方式的设计选择。如先前所描述,存储固定中断ID的范围而非每个单独的固定中断ID。存储范围减少所使用的存储量。
如果确定没有发生更新(条件框318的“否”分支),则方法300的控制流程返回至框308,其中有多个节点处理任务。如果第一节点断言固定中断(条件框310的“是”分支)并且不再使用所存储固定中断ID(条件框312的“否”分支),则基于到系统中的其他节点的广播消息来标识服务于固定中断的第二节点(框322)。然后,以单播消息将固定中断发送到第二节点(框324)。
现在参考图4,示出了用于对多节点计算系统执行功率管理的方法400的另一个实施方案。类似于方法300,用于方法400的多节点计算系统利用非一致存储器访问(NUMA)架构,并且节点中的每一个都是NUMA节点。在多节点系统中对用于仲裁中断的中断优先级进行初始化(框402)。在一个实施方案中,最低值的中断优先级指定将哪个处理器内核或处理器内核内的哪个硬件线程分配来服务于仲裁中断。
将中断优先级广播到计算系统中的多个节点中的主节点(框404)。例如,操作系统将计算系统的中断优先级的指示发送到主节点。替代地,主节点窥探特定存储器位置以获得用于仲裁中断的中断优先级。在又一些实例中,主节点执行对操作系统的系统调用以确定计算系统的中断优先级。
多个节点处理任务(框406)。节点内的一个或多个客户端执行计算机程序或软件应用。在一些实施方案中,多个节点位于多孔插座服务器内并且由操作系统接收批作业,操作系统将任务分配给多个节点中的一个或多个。在各种实施方案中,运行后台进程,所述后台进程允许操作系统更新内核的中断优先级。如果更新了内核的中断优先级(条件框408的“是”分支),则将内核的所更新中断优先级发送到主节点(框410)。在一些实施方案中,主节点仅存储每个节点的最低中断优先级。如果没有更新最低中断优先级,则在一个实施方案中,没有更新被发送到主节点。
如果没有节点断言仲裁中断(条件框412的“否”分支),则方法400的控制流程返回至框406,其中有多个节点处理任务。如果第一节点断言仲裁中断(条件框412的“是”分支),则将请求发送到主节点以标识内核的具有最低优先级的节点(框414)。所述请求是单个单播消息而非多个广播消息。基于来自主节点的回复,标识服务于仲裁中断的第二节点(框416)。
当多个内核具有相同的中断优先级时,在一个实施方案中,主节点从多个节点中选择活动节点。如果存在多个活动节点,则主节点使用循环方案、从请求节点中选择具有最少跳数的节点的距离方案或其他选择方案。以单播消息将仲裁中断发送到第二节点(框418)。不使用广播消息来服务于仲裁中断。因此,如果主节点和第二节点中的每一者都处于活动状态,则不唤醒任何所掉电节点来服务于固定中断。
现在参考图5,示出了用于对多节点计算系统执行功率管理的方法500的另一个实施方案。类似于方法300和400,用于方法500的多节点计算系统利用非一致存储器访问(NUMA)架构,并且节点中的每一个都是NUMA节点。多个节点处理任务(框502)。当服务于存储器请求时,多个节点中的每一个维护探测过滤器(框504)。
如果给定节点确定其一个或多个客户端中的每一个是空闲的(条件框506的“是”分支),则给定节点使探测过滤器中的每个条目无效(框508)。在一些实施方案中,在使探测过滤器中的条目无效之前,给定节点还确定没有尝试访问其系统存储器的远程存储器请求。给定节点用由于无效条目和发送到远程节点的对应消息或探测而接收到的存储在远程节点中的脏高速缓存线来更新其系统存储器(框510)。然后,使给定节点掉电(框512)。在各种实施方案中,使给定节点掉电包括以下的一者或多者:禁用链路接口的驱动程序,禁用客户端的时钟和通信结构,以及将系统存储器设置为在使用DRAM时执行自刷新。
现在参考图6,示出了用于对多节点计算系统执行功率管理的方法600的另一个实施方案。类似于方法300-500,用于方法600的多节点计算系统利用非一致存储器访问(NUMA)架构,并且节点中的每一个都是NUMA节点。多个节点处理任务(框602)。如果第一节点针对高速缓存线产生广播探测(条件框604的“是”分支),则将广播探测发送到系统中的其他节点(框606)。计算系统中的第二节点接收广播探测(框608)。
如果第二节点没有确定任何相邻节点掉电(条件框610的“否”分支),则第二节点将针对第二节点产生的响应从第二节点发送到第一节点(框612)。第二节点还基于在选定节点拓扑中使用的节点的连通性来将广播探测中继到一个或多个其他相邻节点。
如果第二节点确定相邻的第三节点掉电(条件框610的“是”分支),则第二节点放弃将广播探测发送到第三节点(框614)。第二节点针对第三节点产生未命中响应(框616)。第二节点将未命中响应从第二节点发送到第一节点(框618)。因此,第二节点代表所掉电第三节点对寻求特定高速缓存线的广播探测伪装未命中响应。不唤醒第三节点以便对未命中响应做出响应。然后,方法600的控制流程移动至框612。
在各种实施方案中,使用软件应用的程序指令来实现先前所描述的方法和/或机制。程序指令以诸如C的高级编程语言来描述硬件的行为。替代地,可使用诸如Verilog的硬件设计语言(HDL)。程序指令存储在非暂时性计算机可读存储介质上。可使用多种类型的存储介质。存储介质可由计算系统在使用期间访问以向计算系统提供程序指令和伴随数据以用于程序执行。计算系统包括至少一个或多个存储器和被配置来执行程序指令的一个或多个处理器。
应该强调的是,上述实施方案仅是实现方式的非限制性实例。一旦完全理解上述公开内容,许多变化和修改对于本领域的技术人员将变得显而易见。意图将以下权利要求解释为包含所有此类变化和修改。
Claims (20)
1.一种计算系统,其包括:
多个节点,每个节点包括:
一个或多个客户端,所述一个或多个客户端被配置来处理应用;
多个链路,所述多个链路耦接到所述多个节点中的其他节点;以及
功率控制器;并且
其中响应于从所述多个节点中的第一节点接收广播探测,所述多个节点中的第二节点被配置来:
响应于确定所述多个节点中的直接连接到所述第二节点的第三节点掉电而针对所述第三节点产生未命中响应;并且
将所述未命中响应发送到所述第一节点。
2.如权利要求1所述的计算系统,其中响应于产生广播探测,所述多个节点中的所述第一节点被配置来:
响应于确定所述多个节点中的直接连接到所述第一节点的第四节点掉电而针对所述第四节点产生未命中响应。
3.如权利要求1所述的计算系统,其中所述第一节点被配置来:
在服务于存储器请求时维护探测过滤器;并且
响应于确定所述一个或多个客户端中的每个客户端是空闲的:
使所述探测过滤器中的每个条目无效;并且
用由于使所述探测过滤器中的条目无效而接收到的脏高速缓存线来更新连接到所述第一节点的系统存储器;并且
使所述第一节点的所述多个链路和所述一个或多个客户端掉电。
4.如权利要求1所述的计算系统,其中所述一个或多个客户端中的至少一个客户端包括多个内核,并且其中所述多个节点中的主节点被配置来存储用于仲裁中断的所述多个节点中的所述多个内核的中断优先级。
5.如权利要求4所述的计算系统,其中响应于检测到仲裁中断,所述第一节点被配置来:
将请求发送到所述主节点以标识具有最低优先级的给定内核和包括所述给定内核的给定节点;并且
基于来自所述主节点的标识所述给定内核和所述给定节点的响应,将请求发送到所述给定节点以用所述给定内核来处理所述仲裁中断。
6.如权利要求4所述的计算系统,其中响应于确定在所述第一节点中更新了用于仲裁中断的内核的优先级,所述第一节点被配置来将所更新优先级发送到所述主节点以用于更新存储在所述主节点上的用于仲裁中断的内核的优先级。
7.如权利要求1所述的计算系统,其中所述一个或多个客户端中的至少一个客户端包括多个内核,并且其中至少所述第一节点被配置来存储所述多个内核中的每个内核的固定中断标识符(ID)的指示。
8.如权利要求7所述的计算系统,其中响应于检测到固定中断,所述第一节点被配置来:
标识包括给定内核的给定节点,所述给定内核具有与所检测固定中断的固定中断ID相匹配的固定中断ID;并且
将请求发送到所述给定节点以用所述给定内核来处理所述固定中断。
9.一种方法,其包括:
由多个节点处理应用,每个节点包括:
一个或多个客户端,所述一个或多个客户端被配置来处理所述应用;
多个链路,所述多个链路耦接到多个节点中的其他节点;以及
功率控制器;以及
响应于从所述多个节点中的第一节点接收广播探测,所述多个节点中的第二节点被配置来:
由所述多个节点中的第二节点响应于确定所述多个节点中的直接连接到所述第二节点的第三节点掉电而针对所述第三节点产生未命中响应;并且
由所述第二节点将所述未命中响应发送到所述第一节点。
10.如权利要求9所述的方法,其中响应于产生广播探测:
由所述第一节点响应于确定所述多个节点中的直接连接到所述第一节点的第四节点掉电而针对所述第四节点产生未命中响应。
11.如权利要求9所述的方法,其还包括:
在服务于存储器请求时由所述第一节点维护探测过滤器;以及
响应于确定所述第一节点中的所述一个或多个客户端中的每个客户端是空闲的:
使所述探测过滤器中的每个条目无效;并且
用由于使所述探测过滤器中的条目无效而接收到的脏高速缓存线来更新连接到所述第一节点的系统存储器;并且
使所述第一节点的所述多个链路和所述一个或多个客户端掉电。
12.如权利要求9所述的方法,其中所述一个或多个客户端中的至少一个客户端包括多个内核,并且所述方法还包括:由所述多个节点中的主节点存储用于仲裁中断的所述多个节点中的所述多个内核的中断优先级。
13.如权利要求12所述的方法,其中响应于检测到仲裁中断,所述方法还包括:
由所述第一节点将请求发送到所述主节点以标识具有最低优先级的给定内核和包括所述给定内核的给定节点;以及
由所述第一节点基于来自所述主节点的标识所述给定内核和所述给定节点的响应,将请求发送到所述给定节点以用所述给定内核来处理所述仲裁中断。
14.如权利要求13所述的方法,其中响应于确定在所述第一节点中更新了用于仲裁中断的内核的优先级,所述方法还包括:由所述第一节点将所更新优先级发送到所述主节点以用于更新存储在所述主节点上的用于仲裁中断的内核的优先级。
15.如权利要求9所述的方法,其中所述一个或多个客户端中的至少一个客户端包括多个内核,并且所述方法还包括:由至少所述第一节点存储所述多个内核中的每个内核的固定中断标识符(ID)的指示。
16.如权利要求15所述的方法,其中响应于检测到固定中断,所述方法还包括:
由所述第一节点标识包括给定内核的给定节点,所述给定内核具有与所检测固定中断的固定中断ID相匹配的固定中断ID;并且
由所述第一节点将请求发送到所述给定节点以用所述给定内核来处理所述固定中断。
17.一种处理节点,其包括:
一个或多个客户端,所述一个或多个客户端被配置来处理应用;
多个链路,所述多个链路耦接到多个节点中的其他节点;以及
控制逻辑;并且
其中响应于从多个节点中的第一节点接收广播探测,所述控制逻辑被配置来:
响应于确定所述多个节点中的直接连接到所述处理节点的第二节点掉电而针对所述第二节点产生未命中响应;并且
将所述未命中响应发送到所述第一节点。
18.如权利要求17所述的处理节点,其中响应于产生广播探测,所述控制逻辑被配置来:
响应于确定所述多个节点中的直接连接到所述处理节点的第三节点掉电而针对所述第三节点产生未命中响应。
19.如权利要求17所述的处理节点,其中所述控制逻辑被配置来:
在服务于存储器请求时维护探测过滤器;并且
响应于确定所述一个或多个客户端中的每个客户端是空闲的:
使所述探测过滤器中的每个条目无效;并且
用由于使所述探测过滤器中的条目无效而接收到的脏高速缓存线来更新连接到所述处理节点的系统存储器;并且
使所述第一节点的所述多个链路和所述一个或多个客户端掉电。
20.如权利要求17所述的处理节点,其中所述一个或多个客户端中的至少一个客户端包括多个内核,并且其中所述处理节点是所述多个节点中的主节点,所述主节点被配置来存储用于仲裁中断的所述多个节点中的所述多个内核的中断优先级。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/850,261 | 2017-12-21 | ||
US15/850,261 US10671148B2 (en) | 2017-12-21 | 2017-12-21 | Multi-node system low power management |
PCT/US2018/051789 WO2019125562A1 (en) | 2017-12-21 | 2018-09-19 | Multi-node system low power management |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111684426A true CN111684426A (zh) | 2020-09-18 |
CN111684426B CN111684426B (zh) | 2024-11-05 |
Family
ID=
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112612726A (zh) * | 2020-12-08 | 2021-04-06 | 海光信息技术股份有限公司 | 基于缓存一致性的数据存储方法、装置、处理芯片及服务器 |
CN114490194A (zh) * | 2022-04-19 | 2022-05-13 | 海光信息技术股份有限公司 | 掉电处理方法、功能节点、处理系统、设备和存储介质 |
CN116964569A (zh) * | 2021-03-31 | 2023-10-27 | 超威半导体公司 | 相邻处理器的光桥互连单元 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6295573B1 (en) * | 1999-02-16 | 2001-09-25 | Advanced Micro Devices, Inc. | Point-to-point interrupt messaging within a multiprocessing computer system |
US20040015628A1 (en) * | 2002-07-19 | 2004-01-22 | Newisys, Inc. | Interrupt handling in systems having multiple multi-processor clusters |
US20100106876A1 (en) * | 2008-10-24 | 2010-04-29 | Fujitsu Microelectronics Limited | Multiprocessor system configured as system lsi |
US20100185820A1 (en) * | 2009-01-21 | 2010-07-22 | Advanced Micro Devices, Inc. | Processor power management and method |
US20110153924A1 (en) * | 2009-12-18 | 2011-06-23 | Vash James R | Core snoop handling during performance state and power state transitions in a distributed caching agent |
US20140095801A1 (en) * | 2012-09-28 | 2014-04-03 | Devadatta V. Bodas | System and method for retaining coherent cache contents during deep power-down operations |
US20140281275A1 (en) * | 2013-03-13 | 2014-09-18 | Applied Micro Circuits Corporation | Broadcast messaging and acknowledgment messaging for power management in a multiprocessor system |
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6295573B1 (en) * | 1999-02-16 | 2001-09-25 | Advanced Micro Devices, Inc. | Point-to-point interrupt messaging within a multiprocessing computer system |
US20040015628A1 (en) * | 2002-07-19 | 2004-01-22 | Newisys, Inc. | Interrupt handling in systems having multiple multi-processor clusters |
US20100106876A1 (en) * | 2008-10-24 | 2010-04-29 | Fujitsu Microelectronics Limited | Multiprocessor system configured as system lsi |
US20100185820A1 (en) * | 2009-01-21 | 2010-07-22 | Advanced Micro Devices, Inc. | Processor power management and method |
US20110153924A1 (en) * | 2009-12-18 | 2011-06-23 | Vash James R | Core snoop handling during performance state and power state transitions in a distributed caching agent |
US20140095801A1 (en) * | 2012-09-28 | 2014-04-03 | Devadatta V. Bodas | System and method for retaining coherent cache contents during deep power-down operations |
US20140281275A1 (en) * | 2013-03-13 | 2014-09-18 | Applied Micro Circuits Corporation | Broadcast messaging and acknowledgment messaging for power management in a multiprocessor system |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112612726A (zh) * | 2020-12-08 | 2021-04-06 | 海光信息技术股份有限公司 | 基于缓存一致性的数据存储方法、装置、处理芯片及服务器 |
CN116964569A (zh) * | 2021-03-31 | 2023-10-27 | 超威半导体公司 | 相邻处理器的光桥互连单元 |
CN114490194A (zh) * | 2022-04-19 | 2022-05-13 | 海光信息技术股份有限公司 | 掉电处理方法、功能节点、处理系统、设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
KR20200100152A (ko) | 2020-08-25 |
EP3729233A1 (en) | 2020-10-28 |
US20190196574A1 (en) | 2019-06-27 |
JP2021507412A (ja) | 2021-02-22 |
KR102355989B1 (ko) | 2022-02-08 |
US10671148B2 (en) | 2020-06-02 |
JP6984022B2 (ja) | 2021-12-17 |
WO2019125562A1 (en) | 2019-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102355989B1 (ko) | 다중 노드 시스템 저전력 관리 | |
US10409347B2 (en) | Domain-differentiated power state coordination system | |
US7590805B2 (en) | Monitor implementation in a multicore processor with inclusive LLC | |
CN107257960B (zh) | 管理计算机存储器的装置、方法、系统及存储介质 | |
US8782451B2 (en) | Power state synchronization in a multi-core processor | |
EP2469377A2 (en) | Decentralized power management distributed among multiple processor cores | |
US7761696B1 (en) | Quiescing and de-quiescing point-to-point links | |
US20220091657A1 (en) | Mechanism for performing distributed power management of a multi-gpu system | |
JP2006506736A (ja) | システム管理信号を分配する方法および装置 | |
US9207753B2 (en) | Multiple-queue multiple-resource entry sleep and wakeup for power savings and bandwidth conservation in a retry based pipeline | |
CN111684391B (zh) | 全系统低功率管理 | |
CN115443453A (zh) | 用于减少传输延迟的链路关联 | |
KR101672357B1 (ko) | 응답 타이밍 최적화에 기초하는 멀티프로세서 시스템에서의 주파수 조정 수행 | |
US9285865B2 (en) | Dynamic link scaling based on bandwidth utilization | |
CN111684426B (zh) | 多节点系统低功率管理 | |
KR102719995B1 (ko) | 시스템-전반 저전력 관리 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |