CN103176943B - 用于功率优化的多处理器同步的方法 - Google Patents
用于功率优化的多处理器同步的方法 Download PDFInfo
- Publication number
- CN103176943B CN103176943B CN201210321919.1A CN201210321919A CN103176943B CN 103176943 B CN103176943 B CN 103176943B CN 201210321919 A CN201210321919 A CN 201210321919A CN 103176943 B CN103176943 B CN 103176943B
- Authority
- CN
- China
- Prior art keywords
- processor
- lock
- spin lock
- spin
- mark
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- 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/3206—Monitoring of events, devices or parameters that trigger a change in power modality
-
- 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/3206—Monitoring of events, devices or parameters that trigger a change in power modality
- G06F1/3215—Monitoring of peripheral devices
- G06F1/3225—Monitoring of peripheral devices of memory devices
-
- 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/3206—Monitoring of events, devices or parameters that trigger a change in power modality
- G06F1/3228—Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4405—Initialisation of multiprocessor systems
Abstract
本发明涉及用于功率优化的多处理器同步的方法。本发明的一个实施例阐述用于在两个或更多个处理器之间同步的技术。该技术实现自旋锁获得功能和自旋锁释放功能。执行自旋锁获得功能的处理器有利地操作在低功率状态,同时等待机会以获得自旋锁。自旋锁获得功能配置存储器监控器为当由不同的处理器释放自旋锁时唤醒处理器。自旋锁释放功能通过清除锁变量来释放自旋锁,并且可以清除等待变量。
Description
技术领域
本发明总体上涉及多处理器计算系统,并且更具体地,涉及用于功率优化的多处理器同步的方法。
背景技术
多处理器系统常规上包括在一个或多个集成电路上实现的两个或更多个处理器。两个或更多个处理器典型地配置为独立地执行编程指令。某些应用要求在执行中的具体点处两个或更多个处理器同步操作,例如来共享系统资源。
用于在两个或更多个处理器之间同步操作的一种技术涉及公知为自旋锁(spinlock)的编程构造。自旋锁是这样的闭锁机制:使得一个处理器每次能够拥有锁,并且具有对与该锁相对应的系统资源的独占访问。和其他类型的锁定机制相比,自旋锁机制有利地提供显著较低的延迟。然而,自旋锁机制在功耗方面可能是非常低效的。
自旋锁实现获得功能、释放功能和配置为存储锁状态的锁变量。获得功能对驻留在两个或更多个处理器可访问的共享存储器空间中的锁变量进行监控。获得功能对锁变量的所有权进行检查,并且可以重复地重新检查所有权,直到锁变量处于未锁定的状态。如果锁变量状态是锁定的,那么该锁由不同的处理器所拥有,并且获得功能必须在循环中等待(自旋),直到该不同的处理器通过设置锁变量为未锁定的状态来释放该锁。
在获得功能的常规执行期间,操作系统提高处理器的处理优先权到这样的级别:只有来自于I/O设备的外部硬件中断能够中断等待时钟成为可用的进程。在这些操作期间由于操作系统禁用线程调度,定时器中断也典型地禁用。获得功能要求相关联的处理器持续地且具有高的优先权地执行。由于获得功能使得处理器在循环中重复地执行相同的代码,使得两个或更多个处理器的高速缓存同步,因此获得功能可能是非常低效的。在多套接字处理器系统中,自旋锁获得功能将使得外部信号在处理器间总线上被确 立(assert),以确立存储器锁定信号。这些操作的每一者均是功率低效的并且造成过度的功耗。此外,处理器执行获得功能还要求针对两个或更多个处理器的每个其他处理器维持高速缓存同步,该每个其他处理器正以获得功能消耗附加的高速缓存行空间的方式测试变量并且要求在相关的高速缓存行上的处理器内或处理器间同步。在一个处理器上执行的获得功能不仅增加用于该处理器的功耗,而且增加用于一个或多个附加的处理器的功耗,还导致更多的净功耗。与自旋锁获得功能相关联的显著的处理负担可能导致多处理器系统中差的总功率效率。
如上所说明,本领域所需要的是用于实现多处理器同步的更功率高效的技术。
发明内容
本发明的一个实施例阐述用于管理自旋锁来指示对系统资源的独占访问的技术,包括配置与第一处理器相关联的监控器电路来监控与自旋锁状态数据相关联的存储器地址,测试与自旋锁状态数据相关联的锁标志并确定自旋锁处于锁定的状态,在低功率状态下等待,直到存储器地址由第二处理器访问,测试与自旋锁状态数据相关联的锁标志并确定自旋锁不再处于锁定的状态,以及指示系统资源可以由第一处理器独占访问。
本发明的其他实施例包括但不限于计算机可读存储介质,该存储介质包括当由处理单元时使得处理单元实行本文所描述的技术的指令,以及计算设备,该计算设备包括配置为实行本文所描述的技术的处理单元。
所公开技术的一个优点在于,两个或更多个处理器内核可以使用低延迟自旋锁构造来有效地对操作进行同步,同时有效地利用功率和系统资源。
附图说明
因此,可以详细地理解上述本发明的特征,并且可以参考实施例得到对如上面所简要概括的本发明更具体的描述,其中一些实施例在附图中示出。然而,应当注意的是,附图仅用于示意性地表示本发明的典型实施例,由于本发明可以具有其他等效的实施例,因此附图不应被认为是对本发明范围的限制。
图1是示意出配置为实现本发明一个或多个方面的计算机系统的框 图;
图2是根据本发明的一个实施例的、配置为包括两个处理内核的中央处理单元的更详细视图;
图3是根据本发明一个实施例的、用于实行自旋锁获得功能的方法步骤的流程图;以及
图4是根据本发明一个实施例的、用于实行自旋锁释放功能的方法步骤的流程图。
具体实施方式
在下面的说明中,将阐述大量的细节以提供对本发明更为彻底的理解。然而,对于本领域技术人员来说显而易见地是,缺少这些具体细节的一个或多个也可以实践本发明。在其他实例中,没有描述公知的特征,以免对本发明造成混淆。
系统概述
图1是示意出配置为实现本发明一个或多个方面的计算机系统100的框图。计算机系统100包括中央处理器(CPU)102以及经由互连路径进行通信的系统存储器104,该互连路径可包括存储器桥105。存储器桥105例如可以是北桥芯片,其经由总线或者其它的通信路径106(例如超传输链路)与I/O(输入/输出)桥107相连。I/O桥107例如可以是南桥芯片,其从一个或多个用户输入设备108(例如,键盘,鼠标)接收用户输入,并且将该输入经由路径106和存储器桥105转发给CPU 102。并行处理子系统112经由总线或者其它的通信路径113(例如,PCI Express,加速图形端口,或者超传输链路)耦合至存储器桥105;在一个实施例中,并行处理子系统112为图形子系统,其向显示设备110(例如,常规的基于CRT或者LCD的监视器)递送像素。系统磁盘114也连接到I/O桥107。开关116提供了I/O桥107与诸如网络适配器118和不同的插卡(add-in card)120和121的其他组件之间的连接。其它组件(未明确的示出),包括USB或者其它端口连接、CD驱动器、DVD驱动器、胶片录制设备等等,其也可以连接到I/O桥107。图1中将各组件互连的通信路径可以使用任何适宜的协议来实现,诸如PCI(外围组件互连)、PCI-Express、AGP(加速图形端口)、超传输或者任何其它总线或者点对点通信协议,并且不同设备之 间的连接可使用现有技术中已知的不同的协议。
可以理解到在这里所示的系统是示意性的,并且可对其进行变化和修改。可根据需要修改连接拓扑结构,包括桥的数目和布置、CPU 102的数目以及并行处理子系统112的数目。例如,在一些实施例中,系统存储器104直接地连接到CPU 102,而不是通过桥,并且其它的设备经由存储器桥105以及CPU 102与系统存储器104进行通信。在其它可替代的拓扑结构中,并行处理子系统112连接到I/O桥107,或者直接连接到CPU 102,而不是连接到存储器桥105。在其它的实施例中,可将I/O桥107以及存储器桥105集成到单个芯片中。大量的实施例可以包括两个或更多个CPU102以及两个或更多个并行处理系统112。在这里所示的具体的组件是可选择的;例如,可支持任何数目的插卡或者外围设备。在一些实施例中,除去了开关116,并且网络适配器118和插卡120、121直接连接到I/O桥107。
在一些实施例中,并行处理子系统112包括组织为形成渲染管线的处理部件,该渲染管线可配置为执行与下述内容相关的各种任务:从图形数据生成像素数据以存储并更新像素数据至显示设备110,所述图形数据是由CPU 102和/或系统存储器104经由存储器桥105以及通信路径113所供应的。在一些实施例中,处理部件配置为实行通用目的计算。处理部件可以是相同的或者是不同的,并且每个处理部件可具有其自己专用的并行处理存储器设备或者非专用的并行处理存储器设备。并行处理子系统112与计算机系统100其余部分的连接可以改变。在一些实施例中,可将并行处理子系统112实现为插卡,该插卡可以被插入到计算机系统100的扩展槽中。在其它的实施例中,可以将并行处理子系统112与诸如存储器桥105或I/O桥107的总线桥集成到单个芯片上。但在其它的实施例中,可将并行处理子系统112的一些或者所有的部件与CPU 102集成到单个芯片上。
在一个实施例中,CPU 102包括两个或更多个处理器内核130。处理器内核130配置为独立地执行指令,该指令可以存储在系统存储器104中、高速缓存在CUP 102中或存储在任意技术上可行的位置中。在正常执行的过程期间,可要求处理器内核130对操作进行同步,例如对计算机系统100中的共同系统资源的控制进行共享。包括共享存储器位置中的一个或多个数据值的锁被用于在处理器内核130之间对操作进行同步。系统存储器104中的共享存储器103的段可用于实现锁。每个处理器内核130可以尝试通 过针对共享存储器103的锁获得操作来获得锁,和通过针对共享存储器103的锁释放操作来释放所获得的锁。存储在锁中的值可以用于指示哪个处理器内核130拥有锁。锁的拥有者可被指明为具有对对应共享资源的独占访问。本领域所知的一种锁定技术为自旋锁。处理器内核130可以实现自旋锁为循环,该循环在处理器内核130上以高优先权执行,直到获得指定的锁。两个或更多个处理器内核130中的每一个可通过独立地执行自旋锁来尝试获得相同的锁,如下更详细的描述。
图2是根据本发明一个实施例的、配置为包括两个处理器内核130的图1的中央处理单元102的更详细的视图。每个处理器内核130耦合至存储器接口224,其提供对驻留在系统存储器104中的数据的访问。存储器接口224可直接或经由存储器桥105耦合至系统存储器104。
每个处理器内核130配置为执行“MONITOR(监控)”指令,其包括地址操作数。如果对于指定地址操作数针对系统存储器104实行访问,MONITOR指令配置相关联的访问监控器222以响应。在处理器内核130执行MONITOR指令以配置访问监控器之后,处理器内核130可以执行“MWAIT”(存储器等待)指令,其使得存储器内核130暂停,直到实行对系统存储器104在指定地址处的访问。在一个实施例中,在给定处理器内核130执行MWAIT指令之后,该处理器内核130进入低功率模式,直到在系统存储器104中访问指定地址。本领域技术人员将认识到MONITOR和MWAIT指令是在IntelTMx86指令集构架中可获得的。在一个实施例中,访问监控器222驻留在CPU 102内。在可替代实施例中,一个或多个访问监控器222驻留在存储器桥105中。每个访问监控器222均配置为对访问指定地址进行检测并唤醒相关联的处理器内核130。
在一个实施例中,共享存储器103包括锁变量210和等待变量212。锁变量210指示锁定的或未锁定的状态。锁定的状态可以进一步指示哪个处理器内核130目前拥有锁。等待变量212指示是否另一个处理器内核130目前正等待锁。在一个实施例中,锁变量210包括用于处理器内核130的原子数据大小。例如,如果处理器内核130处理32位字,那么锁变量包括一个32位字。类似,等待变量212可包括用于处理器内核130的原子数据大小。在一个实施例中,锁变量210包括锁标志,其配置为指示对应的自旋锁状态是为锁定的(由不同处理器获得)还是空闲的。此外,等待变量 212包括等待标志,其配置为指示处理器是否正等待获得对应的自旋锁。锁定的自旋锁状态可以指示对对应系统资源的独占访问,而未锁定的自旋锁状态可以指示系统资源对于被获得以用于独占访问是可用的。
一个或多个访问监控器222可以配置为监控指定地址,该地址引用共享存储器103。在一个实施例中,监控在共享存储器103中的等待变量212以唤醒处理器内核130,该处理器内核130正等待在处理器内核130通过清除锁变量210来释放自旋锁之后获得自旋锁。通过监控等待变量212而非锁变量210,来使得仅在自旋锁状态中存在改变时,而不是每次处理器读锁变量210时,处理器内核130醒来。在可替代实施例中,一个或多个访问监控器222配置为监控锁变量210,并且不需要等待变量212。在该实施例中,然而当处理器内核130共同地尝试经由锁变量210获得自旋锁时,因为对锁变量210的读不改变自旋锁状态而是触发处理器内核130醒来,因此处理器内核130比必须的醒来得更频繁。在不同的可替代实施例中,访问监控器222配置为区分对指定地址的读访问和写访问。在这样的实施例中,针对写而不针对读来监控锁变量210,并且等待变量212不是必要的。这样,仅当存在对锁变量210的写访问时处理器内核130才醒来,指示在自旋锁状态中的改变。
本领域技术人员将理解,图1和2中所描述的架构决不限制本发明的范围,并且本文的技术教导可在任意合适地配置的处理单元上实现,包括但不限于,一个或多个CPU、CPU中一个或多个内核、并行处理子系统112中的一个或多个处理部件等等,不脱离本发明的范围。另外,本文所描述的自旋锁机制可配置为在与一个或多个CPU相关联的处理内核中、以及在与一个或多个并行处理子系统相关联的处理部件中操作。
图3是根据本发明一个实施例的、用于实行自旋锁获得功能的方法步骤的流程图。虽然结合图1~2的系统来描述方法步骤,本领域技术人员将理解,配置为以任意的顺序实行该方法步骤的任意系统均在本发明的范围内。该方法可由处理器内核130或任意技术上可行的处理器内核或处理部件来实行。
在步骤310,方法开始,在该步骤中执行自旋锁获得功能的处理器内核提高用于处理器内核的优先权级别。在一个实施例中,优先权级别提高至用于处理器内核的最高可用优先权级别。在步骤312,处理器内核执行 交换锁标志操作。可使用诸如原子比较和交换操作的任意技术上可行的技术来实现交换锁标志操作。例如,交换锁标志操作可以实现为原子地比较和交换配置为存储锁标志的锁变量210的值。在这样的实施方式中,将锁变量210的内容与用于“未锁定的”的状态的预定义的值(例如,为0的值)相比较,并且如果锁变量210的内容与“未锁定的”的状态相等,那么交换新的值到锁变量210中。在一个实施例中,存储在锁变量210中的新的、“锁定的”值指示哪个处理器现在拥有对应于锁变量210的锁。
在步骤314,测试锁变量210来了解交换锁标志操作是否成功。如果在步骤320,由不同的处理器内核锁定锁变量210,那么方法进行到步骤322。在步骤322,处理器内核配置诸如访问监控器222的存储器监控器电路,来监控与自旋锁状态相关联的地址。例如,访问监控器222可以配置为监控与等待变量212相关联的地址。可替代地,监控器可配置为监控锁变量210。在步骤324,处理器内核测试锁标志。在一个实施例中,处理器内核还执行交换等待标志操作,来确定不同的处理器是否正等待获得锁。
如果在步骤330,由不同的处理器内核锁定锁变量210,那么方法进行到步骤332,在该步骤中处理器内核执行存储器等待(MWAIT)指令。在步骤334,处理器内核进入由存储器等待指令的执行造成的低功率状态。在一个实施例中,低功率状态包括关闭用于处理器内核的至少一个时钟信号。响应于对应的访问监控器检测到访问所配置的地址,处理器内核退出低功率状态。在步骤336,处理器内核执行交换锁标志操作来尝试获得锁。然后方法返回到步骤324。
返回到步骤330,如果锁变量210没有由不同的处理器内核锁定,那么自旋锁获得功能已经成功,并且方法进行到步骤390,锁已获得。将锁的成功获得传达至相关的功能,指示对应的系统资源可以由处理器内核独占访问。在步骤390,方法终止。
返回到步骤320,如果锁变量210没有由不同的处理器内核锁定,那么方法进行到步骤390。
图4是根据本发明的一个实施例的,用于执行自旋锁释放功能的方法步骤的流程图。虽然结合图1~2的系统来描述方法步骤,本领域技术人员将理解,配置为以任意的顺序实行该方法步骤的任意系统均在本发明的范围内。该方法可由处理器内核130或任意技术上可行的处理器内核或处理 部件来实行。
在步骤410,方法开始,在该步骤中处理器内核例如通过写0至锁变量210来清除锁标志。此时,锁被释放并且可用于由不同的处理器内核获得。在步骤412,处理器内核测试诸如等待变量212的等待标志,来确定不同的处理器正等待以获得锁。如果在步骤420等待标志被置位,那么方法进行到步骤422。等待标志被置位指示不同的处理器目前正等待获得锁。在一个实施例中,在步骤422处理器内核清除等待标志。在步骤424,处理器内核降低用于处理器内核的执行优先权级别。在步骤490,方法终止。
返回步骤420,如果没有置位等待标志,那么方法进行到步骤424。
在一个实施例中,单个锁标志和单个等待标志指示自旋锁状态。在一个实施例中,锁标志可以指示两个状态中的一个,包括未锁定的状态和锁定的状态。在可替代实施方式中,锁标志可以指示未锁定的状态和多个锁定的状态中的一个,其每一个对应于拥有锁的具体处理器内核。
在可替代的实施例中,等待队列实现等待获得自旋锁的处理器内核的有序列表。在这样的实施例中,图3的步骤324包括增加处理器识别(PID)号码至等待队列,以及步骤422包括从等待队列中移除PID。任意技术上可行的技术均可用于实现和表示等待队列。
总的来说,公开了用于在两个或更多个处理器之间同步操作的技术。同步操作包括自旋锁获得功能和自旋锁释放功能。自旋锁获得功能采用通常在行业标准x86指令集中可获得的指令对。自旋锁获得功能执行MONITOR和MWAIT指令来进入低功率处理器状态,同时等待获得自旋锁。硬件监控器电路监控自旋锁状态并且当状态改变时唤醒处理器,指示应该尝试获得自旋锁。锁变量和等待变量可用于指示锁状态,以及一个或多个处理器内核是否正等待获得目前由给定处理器内核拥有的自旋锁。自旋锁释放功能清除锁变量,以及如果等待变量被置位则清除等待变量。
本公开技术的一个优点在于,处理器内核可以使用低延迟自旋锁构造来有效地对操作进行同步,同时有效地利用功率和系统资源。
本发明的一个实施例可被实现为与计算机系统一起使用的程序产品。该程序产品的程序限定实施例的功能(包括本文中描述的方法)并且可以被包含在各种计算机可读存储介质上。示意的计算机可读存储介质包括但不限于:(i)不可写入的存储介质(例如,计算机内的只读存储器装置, 诸如可由CD-ROM驱动器读取的CD-ROM盘、闪存、ROM芯片或任何类型的固态非易失性半导体存储器),在其上永久性存储信息;和(ii)可写入的存储介质(例如,磁盘驱动器内的软盘或硬盘驱动器或者任何类型的固态随机存取半导体存储器),在其上存储可更改的信息。
以上已参照具体实施例对本发明进行了描述。然而,本领域技术人员将理解的是,可对此做出各种修改和变化,而不脱离如随附权利要求书中所阐释的本发明的较宽精神和范围。因此,前面的描述以及附图应被视为是例示性而非限制意义的。
Claims (9)
1.一种用于管理自旋锁来指示对系统资源的独占访问的方法,所述方法包括:
确定第一处理器将获得自旋锁,将与所述第一处理器相关联的执行优先权级别从最初的优先权级别提高到高的优先权级别;
配置与第一处理器相关联的监控器电路来监控与自旋锁状态数据相关联的存储器地址;
测试与所述自旋锁状态数据相关联的锁标志,并且确定所述自旋锁处于锁定的状态;
在低功率状态下等待,直到所述存储器地址由第二处理器访问;
测试与所述自旋锁状态数据相关联的所述锁标志,并且确定所述自旋锁不再处于所述锁定的状态;以及
指示所述系统资源可以由所述第一处理器独占访问;
清除所述锁标志来指示所述自旋锁已经从所述第一处理器释放;以及
确定所述自旋锁已经从所述第一处理器释放,将所述第一处理器的优先权级别设置回所述最初的优先权级别。
2.根据权利要求1所述的方法,其中所述自旋锁状态数据驻留在由所述第一处理器和所述第二处理器能够访问的共享存储器中,并且其中所述存储器地址限定所述共享存储器中用于所述自旋锁状态数据的至少部分的位置。
3.根据权利要求1所述的方法,其中在所述低功率状态下等待包括执行存储器等待操作,所述存储器等待操作使得所述第一处理器进入所述低功率状态,并且随后当所述存储器地址由所述第二处理器访问时退出所述低功率状态。
4.根据权利要求3所述的方法,其中只有在所述第二处理器对所述存储器地址实行写访问操作时,所述第一处理器才退出所述低功率状态。
5.根据权利要求3所述的方法,其中所述自旋锁状态数据包括有序队列,其配置为指示是否任意处理器正等待获得所述自旋锁。
6.根据权利要求3所述的方法,其中所述自旋锁状态数据包括所述锁标志和等待标志,所述锁标志指示所述自旋锁是否处于所述锁定的状态,以及所述等待标志指示所述第二处理器是否正等待获得所述自旋锁。
7.根据权利要求6所述的方法,其中所述存储器地址限定所述等待标志在共享存储器中的位置,并且响应于检测到所述第二处理器发出的访问所述存储器地址的请求,所述第一处理器退出所述低功率状态。
8.根据权利要求7所述的方法,进一步包括:
对所述自旋锁状态数据执行原子比较和交换操作来尝试获得所述自旋锁的所有权;
测试所述等待标志,并且确定所述第二处理器正等待获得所述自旋锁;以及
清除所述等待标志来指示没有处理器当前正等待获得所述自旋锁。
9.一种计算装置,包括:
存储器系统;
耦合至所述存储器系统的第一监控器电路;以及
耦合至所述存储器系统和所述第一监控器电路的第一处理器,并且所述第一处理器配置为:
确定第一处理器将获得自旋锁,将与所述第一处理器相关联的执行优先权级别从最初的优先权级别提高到高的优先权级别;
配置与第一处理器相关联的监控器电路来监控与自旋锁状态数据相关联的存储器地址;
测试与所述自旋锁状态数据相关联的锁标志,并且确定所述自旋锁处于锁定的状态;
在低功率状态下等待,直到所述存储器地址由第二处理器访问;
测试与所述自旋锁状态数据相关联的所述锁标志,并且确定所述自旋锁不再处于所述锁定的状态;
指示所述系统资源可以由所述第一处理器独占访问;
清除所述锁标志来指示所述自旋锁已经从所述第一处理器释放;以及
确定所述自旋锁已经从所述第一处理器释放,将所述第一处理器的优先权级别设置回所述最初的优先权级别。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/225249 | 2011-09-02 | ||
US13/225,249 US8713262B2 (en) | 2011-09-02 | 2011-09-02 | Managing a spinlock indicative of exclusive access to a system resource |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103176943A CN103176943A (zh) | 2013-06-26 |
CN103176943B true CN103176943B (zh) | 2016-08-31 |
Family
ID=47074999
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210321919.1A Active CN103176943B (zh) | 2011-09-02 | 2012-09-03 | 用于功率优化的多处理器同步的方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8713262B2 (zh) |
CN (1) | CN103176943B (zh) |
DE (1) | DE102012215439A1 (zh) |
GB (1) | GB2495183B (zh) |
TW (1) | TWI509422B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103605921A (zh) * | 2013-10-28 | 2014-02-26 | 清华大学 | 内核扩展安全访问方法及装置 |
US9632569B2 (en) | 2014-08-05 | 2017-04-25 | Qualcomm Incorporated | Directed event signaling for multiprocessor systems |
US10185564B2 (en) * | 2016-04-28 | 2019-01-22 | Oracle International Corporation | Method for managing software threads dependent on condition variables |
US11061730B2 (en) * | 2016-11-18 | 2021-07-13 | Red Hat Israel, Ltd. | Efficient scheduling for hyper-threaded CPUs using memory monitoring |
US20180314289A1 (en) * | 2017-04-28 | 2018-11-01 | Intel Corporation | Modifying an operating frequency in a processor |
US20190073243A1 (en) * | 2017-09-07 | 2019-03-07 | Alibaba Group Holding Limited | User-space spinlock efficiency using c-state and turbo boost |
US10691487B2 (en) | 2018-04-25 | 2020-06-23 | International Business Machines Corporation | Abstraction of spin-locks to support high performance computing |
US20220342721A1 (en) * | 2021-04-22 | 2022-10-27 | EMC IP Holding Company, LLC | System and Method for Efficient Snapshots Barrier Mechanism for System With Presorted Container-Based Log |
CN114546905A (zh) * | 2022-01-20 | 2022-05-27 | 广州广电五舟科技股份有限公司 | 一种多路cpu的通道同步控制方法及装置 |
US20230237010A1 (en) * | 2022-01-21 | 2023-07-27 | Vmware, Inc. | Power efficient memory value updates for arm architectures |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1598786A (zh) * | 2003-09-18 | 2005-03-23 | 国际商业机器公司 | 跨越存储器边界的选择性存储器合并的方法与系统 |
US7788668B2 (en) * | 2005-06-09 | 2010-08-31 | Lockheed Martin Corporation | System and method for implementing distributed priority inheritance |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3648252A (en) * | 1969-11-03 | 1972-03-07 | Honeywell Inc | Multiprogrammable, multiprocessor computer system |
US6792497B1 (en) | 2000-12-12 | 2004-09-14 | Unisys Corporation | System and method for hardware assisted spinlock |
WO2002069174A1 (fr) * | 2001-02-28 | 2002-09-06 | Fujitsu Limited | Procede d'execution en parallele de processus et ordinateur a processeurs multiples |
US7912930B1 (en) * | 2002-02-21 | 2011-03-22 | Oracle International Corporation | System and method for resource provisioning |
GB2441903B (en) | 2003-06-27 | 2008-04-30 | Intel Corp | Queued locks using monitor-memory wait |
US7213093B2 (en) | 2003-06-27 | 2007-05-01 | Intel Corporation | Queued locks using monitor-memory wait |
US7383368B2 (en) * | 2003-09-25 | 2008-06-03 | Dell Products L.P. | Method and system for autonomically adaptive mutexes by considering acquisition cost value |
US8151269B1 (en) * | 2003-12-08 | 2012-04-03 | Teradata Us, Inc. | Database system having a service level goal responsive regulator |
JP4376692B2 (ja) | 2004-04-30 | 2009-12-02 | 富士通株式会社 | 情報処理装置、プロセッサ、プロセッサの制御方法、情報処理装置の制御方法、キャッシュメモリ |
US7257679B2 (en) | 2004-10-01 | 2007-08-14 | Advanced Micro Devices, Inc. | Sharing monitored cache lines across multiple cores |
US7721291B2 (en) * | 2004-10-15 | 2010-05-18 | International Business Machines Corporation | Apparatus, system, and method for automatically minimizing real-time task latency and maximizing non-real time task throughput |
JP2007109057A (ja) * | 2005-10-14 | 2007-04-26 | Hitachi Ltd | プロセッサ |
JP2007287085A (ja) * | 2006-04-20 | 2007-11-01 | Fuji Xerox Co Ltd | 画像処理装置及びプログラム |
US7882379B2 (en) | 2006-09-22 | 2011-02-01 | Sony Computer Entertainment Inc. | Power consumption reduction in a multiprocessor system |
WO2008078564A1 (ja) * | 2006-12-22 | 2008-07-03 | Panasonic Corporation | 情報処理装置、集積回路、方法、およびプログラム |
US7856536B2 (en) * | 2007-10-05 | 2010-12-21 | International Business Machines Corporation | Providing a process exclusive access to a page including a memory address to which a lock is granted to the process |
TW201009713A (en) * | 2008-08-21 | 2010-03-01 | Ind Tech Res Inst | Multitasking processor and task switch method thereof |
US8392925B2 (en) | 2009-03-26 | 2013-03-05 | Apple Inc. | Synchronization mechanisms based on counters |
CN102103523A (zh) | 2009-12-22 | 2011-06-22 | 国际商业机器公司 | 锁分配控制的方法和装置 |
US9547596B2 (en) * | 2009-12-24 | 2017-01-17 | Arm Limited | Handling of a wait for event operation within a data processing apparatus |
JP2011150422A (ja) * | 2010-01-19 | 2011-08-04 | Renesas Electronics Corp | データ処理装置 |
-
2011
- 2011-09-02 US US13/225,249 patent/US8713262B2/en active Active
-
2012
- 2012-08-30 GB GB1215472.0A patent/GB2495183B/en active Active
- 2012-08-30 DE DE102012215439A patent/DE102012215439A1/de active Pending
- 2012-08-31 TW TW101131837A patent/TWI509422B/zh active
- 2012-09-03 CN CN201210321919.1A patent/CN103176943B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1598786A (zh) * | 2003-09-18 | 2005-03-23 | 国际商业机器公司 | 跨越存储器边界的选择性存储器合并的方法与系统 |
US7788668B2 (en) * | 2005-06-09 | 2010-08-31 | Lockheed Martin Corporation | System and method for implementing distributed priority inheritance |
Also Published As
Publication number | Publication date |
---|---|
DE102012215439A1 (de) | 2013-03-07 |
GB2495183B (en) | 2013-09-11 |
CN103176943A (zh) | 2013-06-26 |
GB201215472D0 (en) | 2012-10-17 |
GB2495183A (en) | 2013-04-03 |
TW201324184A (zh) | 2013-06-16 |
US20130061005A1 (en) | 2013-03-07 |
US8713262B2 (en) | 2014-04-29 |
TWI509422B (zh) | 2015-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103176943B (zh) | 用于功率优化的多处理器同步的方法 | |
US10228861B2 (en) | Common platform for one-level memory architecture and two-level memory architecture | |
US8566836B2 (en) | Multi-core system on chip | |
CN108776619B (zh) | 微处理器、管理微处理器的电力消耗的方法及存储介质 | |
CN104049715B (zh) | 平台不可知的功率管理 | |
TWI469045B (zh) | 透過多域處理器之非核心域來控制核心域的運作頻率之技術 | |
TWI525539B (zh) | 用於同步化simd向量的方法,處理器,及系統 | |
US8782456B2 (en) | Dynamic and idle power reduction sequence using recombinant clock and power gating | |
US9880935B2 (en) | Efficient data transfer between a processor core and an accelerator | |
US20080256374A1 (en) | Sharing Non-Sharable Devices Between an Embedded Controller and A Processor in a Computer System | |
TWI483265B (zh) | 硬體動態快取電源管理 | |
EP3588297A1 (en) | System, apparatus and method for barrier synchronization in a multi-threaded processor | |
BR112019009566A2 (pt) | aparelhos e métodos para uma arquitetura de processador | |
CN107924219A (zh) | 遮蔽处理器的核的功率状态 | |
US9870301B2 (en) | High-speed debug port using standard platform connectivity | |
CN104272277A (zh) | 用于快速缓存断电的设备和方法 | |
US10620966B2 (en) | Method to coordinate system boot and reset flows and improve reliability, availability and serviceability (RAS) among multiple chipsets | |
US8605099B2 (en) | Partition-free multi-socket memory system architecture | |
US9360924B2 (en) | Reduced power mode of a cache unit | |
CN108984464B (zh) | 微处理器及在微处理器的处理核间同步的方法 | |
US20140059371A1 (en) | Power management of multiple compute units sharing a cache | |
Nagaraj et al. | Westmere-Ex: A 20 thread server CPU | |
CN109240481B (zh) | 多核微处理器及使用其省电的方法 | |
CN109165189B (zh) | 微处理器及其配置方法、以及计算机可读存储介质 | |
CN110046126B (zh) | 多核微处理器及其重新配置方法、计算机可读存储介质 |
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 |