CN104731572A - 履行硬件线程的硬件权利的方法和系统 - Google Patents
履行硬件线程的硬件权利的方法和系统 Download PDFInfo
- Publication number
- CN104731572A CN104731572A CN201410680600.7A CN201410680600A CN104731572A CN 104731572 A CN104731572 A CN 104731572A CN 201410680600 A CN201410680600 A CN 201410680600A CN 104731572 A CN104731572 A CN 104731572A
- Authority
- CN
- China
- Prior art keywords
- processor
- lpar
- logical partition
- hardware thread
- computer 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
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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30101—Special purpose registers
-
- 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/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- 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/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
- Hardware Redundancy (AREA)
- Debugging And Monitoring (AREA)
Abstract
一种用于调度计算机指令的执行的方法接收用于计算机系统上逻辑分区的权利处理器资源百分比。所述逻辑分区与所述计算机系统的处理器的硬件线程关联。所述用于逻辑分区的权利处理器资源百分比被存储在与所述逻辑分区关联的硬件线程的寄存器中。指令被从所述计算机系统的逻辑分区接收,并且所述处理器基于存储在与所述逻辑分区关联的硬件线程的寄存器中的权利处理器资源百分比调度所述指令。
Description
技术领域
本发明一般地涉及计算机虚拟化领域。更具体地说,本发明涉及硬件线程权利(entitlement)。
背景技术
系统虚拟化通过单个物理系统创建多个虚拟系统。该物理系统可以是独立的计算机,或者可以是利用计算机和组件集群的计算系统。虚拟系统是独立的操作环境,其使用由处理器、存储器和输入/输出(I/O)适配器之类的物理资源的逻辑分类构成的虚拟资源。系统虚拟化一般通过系统管理程序(hypervisor)技术实现。系统管理程序也称为虚拟机管理器,它使用薄层软件或固件代码实现细粒度动态资源共享。
系统管理程序提供将物理系统资源分为隔离的逻辑分区(也称为LPAR)的能力。每个LPAR像独立的系统那样操作,运行自己的操作环境(即,虚拟系统)。系统管理程序可将专用的处理器、I/O适配器和存储器分配给每个LPAR。系统管理程序也可将共享的处理器分配给每个LPAR。更具体地说,系统管理程序通过物理处理器创建虚拟处理器,这样,LPAR便可在运行独立操作环境的同时共享物理处理器。
尽管每个LPAR充当独立的服务器,但是物理服务器上的LPAR可彼此共享资源。系统管理程序在许多LPAR之间共享资源的能力允许通过将服务器资源转移到所需位置来提高资源利用率。
处理器是执行可编程指令的设备。处理器核由用于执行可编程指令的组件构成:浮点单元、定点单元、分支单元、加载/存储单元、内部高速缓冲存储器、关联的管线、通用寄存器(GPR)、专用寄存器(SPR)和浮点寄存器(FPR)。在现代超标量处理器中,为了提高执行单元的利用率,从而增加处理器的工作吞吐量,以分时使用的方式在多个硬件线程之间共享执行单元,从而对于执行软件而言,就像处理器专用于它自己一样。为此,复制诸如GPR、FPR、SPR之类的某些重要处理器资源以创建“硬件线程”的概念,有时也称为“中央处理单元(CPU)线程”。在某种意义上,LPAR由多个软件进程构成,其中软件进程由多个软件线程构成,其中每个软件线程可在硬件线程上执行。
分配给LPAR的处理器越多,LPAR在任何给定时间可运行的并发操作数就越大。专用处理器是被分配给单个分区的物理处理器。相反,共享处理器是其处理能力在多个LPAR之间共享的处理器。
同时多线程是单个物理处理器同时调度来自一个以上硬件线程的指令的能力。由于每个物理处理器具有两个或更多硬件线程,因此附加的指令可同时运行。
上下文切换是这样的过程:将一个程序换出中央处理单元(CPU)并使用另一进程的指令取代它。上下文切换是计算机的操作系统同时处理不同程序的方式。使用上下文切换,一个程序执行一段时间,然后保存程序执行状态(例如寄存器值)的副本,恢复下一程序的执行状态以在处理器上执行。上下文切换可称为“寄存器上下文切换”或“帧切换”或“线程上下文切换”。
发明内容
本发明的实施例的方面公开了一种调度计算机指令的执行的方法、计算机程序产品和计算系统。所述方法包括接收计算机系统上逻辑分区的权利处理器资源百分比。所述方法进一步包括将所述逻辑分区与所述计算机系统的处理器的硬件线程进行关联。所述方法进一步包括将所述逻辑分区的所述权利处理器资源百分比存储在与所述逻辑分区关联的硬件线程的寄存器中。所述方法进一步包括从所述计算机系统的所述逻辑分区接收指令以及所述处理器基于存储在与所述逻辑分区关联的硬件线程的寄存器中的权利处理器资源百分比调度所述指令。
附图说明
图1是根据本发明的一个实施例的计算机基础架构的图表。
图2示出LPAR、SPR和硬件线程之间的关系。
图3示出根据本发明的一个实施例由指令调度单元控制的硬件处理器的操作。
图4是示出根据本发明的一个实施例的任意权利能力(arbitraryentitlement capacity)程序的步骤的流程图。
图5是示出根据本发明的一个实施例的硬件处理器管理程序的步骤的流程图。
图6示出根据本发明的一个实施例的图1的计算机组件的框图。
具体实施方式
所属技术领域的技术人员知道,本发明的各方面可以实现为系统、方法或计算机程序产品。因此,本发明的各方面可以具体实现为以下形式,即,完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等)、或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明的各方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码/指令。
可以采用计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其他设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article ofmanufacture)。
也可以把计算机程序指令加载到计算机、其它可编程数据处理装置或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而在计算机或其它可编程装置上执行的指令提供实现流程图和/或框图中的一个或多个方框中规定的功能/动作的过程。
现在参考附图详细地描述本发明。下面的图提供一个实施例的说明。无论部分地还是整体地使用,该实施例都不暗示对其中可实现不同实施例的环境的任何限制。
图1是根据本发明的一个实施例的计算机基础架构100的图。计算机基础架构100包括:中央电子复合体(CEC)102、系统管理程序105、LPAR110a到LPAR 110d、需求百分比(REQ)%111a到REQ%111d、处理器资源120、硬件处理器管理程序150、权利专用寄存器(ESPR)1%160a、ESPR2%160b、ESPR3%160c、ESPR4%160d和任意权利能力程序190。权利SPR有时简称为“SPR”。
CEC 102是提供用于执行LPAR的环境的计算机。在多个实施例中,CEC 102可包括附加的设备或组件,例如磁盘驱动器、网络适配器等,为简单起见,未示出这些组件。其它实施例可将CEC 102称为“处理器盒”、“大型机盒”,并将硬件处理器组件称为“核”。本领域的某些技术人员知道,在其它实施例中,CEC 102可经由存储区域网结构(fabric)连接到其它CEC。
系统管理程序提供划分物理系统资源、处理器、存储器和I/O,并将这些资源分配给隔离的LPAR的能力。在一个实施例中,系统管理程序105可将专用的处理器资源、专用的I/O资源,以及专用的存储器资源分配给每个LPAR,称为“专用资源”。在另一实施例中,系统管理程序105可分配一些要专用的资源和一些要共享的资源,这是一种“混合”分配。在所示实施例中,系统管理程序105将共享的处理器资源、共享的I/O资源、以及共享的存储器资源分配给每个LPAR,称为“共享资源”。在所示实施例中,共享资源也称为“虚拟资源”,例如“虚拟处理器”。
共享100%资源的策略包括——但不限于——在多个LPAR之间分时共享处理器资源,这由系统管理程序软件根据LPAR的权利需求管理;和/或系统管理程序105在专用寄存器中存储值,该专用寄存器是与硬件线程以及LPAR的权利需求关联的权利SPR。而且,处理器的指令调度单元145将履行权利SPR的值,并且相应地根据权利SPR的值调度来自硬件线程的指令。通过此方式,LPAR的权利需求完全地在处理器硬件中管理,因此不需要系统管理程序抢先。在所示实施例中,实现后面的策略。例如,如果LPAR权利SPR为50%,则处理器将尝试提供等用于50%的LPAR执行时间。执行LPAR所需的全部资源在LPAR的执行期间专用于该LPAR。
在所示实施例中,系统管理程序105将LPAR的REQ%与权利SPR进行关联。系统管理程序105加载具有关联REQ%值的权利SPR。因此,关联REQ%到权利SPR使得LPAR专用于特定的权利SPR。LPAR/REQ%与权利SPR之间存在一一对应关系。不会有其它LPAR使用关联的权利SPR,因此不会在LPAR之间分时共享权利SPR。例如,如果REQ%111a为25%,则系统管理程序105将LPAR 110a关联到可用的权利SPR(例如,ESPR1%160a),并将ESPR1%160a设定为25%。在所示实施例中,LPAR 110a可在LPAR 110a的整个生命周期中被关联到ESPR1%160a。但是在其它实施例中,在LPAR生命周期内,系统管理程序105可重新设置关联。
系统管理程序105经由作为上述存储区域网结构一部分的网络连接(未示出)与硬件管理控制台(HMC)计算机通信。HMC计算机由管理员操作并向系统管理程序105发送指令,以及从系统管理程序105接收信息状态,例如LPAR的执行性能。系统管理程序105从HMC计算机接收LPAR的配置文件(profile)以及关联的REQ%。系统管理程序105包含任意权利能力程序190。
每个LPAR(LPAR 110a到LPAR 110d)作为独立的系统执行操作,运行自己的操作系统(即,虚拟系统),例如类似UNIX的操作系统,并且可能运行一个或多个应用。应用可以是应用服务器;此类服务器可提供有关航空公司的航班信息。系统管理程序105控制LPAR 110a到LPAR110d的执行。
LPAR 110a到LPAR 110d分别包含REQ%111a到REQ%111d。REQ%111a到REQ%111d各包含表示调度百分比(关联的LPAR认为需要该调度百分比才能高效地执行)的计数,其被认为是权利处理器资源百分比。REQ%包括在LPAR配置文件中。LPAR配置文件是LPAR属性列表。例如,提供有关航空公司航班的公共信息的LPAR可能只需要5%的资源,留下95%的资源可用于CEC中的其它LPAR。但是,提供用于蛋白质的数据挖掘的LPAR可能需要50%的资源,因为LPAR应用的高计算成本。而且,LPAR上下文切换需求被最小化,甚至可能被消除,因为系统管理程序105利用权利SPR的处理器硬件实现来为每个LPAR提供根据给定配置文件的REQ%的指定的虚拟资源份额。
在所示实施例中,REQ%111a到REQ%111d可能位于0%到100%的范围内。粒度要达到百分之一百分位,例如52.85%。在其它实施例中,范围或粒度可以不同。在其它实施例中,值可以是相当于计数的符号。例如,符号A、B、C、D可对应于百分比10%、20%、30%和40%。而且,在其它实施例中,REQ%111a到REQ%111d值可被存储在系统管理程序105内并且简单地与适当的LPAR关联。在更多的其它实施例中,REQ%111a到REQ%111d可存储在CEC的外部,例如存储在HMC或其它未示出的设备上,只要系统管理程序105可访问REQ%111a到REQ%111d。
REQ%111a到REQ%111d分别可在关联的LPAR的生命周期内随时更改。此更改可由管理员使用HMC计算机执行,也可由充当代理的软件执行,该代理具有与管理员相同的权利,在网络上执行,并可访问LPAR配置文件。在所示实施例中,一旦建立REQ%,系统管理程序105就必须重新计算可用资源以了解任何修改是否适合。在多个实施例中,如果物理资源可用,REQ%可动态地更改。本领域的技术人员知道。存在许多调度组合。
在所示实施例中,HMC计算机与系统管理程序105通信。使用HMC计算机,管理员构建LPAR配置文件,该文件转而由系统管理程序105用于构造具有适当属性(包括适当的REQ%)的LPAR。
处理器资源120与硬件处理器管理程序150通信。处理器资源120是执行硬件线程的物理处理设备,在所示实施例中,每个物理处理设备被标记为中央处理单元(CPU)。虚拟处理器从物理处理设备池分配。在所示实施例中,存在八个CPU,但是在其它实施例中,CPU的数量可以大于或小于八个。
硬件处理器管理程序150包含在硬件处理器中。硬件处理器管理程序150在执行硬件线程时使用ESPR 1%160a到ESPR 4%。在一个实施例中,硬件处理器管理程序150的步骤在处理器的指令调度单元145中的硬件逻辑内实现。指令调度单元145根据权利SPR中包含的REQ%值将指令调度给执行单元。在所示实施例中,硬件线程包含仅来自一个关联的LPARD的指令,并且专用于权利SPR。硬件处理器管理程序150进一步在图2和图5中介绍。
ESPR1%160a、ESPR2%160b、ESPR3%160c和ESPR4%160d分别包含一个REQ%。ESPR1%160a、ESPR2%160b、ESPR3%160c和ESPR4%160d存储由系统管理程序105管理。硬件处理器管理程序150使用权利SPR判定将分配给关联的硬件线程的核能力的百分比。所有权利SPR将具有存储REQ%所需的足够存储能力。在所示实施例中,存在四个权利SPR,但是在其它实施例中,可以具有更多或更少的权利SPR。权利SPR的数量等于硬件线程的数量。
任意权利能力程序190包含在系统管理程序105中。任意权利能力程序190是获取并跟踪每个物理CPU上可用权利的软件。任意权利能力程序190将每个REQ%分配给可用物理CPU上的硬件线程,并将REQ%值存储在关联的硬件线程的权利SPR中。
图2示出根据本发明的一个实施例的LPAR 210a、LPAR 210b、LPAR210c、LPAR 210d、ESPR 215a、ESPR 215b、ESPR 215c、ESPR 215d、硬件线程220a、硬件线程220b、硬件线程220c和硬件线程220d之间的关系。图2包含LPAR 210a到LPAR 210c、系统管理程序105、ESPR 215a到ESPR 215d、硬件处理器管理程序150、硬件线程220a到硬件线程220d,以及任意权利能力程序190。
LPAR可与一个或多个硬件线程关联,并且每个硬件线程具有一个权利SPR。任意权利能力程序190将每个LPAR关联到硬件线程,其中每个硬件线程具有一个权利SPR。例如,在所示实施例中,LPAR 210a与ESPR215a关联。ESPR 215a百分比被加载LPAR 210a REQ%中包含的值,该值为25%。LPAR 210b REQ%与ESPR%215b关联。ESPR%215b被加载LPAR 210b REQ%中包含的值,该值为10%,以此类推。这种LPAR到权利SPR的分配将继续,直到所有LPAR中的每个被分配权利SPR,并且权利SPR被加载关联的LPAR的REQ%。
硬件处理器管理程序150可以是软件、硬件、固件或任何组合,但是在多个实施例中,硬件处理器管理程序150被实现为硬件实体。在多个实施例中,硬件处理器管理程序150提供足够的资源以执行硬件线程。每个权利SPR专用于单个LPAR,从而专用于硬件线程(其包含LPAR的一组指令,可能是一个)。由于硬件线程关联到权利SPR,并且权利SPR关联到LPAR,因此硬件线程间接地关联到LPAR。在所示实施例中,一旦硬件线程与权利SPR关联,此关联将保持不变,直到硬件处理器管理程序150移除LPAR。在其它实施例中,硬件处理器管理程序150使得硬件线程不与特定的权利SPR关联,这允许硬件线程被加载来自任意LPAR的指令。但是,在所有实施例中,硬件处理器管理程序150跟踪哪个硬件线程具有哪些LPAR指令,并且仍将核能力的百分比提供给与LPAR临时关联的硬件线程。
硬件处理器管理程序150将提供给硬件线程足够的资源,其等于或近似地等于关联的权利SPR%值。例如,LPAR 210b需求为10%,这表示LPAR 210b最低需要10%的核能力;因此,硬件处理器管理程序150将尝试为LPAR 210b硬件线程调度10%的时间。
在其它实施例中,LPAR关联可被移到另一权利SPR,或者LPAR可被关联到多个权利SPR。在这些实施例中,硬件处理器管理程序150管理与单个LPAR关联的多个权利SPR和硬件线程。但是,在所示实施例中,如果运行的LPAR的配置文件更改,则认为它是新的LPAR;因此,移除LPAR/ESPR/硬件线程关联,LPAR将成为自由的权利SPR。
图3示出根据本发明的一个实施例由指令调度单元145控制的硬件处理器的操作。图3包含指令调度单元145、硬件处理器管理程序150、ESPR160a-160n、指令提取单元320、硬件线程330a-330n、线程资源335a-335n,以及EX0340a到EXn 340n。
图3所示的实施例示出数量可变的硬件线程,实际上如上所述,存在足够数量的硬件线程,用于与LPAR的一对一关联。在某些实施例中,硬件处理器管理程序和/或指令调度单元145的功能集成在线程调度器(未示出)中。
如上所述,包含在指令调度单元145内的硬件处理器管理程序150履行存储在ESPR 160a-160n中的权利SPR的值,并且根据权利SPR的值调度来自硬件线程的指令。ESPR包含用于LPAR的权利值。硬件处理器管理程序150访问ESPR中的值以判定对应于特定硬件线程的调度数量。
硬件线程330a-330n分别包含线程资源335a-335n。线程资源335a-335n包含用于特定硬件线程的存储,其包括——但不限于——指令缓冲器、通用寄存器、和浮点寄存器。指令缓冲器包含被指令提取单元320提取的指令(对应于给定线程)。通用寄存器(GPR)包含用于计算的定点数据和/或地址。浮点寄存器(FPR)包含用于浮点运算的浮点数据。实际上,线程资源335a-335n可包含其它专用寄存器,用于包含到页表的指针、状态和/或控制信息;但是为简单起见,未示出这些寄存器。指令提取单元320从存储器(例如从LPAR的指令)提取指令,将这些指令传送到关联的硬件线程330a-330n的指令缓冲器。
EX0340a到EXn 340n是执行单元,它们执行诸如定点/浮点运算、加载/存储数据之类的运算。EX0340a到EXn 340n产生运算结果,这些结果被写回GPR/FPR或SPR,或者被写回高速缓冲存储器/存储器,这取决于执行单元的类型。
一般而言,在每个时钟周期,指令调度单元145将从一个线程收集一组线程指令,然后将这些指令调度给资源;在下一时钟周期,指令调度单元145从另一线程收集另一组线程指令,然后调度它们,从而在线程之间存在一般相同的物理资源份额。相反地,在本发明的实施例中,在四个线程之间,物理资源的份额可能不同。在每个时钟周期,指令调度单元145基于与硬件线程(例如,硬件线程330a-330n中的一个)关联的权利SPR%,从一个线程收集一组线程指令。一个硬件线程可支配硬件处理器的资源,因为其权利SPR%值(来自ESPR 160a-160n的值)大于其它所有SPR%值。
例如,对于每个处理器时钟周期,指令调度单元145将从可用硬件线程中的一个收集一组指令,并将所有必要的硬件资源分配给这组指令。对于下一处理器时钟周期,指令调度单元145从另一硬件线程(可能是同一线程)收集一组指令,将将所有必要的硬件资源分配给该组指令。指令调度单元145尝试根据权利SPR调度指令组。在处理器时钟周期为1毫秒时,针对1000个处理器时钟周期,并且权利SPR被设定为50%的情况下,关联的硬件线程将接收500次调度。硬件处理器管理程序150包含根据权利SPR实现调度的逻辑。
图4是示出根据本发明的一个实施例的任意权利能力程序190的步骤的流程图。任意权利能力程序190将权利SPR设定为百分比,并且将LPAR关联到权利SPR。此外,当LPAR结束时,任意权利能力程序190解除SPR与LPAR的关联,并且释放权利SPR。任意权利能力程序190在LPAR的创建和结束期间由系统管理程序105调用。
在判定步骤405,任意权利能力程序190判定LPAR最新被创建还是正在结束。如果LPAR不包含关联,则任意权利能力程序190判定它是最新创建的LPAR;相反,当LPAR包含关联时,任意权利能力程序190指示LPAR正在结束。当LPAR正在创建时,任意权利能力程序190转移到步骤410(判定步骤“是”分支)。当LPAR正在结束时,任意权利能力程序190转移到步骤450(判定步骤“否”分支)。
在步骤410,任意权利能力程序190从LPAR的配置文件接收所需的LPAR的REQ%。LPAR的REQ%作为参数在调用时被传递到任意权利能力程序190。所需的LPAR的REQ%(权利处理器资源百分比)采取百分比形式,表示LPAR需要以便执行的最低调度量。
在步骤420,任意权利能力程序190将LPAR/REQ%关联到自由的权利SPR。关联LPAR到权利SPR的实现是LPAR和权利SPR的表,其中权利SPR最初被标记为可用。当创建LPAR时,任意权利能力程序190在表中查找可用的权利SPR,并将LPAR与表索引进行关联。自由的权利SPR值的示例包括——但不限于——0%、<空>或大于100%的数。本领域的技术人员知道,另一实现是利用权利SPR的链表。在某些情况下,只有一个或两个创建的LPAR,留下若干没有关联的LPAR的权利SPR,因此,在其它实施例中,任意权利能力程序190可使用自由的权利SPR,因此给定的LPAR将接收多于LPAR的最小需求的资源和调度。
在步骤430,任意权利能力程序190将在步骤420判定的关联的权利SPR设定为关联的LPAR的REQ%值。任意权利能力程序190能够直接访问所有权利SPR。本领域的技术人员知道,对权利SPR的访问可通过引用或通过硬件覆盖数据记录实现。
在步骤440,在转移来自步骤430的情况下,任意权利能力程序190将权利SPR与LPAR之间的新关联发送到硬件处理器管理程序150,这样,硬件处理器管理程序150可针对LPAR运行正确的硬件线程指令。在转移来自步骤460的情况下,任意权利能力程序190与硬件处理器管理程序150通信以解除权利SPR与LPAR的关联。在一个实施例中,通信可采用消息的形式。在其它实施例中,硬件处理器管理程序150可访问任意权利能力程序190在上面的步骤使用的LPAR和权利SPR的表。
在步骤S450,任意权利能力程序190解除LPAR与权利SPR的关联,并将权利SPR值设定为可用。解除关联需要在LPAR和权利SPR的表中查找关联并将值设定为可用。将权利SPR值设定为可用允许权利SPR再次用于另一LPAR。
在步骤460,任意权利能力程序190清除与正在结束的LPAR关联的权利SPR。本领域的技术人员知道,对权利SPR的访问可通过引用或通过硬件覆盖数据记录实现。
图5是示出根据本发明的一个实施例的硬件处理器管理程序150的步骤的流程图。硬件处理器管理程序150在每个时钟周期被调用以便为硬件线程提供足够的资源和调度。
在步骤505,硬件处理器管理程序150从任意权利能力程序190接收更新的权利SPR与LPAR之间的关联。在一个实施例中,关联可位于所接收的消息中。硬件处理器管理程序150将权利SPR与LPAR之间的关联存储在硬件处理器管理程序150可访问的存储器中。
在步骤510,硬件处理器管理程序150基于权利SPR值判定需要执行的硬件线程指令。硬件处理器管理程序150跟踪硬件线程已接收的调度数量。在一个实施例中,跟踪采取跟踪表的形式,该表简单地计数每若干个周期时间(例如,1000赫兹)的调度。硬件处理器管理程序150判定哪个硬件线程将接收处理器资源。例如,如果权利SPR包含值25%,则硬件处理器管理程序150将执行与权利SPR关联的硬件线程25%的时间,这样,在1000赫兹当中,权利SPR将接收大约250个调度。在其它实施例中,硬件处理器管理程序150通过线程调度器或指令调度单元145中的其它功能(它们都可结合硬件处理器管理程序150执行功能)执行步骤510。
在步骤520,硬件处理器管理程序150分配所有必要的资源以执行硬件线程指令。这些指令包括——但不限于——(i)地址产生;(ii)分支;(iii)数据缓存访问;(iv)执行;(v)格式设置;(iv)以及指令缓存访问。
图6示出根据本发明的一个实施例的计算机CEC 102的组件的框图。应该理解,图6仅提供一个实现的说明,并非暗示对其中可实现不同实施例的环境的任何限制。可对所示环境做出许多修改。
CEC 102包括通信结构602,其提供计算机处理器604、存储器606、永久存储装置608、通信单元610,和输入/输出(I/O)接口612之间的通信。通信结构602可通过针对在处理器(例如微处理器、通信处理器和网络处理器等)、系统存储器、外围设备和系统内的其它任何硬件组件之间传递数据和/或控制信息而设计的任何架构实现。例如,通信结构602可通过一条或多条总线实现。
存储器606和永久存储装置608是计算机可读存储介质。在该实施例中,存储器606包括随机存取存储器(RAM)614和高速缓冲存储器616。一般而言,存储器606可包括任何适当的易失性或非易失性计算机可读存储介质。
硬件处理器管理程序150和任意权利能力程序190存储在CEC 102的永久存储装置608中,以便由各个计算机处理器604中的一个或多个经由存储器606中的一个或多个存储器执行和/或访问。在该实施例中,永久存储装置608包括磁性硬盘驱动器。
作为磁性硬盘驱动器的备选或补充,永久存储装置608可包括固态硬盘驱动器、半导体存储器件、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、闪存、或其它任何能够存储程序指令或数字信息的计算机可读存储介质。
永久存储装置608使用的介质也可是可移动的。例如,移动硬盘可用于永久存储装置608。其它实例包括插入驱动器以转移到同样是永久存储装置608一部分的另一计算机可读存储介质的光盘和磁盘、拇指驱动器,以及智能卡。
在这些实例中,通信单元610提供与其它数据处理系统或设备的通信,其中包括计算机基础架构100的资源和其它设备(未示出)。在这些实例中,通信单元610包括一个或多个网络接口卡。通信单元610可使用物理通信链路和无线通信链路中的一个或两个提供通信。
硬件处理器管理程序150和任意权利能力程序190可分别通过CEC102的通信单元610下载到CEC 102的永久存储装置608。
I/O接口612允许与可以连接到CEC 102的其它设备进行数据输入和输出。例如,I/O接口612可提供与外部设备618的连接,例如键盘、数字小键盘、触摸屏,和/或其它某种适当的输入设备。外部设备618也可包括便携式计算机可读存储介质,例如拇指驱动器、便携式光盘或磁盘,以及存储卡。用于实现本发明的实施例的软件和数据(例如,硬件处理器管理程序150和任意权利能力程序190)可被存储在此类便携式计算机可读存储介质上,并可经由CEC 102的I/O接口612被加载到CEC 102的永久存储装置608上。I/O接口612还连接到显示器620。
显示器620提供向用户显示数据的装置,例如可以是计算机监视器。
此处描述的程序基于这些程序在本发明的特定实施例中实现所针对的应用识别。但是应该理解,此处的任何特殊程序命名的使用仅出于方便的考虑,因此,本发明不应该限于仅在此类命名所识别和/或暗示的任何特定应用中使用。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
Claims (10)
1.一种调度计算机指令的执行的方法,所述方法包括以下步骤:
接收用于计算机系统上逻辑分区的权利处理器资源百分比;
将所述逻辑分区与所述计算机系统的处理器的硬件线程进行关联;
将所述用于逻辑分区的权利处理器资源百分比存储在与所述逻辑分区关联的硬件线程的寄存器中;
从所述计算机系统的逻辑分区接收指令;以及
所述处理器基于存储在与所述逻辑分区关联的硬件线程的寄存器中的权利处理器资源百分比调度所述指令。
2.根据权利要求1的所述的方法,其中所述寄存器是所述硬件线程的权利专用寄存器。
3.根据权利要求1的所述的方法,其中所述权利处理器资源百分比表示提供给与所述逻辑分区关联的硬件线程的处理器的执行能力的百分比。
4.根据权利要求1所述的方法,其中将所述逻辑分区与所述计算机系统的处理器的硬件线程进行关联的步骤包括以下步骤:
判定所述逻辑分区不与所述计算机系统的处理器的任何硬件线程关联;以及
创建所述逻辑分区与所述计算机系统的处理器的硬件线程之间的关联。
5.根据权利要求1所述的方法,其中所述权利处理器资源百分比从所述逻辑分区的配置文件接收。
6.一种调度计算机指令的执行的计算机系统,所述计算机系统包括:
一个或多个计算机处理器,一个或多个计算机可读存储介质,以及存储在所述计算机可读存储介质上并由所述一个或多个处理器中的至少一个执行的程序指令,所述程序指令包括:
接收用于计算机系统上逻辑分区的权利处理器资源百分比的程序指令;
将所述逻辑分区与所述计算机系统的处理器的硬件线程进行关联的程序指令;
将所述用于逻辑分区的权利处理器资源百分比存储在与所述逻辑分区关联的硬件线程的寄存器中的程序指令;
从所述计算机系统的逻辑分区接收指令的程序指令;以及
基于存储在与所述逻辑分区关联的硬件线程的寄存器中的权利处理器资源百分比调度所述指令的程序指令。
7.根据权利要求6所述的计算机系统,其中所述寄存器是所述硬件线程的权利专用寄存器。
8.根据权利要求6所述的计算机系统,其中所述权利处理器资源百分比表示提供给与所述逻辑分区关联的硬件线程的处理器的执行能力的百分比。
9.根据权利要求6所述的计算机系统,其中将所述逻辑分区与所述计算机系统的处理器的硬件线程进行关联的程序指令包括:
判定所述逻辑分区不与所述计算机系统的处理器的任何硬件线程关联的程序指令;以及
创建所述逻辑分区与所述计算机系统的处理器的硬件线程之间的关联的程序指令。
10.根据权利要求6所述的计算机系统,其中所述权利处理器资源百分比从所述逻辑分区的配置文件接收。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/134476 | 2013-12-19 | ||
US14/134,476 US9535746B2 (en) | 2013-12-19 | 2013-12-19 | Honoring hardware entitlement of a hardware thread |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104731572A true CN104731572A (zh) | 2015-06-24 |
CN104731572B CN104731572B (zh) | 2018-01-12 |
Family
ID=53400115
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410680600.7A Active CN104731572B (zh) | 2013-12-19 | 2014-11-24 | 履行硬件线程的硬件权利的方法和系统 |
Country Status (2)
Country | Link |
---|---|
US (3) | US9535746B2 (zh) |
CN (1) | CN104731572B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9535746B2 (en) | 2013-12-19 | 2017-01-03 | International Business Machines Corporation | Honoring hardware entitlement of a hardware thread |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5894496B2 (ja) * | 2012-05-01 | 2016-03-30 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
CN110597755B (zh) * | 2019-08-02 | 2024-01-09 | 北京多思安全芯片科技有限公司 | 一种安全处理器的重组配置方法 |
CN111738710B (zh) * | 2020-07-23 | 2020-12-01 | 支付宝(杭州)信息技术有限公司 | 对智能合约的执行进行资源扣除的方法和处理器 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5675739A (en) * | 1995-02-03 | 1997-10-07 | International Business Machines Corporation | Apparatus and method for managing a distributed data processing system workload according to a plurality of distinct processing goal types |
CN1496508A (zh) * | 2001-03-08 | 2004-05-12 | 国际商业机器公司 | 分区处理环境中的资源平衡 |
CN101226490A (zh) * | 2007-01-15 | 2008-07-23 | 国际商业机器公司 | 用于在分区的计算机中推荐移动资源的系统和方法 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6535905B1 (en) * | 1999-04-29 | 2003-03-18 | Intel Corporation | Method and apparatus for thread switching within a multithreaded processor |
US6957435B2 (en) * | 2001-04-19 | 2005-10-18 | International Business Machines Corporation | Method and apparatus for allocating processor resources in a logically partitioned computer system |
US7657893B2 (en) | 2003-04-23 | 2010-02-02 | International Business Machines Corporation | Accounting method and logic for determining per-thread processor resource utilization in a simultaneous multi-threaded (SMT) processor |
US20060130062A1 (en) * | 2004-12-14 | 2006-06-15 | International Business Machines Corporation | Scheduling threads in a multi-threaded computer |
US7721292B2 (en) * | 2004-12-16 | 2010-05-18 | International Business Machines Corporation | System for adjusting resource allocation to a logical partition based on rate of page swaps and utilization by changing a boot configuration file |
US7483801B2 (en) * | 2005-01-20 | 2009-01-27 | International Business Machines Corporation | Performance collection compensation |
US7870551B2 (en) | 2006-05-18 | 2011-01-11 | International Business Machines Corporation | Optimization of thread wake up for shared processor partitions |
US7865895B2 (en) | 2006-05-18 | 2011-01-04 | International Business Machines Corporation | Heuristic based affinity dispatching for shared processor partition dispatching |
US8024728B2 (en) | 2006-12-28 | 2011-09-20 | International Business Machines Corporation | Virtual machine dispatching to maintain memory affinity |
US8219995B2 (en) | 2007-03-28 | 2012-07-10 | International Business Machins Corporation | Capturing hardware statistics for partitions to enable dispatching and scheduling efficiency |
US8161476B2 (en) | 2007-07-04 | 2012-04-17 | International Business Machines Corporation | Processor exclusivity in a partitioned system |
US8285973B2 (en) | 2008-08-04 | 2012-10-09 | International Business Machines Corporation | Thread completion rate controlled scheduling |
US8286178B2 (en) | 2009-06-24 | 2012-10-09 | International Business Machines Corporation | Allocation and regulation of CPU entitlement for virtual processors in logical partitioned platform |
US20130007370A1 (en) * | 2011-07-01 | 2013-01-03 | Oracle International Corporation | Method and apparatus for minimizing working memory contentions in computing systems |
US9535746B2 (en) | 2013-12-19 | 2017-01-03 | International Business Machines Corporation | Honoring hardware entitlement of a hardware thread |
-
2013
- 2013-12-19 US US14/134,476 patent/US9535746B2/en not_active Expired - Fee Related
-
2014
- 2014-06-19 US US14/309,136 patent/US9582323B2/en not_active Expired - Fee Related
- 2014-11-24 CN CN201410680600.7A patent/CN104731572B/zh active Active
-
2016
- 2016-09-29 US US15/279,682 patent/US10114673B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5675739A (en) * | 1995-02-03 | 1997-10-07 | International Business Machines Corporation | Apparatus and method for managing a distributed data processing system workload according to a plurality of distinct processing goal types |
CN1496508A (zh) * | 2001-03-08 | 2004-05-12 | 国际商业机器公司 | 分区处理环境中的资源平衡 |
CN101226490A (zh) * | 2007-01-15 | 2008-07-23 | 国际商业机器公司 | 用于在分区的计算机中推荐移动资源的系统和方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9535746B2 (en) | 2013-12-19 | 2017-01-03 | International Business Machines Corporation | Honoring hardware entitlement of a hardware thread |
US9582323B2 (en) | 2013-12-19 | 2017-02-28 | International Business Machines Corporation | Honoring hardware entitlement of a hardware thread |
US10114673B2 (en) | 2013-12-19 | 2018-10-30 | International Business Machines Corporation | Honoring hardware entitlement of a hardware thread |
Also Published As
Publication number | Publication date |
---|---|
US9582323B2 (en) | 2017-02-28 |
US9535746B2 (en) | 2017-01-03 |
CN104731572B (zh) | 2018-01-12 |
US20170017525A1 (en) | 2017-01-19 |
US20150178088A1 (en) | 2015-06-25 |
US20150178131A1 (en) | 2015-06-25 |
US10114673B2 (en) | 2018-10-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11010053B2 (en) | Memory-access-resource management | |
US9756118B2 (en) | Virtual performance monitoring decoupled from hardware performance-monitoring units | |
US9864627B2 (en) | Power saving operating system for virtual environment | |
CN104714849B (zh) | 用于在综合工作负载环境中实现最佳性能的系统和方法 | |
US20090100249A1 (en) | Method and apparatus for allocating architectural register resources among threads in a multi-threaded microprocessor core | |
US20110131580A1 (en) | Managing task execution on accelerators | |
US10296339B2 (en) | Thread transition management | |
US20130268742A1 (en) | Core switching acceleration in asymmetric multiprocessor system | |
US20140108404A1 (en) | License Reconciliation with Multiple License Types and Restrictions | |
KR20140018947A (ko) | 분할가능한 엔진에 의해 인스턴스화된 가상 코어를 이용한 명령어 시퀀스 코드 블록의 실행 | |
CN101366004A (zh) | 用于带有专用线程管理的多核处理的方法和设备 | |
CN101887380A (zh) | 优化在多平台系统中执行的应用的分布 | |
CN103635875A (zh) | 用于通过使用由可分区引擎实例化的虚拟核来支持代码块执行的存储器片段 | |
CN102822801A (zh) | 响应于服务水平协议而分配计算系统功率水平 | |
CN104731572A (zh) | 履行硬件线程的硬件权利的方法和系统 | |
US9626220B2 (en) | Computer system using partially functional processor core | |
CN103365628A (zh) | 用于执行预解码时优化的指令的方法和系统 | |
CN107729267A (zh) | 资源的分散分配以及用于支持由多个引擎执行指令序列的互连结构 | |
EP1760580B1 (en) | Processing operation information transfer control system and method | |
US11023277B2 (en) | Scheduling of tasks in a multiprocessor device | |
Sawalha et al. | Hardware thread‐context switching | |
US8656375B2 (en) | Cross-logical entity accelerators | |
CN116431223A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |