部分计算机处理器核关闭转让专利

申请号 : CN202180020806.5

文献号 : CN115280290B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : T.马瑞尔M.布勒A.英吉蒙德森B.施泰因马赫-布鲁

申请人 : 国际商业机器公司

摘要 :

本发明的各方面涉及一种包括执行单元和使用率控制器的处理器核。执行单元可操作用于执行被转发到执行单元的命令。使用率控制器与执行单元操作性地耦合。使用率控制器可操作用于控制执行单元的使用率。该使用率对应于在其期间执行单元在执行应用的命令的观察时间的一部分。本公开的其它方面涉及用于检测或分析给定应用的处理器核中的瓶颈的方法。该方法包括控制处理器核的至少一个执行单元的使用率并测量所得到的应用性能。

权利要求 :

1.一种处理器核,包括:

执行单元,用于执行被转发到执行单元的应用的一个或多个命令;以及与执行单元操作性地耦合的使用率控制器单元,使用率控制器单元控制执行单元的使用率,所述使用率对应于在其期间执行单元在执行所述应用的一个或多个命令的总观察时段的一部分,使用率控制器单元从由执行单元发送的就绪信号生成修改的就绪信号,就绪信号指示执行单元准备好接收所述一个或多个命令。

2.根据权利要求1所述的处理器核,其中,处理器核包括用于基于修改的就绪信号将所述一个或多个命令转发至执行单元的发布单元。

3.根据权利要求1所述的处理器核,其中,使用率控制器单元进一步包括:使用率限制器。

4.根据权利要求3所述的处理器核,其中,使用率限制器限制在其期间就绪信号指示执行单元可以开始执行所述一个或多个命令的时段。

5.根据权利要求1所述的处理器核,其中,使用率控制器单元进一步包括:移位寄存器,用于对由执行单元生成的就绪信号进行采样;以及第一电路,用于基于移位寄存器的内容生成修改的就绪信号。

6.根据权利要求1所述的处理器核,其中,使用率控制器单元进一步包括:随机生成器,用于生成随机信号;以及

第二电路,用于基于随机信号生成修改的就绪信号。

7.根据权利要求1所述的处理器核,其中,执行单元是算术单元。

8.根据权利要求1所述的处理器核,其中,执行单元是加载存储单元的一部分、矢量单元或二进制编码的十进制单元。

9.一种用于检测处理器核中的瓶颈的计算机实现的方法,包括:由计算机控制处理器核的执行单元的使用率,执行单元执行被转发到执行单元的应用的一个或多个命令;

由计算机确定应用性能对所述使用率的依赖,所述使用率对应于在其期间执行单元在执行所述应用的一个或多个命令的总观察时段的一部分;以及从由执行单元发送的就绪信号生成修改的就绪信号,就绪信号指示执行单元准备好接收所述命令。

10.根据权利要求9所述的方法,进一步包括:用发布单元基于修改的就绪信号将所述一个或多个命令转发至执行单元。

11.根据权利要求9所述的方法,进一步包括:限制在其期间就绪信号指示执行单元可以开始执行所述一个或多个命令的时段。

12.根据权利要求9所述的方法,进一步包括:基于随机信号生成修改的就绪信号。

13.根据权利要求9所述的方法,进一步包括:基于期望使用率来控制所述使用率。

14.根据权利要求9所述的方法,进一步包括:控制第二执行单元的第二使用率;以及

确定应用性能对执行单元的使用率和第二执行单元的第二使用率的依赖。

15.一种用于检测处理器核中的瓶颈的计算机系统,包括:一个或多个处理器、一个或多个计算机可读存储器、一个或多个计算机可读有形存储设备、以及存储在所述一个或多个存储设备中的至少一个上的用于由所述一个或多个处理器中的至少一个通过所述一个或多个存储器中的至少一个执行的程序指令,其中,所述计算机系统能够执行方法,所述方法包括:由计算机控制处理器核的执行单元的使用率,执行单元执行被转发到执行单元的应用的一个或多个命令;

由计算机确定应用性能对所述使用率的依赖,所述使用率对应于在其期间执行单元在执行所述应用的一个或多个命令的总观察时段的一部分;以及从由执行单元发送的就绪信号生成修改的就绪信号,所述就绪信号指示执行单元准备好接收所述一个或多个命令。

说明书 :

部分计算机处理器核关闭

背景技术

[0001] 本发明总体上涉及计算机系统,更具体地涉及处理器核。
[0002] 应用性能改进在很大程度上是硬件性能提高的结果。随着结构尺寸不仅达到技术和经济限制,而且达到基本的物理限制,不再期望归因于硬件发展的可比较的性能增益。
[0003] 然而,仍然有可能优化软件。例如,可以改进软件算法本身。也许更有希望的是进行硬件感知的软件调节。迄今为止,可能期望了解实际限制应用性能的硬件单元,即,哪个硬件单元代表给定应用的瓶颈。例如,当计算单元被未充分利用时,存储器单元可代表应用的瓶颈。然后,可以适应性地改造软件,以更少地使用存储器单元,但更多地使用计算单元。替代地或附加地,对瓶颈的了解可允许开发更适合应用需求的未来硬件。因此,可能需要用于改进的处理器核的方法和系统。

发明内容

[0004] 本发明的各方面涉及包括至少一个执行单元和使用率控制器对处理器核。执行单元可操作用于执行被转发到执行单元的命令。使用率控制器与执行单元操作性地耦合。使用率控制器可操作用于控制执行单元的使用率。使用率对应于在其期间执行单元正在执行命令的总执行时间的一部分。
[0005] 本公开的其它方面涉及用于检测或分析给定应用的处理器核中的瓶颈的方法。给定应用的执行对应于将由处理器核的执行单元执行的给定命令集。该方法包括控制处理器核的至少一个执行单元的使用率并且测量所得到的应用性能。
[0006] 以上概述并不旨在描述本公开的每个所示实施例或每一个实现。

附图说明

[0007] 结合附图,将最好地理解通过实例给出的但不旨在将本发明仅限于此的以下详细描述,在附图中:
[0008] 图1是根据本公开的实施例的示例性计算机系统;
[0009] 图2示出了根据本公开的实施例的第一示例性处理器核;
[0010] 图3示出了根据本公开的实施例的第二示例性处理器核;
[0011] 图4示出了根据本公开的实施例的第三示例性处理器核;
[0012] 图5示出了根据本公开的实施例的第四示例性处理器核;
[0013] 图6示出了根据本公开的实施例的第五示例性处理器核;以及
[0014] 图7是描述根据本公开的实施例的用于检测给定应用的处理器核中的瓶颈的示例性方法的流程图。
[0015] 附图不一定按比例绘制。附图仅是示意性表示,并不旨在描述本发明的具体参数。附图仅旨在描述本发明的典型实施例。在附图中,相同的标号表示相同的元件。

具体实施方式

[0016] 在此披露了所要求保护的结构和方法的详细实施例;然而,应当理解的是,所披露的实施例仅仅是对所要求保护的可以以不同的形式体现的结构和方法的说明。然而,本发明可以以许多不同的形式体现并且不应被解释为局限于在此阐述的示例性实施例。在说明书中,可以省略众所周知的特征和技术的细节,以免不必要地模糊所呈现的实施例。
[0017] 本发明的实施例总体上涉及计算机系统领域,更具体地涉及处理器核。以下描述的示例性实施例提供一种系统、方法和计算机程序产品,所述系统、方法和计算机程序产品,用以包括用占空比控制器来测量处理器核中的性能和性能限制。因此,本实施例能够通过提供一种基于确定系统的关键组件、对系统中更多单元的需要、以及对系统中未充分利用的单元的标识以及其它参数来标识给定应用的瓶颈的方式,来改进计算机系统的技术领域。具体地,本公开的实施例可以控制多个执行单元的使用率和确定应用性能对相应使用率的依赖,这可以允许识别限制应用性能的处理器核的瓶颈。
[0018] 现在参考图1,示出了可应用于实现本公开的实施例的示例性计算机系统/服务器12。计算机系统/服务器12仅仅是说明性的,并非旨在对本文所述的本发明的实施例的使用或功能的范围提出任何限制。
[0019] 如图1所示,计算机系统/服务器12以通用计算设备的形式示出。计算机系统/服务器12的组件可包括但不限于一个或多个处理器或处理单元16、系统存储器28和将包括系统存储器28的各种系统组件耦合到处理器16的总线18。
[0020] 总线18代表若干类型的总线结构中的任何一种或多种,包括存储器总线或存储器控制器、外围总线、加速图形端口、以及使用各种总线架构中的任一种的处理器或局部总线。作为示例而非限制,这样的体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)局部总线和外围组件互连(PCI)总线。
[0021] 计算机系统/服务器12通常包括各种计算机系统可读介质。这样的介质可以是可由计算机系统/服务器12访问的任何可用介质,并且其包括易失性和非易失性介质、可移动和不可移动介质。
[0022] 系统存储器28可包含呈易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓冲存储器32。计算机系统/服务器12可以进一步包括其它可移动/不可移动、易失性/非易失性计算机系统存储介质。仅通过示例的方式,可以提供存储系统34以用于从不可移动、非易失性磁介质(未示出,通常称为“硬盘驱动器”)中读取和向其写入。尽管未示出,可以提供用于从可移动非易失性磁盘(例如,“软盘”)读取或向其写入的磁盘驱动器,以及用于从可移动非易失性光盘(如CD‑ROM、DVD‑ROM或其它光学介质)读取或向其写入的光盘驱动器。在这样的情况下,每一个都可以通过一个或多个数据介质接口连接到总线18。如以下将进一步示出和描述的那样,存储器28可包括具有被配置为执行本发明的实施例的功能的一组(例如,至少一个)程序模块的至少一个程序产品。
[0023] 具有一组(至少一个)程序模块42的程序/实用程序40,以及操作系统、一个或多个应用程序、其它程序模块和程序数据,可以通过示例而非限制的方式存储在存储器28中。操作系统、一个或多个应用程序、其它程序模块和程序数据中的每一个或它们的一些组合可包括联网环境的实现方式。程序模块42一般执行如本文中所述的本发明实施例的功能和/或方法。
[0024] 计算机系统/服务器12也可以与诸如键盘、定点设备、显示器24之类的一个或多个外部设备14通信;与使得用户能够与计算机系统/服务器12的一个或多个设备通信;和/或与使得计算机系统/服务器12能够与一个或多个其它计算设备通信的任何设备(例如,网卡、调制解调器等)通信。这种通信可通过输入/输出(I/O)接口22进行。此外,计算机系统/服务器12可以通过网络适配器20与诸如局域网(LAN)、通用广域网(WAN)和/或公共网络(例如因特网)的一个或多个网络通信。如图所示,网络适配器20通过总线18与计算机系统/服务器12的其它组件通信。应当理解,虽然未示出,但是其它硬件和/或软件组件也可以与计算机系统/服务器12结合使用。示例包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器和数据归档存储系统等。
[0025] 应当指出的是,本公开的实施例可以被实现为图1的程序/实用程序40或程序模块42。
[0026] 现在参见图2,示出了根据本公开的实施例的第一示例性处理器核100。第一示例性处理器核100包括可操作用于执行命令的执行单元120。在图2的实例中,执行单元120也被表示为单元A。第一示例性处理器核100可包括多于一个执行单元120。例如,第一示例性处理器核100可另外还包括单元B、单元C等(图中未示出)。除了用于接收命令C(其也可被称为发布命令)用以开始计算的输入外,执行单元120可包括进一步的输入121。例如,进一步的输入121可以用于接收要由执行单元120操纵的数据。应指出的是,给定应用的执行对应于将由处理器核的执行单元执行的给定命令集。
[0027] 此外,第一示例性处理器核100包括一个或多个使用率控制器130。使用率控制器130还可以被称为就绪阻滞器(Ready Blocker)。每个使用率控制器130与一个或多个执行单元120可操作地耦合。每个使用率控制器130可操作用于控制其耦合的执行单元120的使用率(usage ratio)。如本领域技术人员已知的,处理器核的执行单元可能仅在观察时段T中的时间tA内是活动的。比率tA/T被称为使用率。
[0028] 执行单元120可发送就绪(ready)信号R,其指示先前的计算已被执行并且执行单元120准备好执行下一计算。使用率控制器130可操作用于从就绪信号R生成修改的就绪信号R*,如图所示。
[0029] 第一示例性处理器核100还可包括发布单元110,发布单元110可操作用于基于修改的就绪信号R*来转发触发执行单元开始计算的下一命令C。发布单元110可包括在发布单元110发出命令C之前可能必须通过其来接收另外的信号的进一步的输入111。
[0030] 使用率控制器130可将就绪信号R屏蔽一定的百分比时间。因此,不是每次使用率控制器130从执行单元120接收到就绪信号R时,就可以将修改的就绪信号R*发送到发布单元110。因此,执行单元120的使用率可被修改,尤其是减小。就绪信号R和/或修改的就绪信号R*可对应于对应单元之间的静态电连接上的静态电压(即,高或低)。然而,还可以将就绪信号R和修改的就绪信号R*作为总线上的消息来进行发送。
[0031] 与降低处理器核的操作频率相比,个体执行单元的使用率的个体修改可以允许对限制给定应用的性能的瓶颈的更详细的分析。可以避免用于分析硬件对应用性能的影响的已知方法中的已知副作用。例如,降低处理器核的操作频率不但可降低执行单元的使用率,而且可影响处理器核的电行为,即电压、电流、电容。此外,本申请中提出的技术可以提供与用于影响硬件性能的传统方法相比更精细的粒度。例如,所提出的方法和相关联的系统可以提供比简单地使用每套接字(per socket)更多或更少的核更精细的粒度。此外,所提出的使用率控制器可具有的附加优点是使用率控制器可用于不同的执行单元。例如,可以将相同类型的使用率控制器用于执行算术计算的执行单元和控制存储器访问的执行单元。
[0032] 独立地,控制多个执行单元的使用率以及确定应用性能对相应使用率的依赖可以允许识别限制给定应用性能的处理器核的瓶颈。
[0033] 使用率控制器130可包括反馈移位寄存器132和用于提供修改的就绪信号R*的“与”门(AND‑gate)131。“与”门131在第一输入接收就绪信号R并在第二输入端接收由反馈移位寄存器132发送的选通信号G。反馈移位寄存器132可以随第一示例性处理器核100的每个时钟周期移位。反馈移位寄存器和“与”门可以很容易在集成电路中实现。具体地,反馈移位寄存器和AND门“与”门可能需要半导体裸片(semiconductor die)上的非常小的空间。反馈移位寄存器132可以是n位反馈移位寄存器。反馈移位寄存器132可在初始化时被预加载有j个零(“0”)和k个一(“1”),其中,j与k之和等于n。j(或k)和n之间的关系可确定使用率控制器130将屏蔽就绪信号R的时钟周期的比例。反馈移位寄存器132的位数n可以确定这个比例可以被选择的精细程度。例如,反馈移位寄存器132的长度可以短于100位,尤其是短于50位,并且长于5位,尤其是长于10位。
[0034] 现在参考图3,示出了根据本公开的实施例的包括具有输入211的发布单元210、具有输入221的执行单元220和使用率控制器单元230的第二示例性处理器核200。关于发布单元210、输入211、执行单元220、输入221和使用率控制器单元230彼此的交互,参考以上对于图2的第一示例性处理器核100及其对应元件(即,发布单元110、进一步的输入111、执行单元120、进一步的输入121和使用率控制器130)的说明。
[0035] 第二示例性处理器核200在使用率控制器单元230的内部结构上不同于第一示例性处理器核100。如同使用率控制器130包括“与”门131一样,使用率控制器单元230包括“与”门231,“与”门131、231两者都在第一输入处接收来自相应执行单元120、130的就绪信号R,并向相应发布单元110、210发送修改的就绪信号R*。比较器233比较从随机数发生器235(例如伪随机数发生器)接收的随机数B与存储在限制寄存器234中的限值A。
[0036] 随机数生成器235可以生成零和n‑1之间的随机数B。相应地,限制寄存器234可以存储零和n‑1之间的限值A。只有当随机数B小于限值A时,比较器233才会将选通信号G发送至“与”门231。基于随机数产生选通信号可避免在处理器核的电路内产生可能会有意外副作用的规则节拍(beats)。
[0037] 现在参考图4,示出了根据本公开的实施例的包括具有输入311的发布单元310、具有输入321的执行单元320以及使用率控制器单元330的第三示例性处理器核300。关于发布单元310、输入311、执行单元320、输入321和使用率控制器单元330彼此的交互,参考以上对于图2的第一示例性处理器核100及其相应元件(即,发布单元110、进一步的输入111、执行单元120、进一步的输入121和使用率控制器130)的说明。
[0038] 第三示例性处理器核300在使用率控制器单元330的内部结构上与第一示例性处理器核100和第二示例性处理器核200不同。使用率控制器单元330包括比较器333、限制寄存器334和随机生成器335,如同使用率控制器单元230包括比较器233、限制寄存器234和随机生成器235。然而,比较器333将选通信号G发送到有限状态机(FSM)336而不是“与”门231。
[0039] 有限状态机336接收就绪信号R作为第一输入且接收选通信号G作为第二输入,并发送其当前状态,即1或0,作为修改的就绪信号R*。如果就绪信号R和选通信号G都为1,即R/G=1/1,则有限状态机336进入状态一,即“1”。只要就绪信号R为1,即R/G=1/‑,有限状态机336就保持状态一以,即“1”。只有当就绪信号R变为零时,即R/G=0/‑,有限状态机336才进入状态零,即“0”。只要就绪信号R保持为零,即R/G=0/‑,或选通信号G保持为零,即R/G=‑/
0,则有限状态机336保持在状态零,即“0”,其被发送至发布单元310。
[0040] 所提出的使用有限状态机336的使用率控制器单元330可允许仅增加执行单元320的使用率,一旦FSM处于状态1且执行单元320在等待新命令,它将不会散布额外的忙周期。
[0041] 这将改善但并不消除100%的问题,即,无论执行单元已经等待多长时间,先前的两个实现都将散布忙周期。此外,随机发生器335可有助于避免节拍的形成。
[0042] 在使用率控制器单元330的替代实施例中,包括比较器333、限制寄存器334和随机发生器335的电路也可以替换为类似于反馈移位寄存器132的反馈移位寄存器。
[0043] 现在参考图5,示出了根据本公开的实施例的包括具有输入411的发布单元410、具有输入421的执行单元420以及使用率控制器单元430的第四示例性处理器核400。关于发布单元410、输入411、执行单元420、输入421和使用率控制器单元430这些元件彼此的交互,参考以上对于图2的第一示例性处理器核100及其相应的元件(发布单元110、进一步的输入111、执行单元120、进一步的输入121和使用率控制器130)的说明。
[0044] 第四示例性处理器核400在使用率控制器单元430的内部结构上与前述示例性处理器核100、200和300不同。如同使用率控制器单元130和230分别包括“与”门131和231,使用率控制器单元430包括“与”门431。类似于“与”门131和231,“与”门431在第一输入处接收来自相应执行单元420的就绪信号R。此外,“与”门431在第二输入处接收来自使用率限制器436的选通信号G。
[0045] 使用率限制器436包括测量执行单元420的最近使用率的使用率电路440。使用率电路440包括从执行单元420接收就绪信号的移位寄存器441和计数器442。计数器在第一输入处接收来自移位寄存器441的信号,其递减计数器442中存储的值;在第二输入处接收来自执行单元420的就绪信号R,其递增计数器442中存储的值。计数器442可对移位寄存器441中的“1”的个数进行计数。在替代实施例中,使用率电路可以用于多个N个执行单元。该N个执行单元可对应于同一执行单元的多个实例。在这种情况下,使用率电路可以从N个执行单元接收N个就绪信号R。代替在此之前所述的移入/增加“0”和“1”,将移入/增加就绪信号R为“1”的数量。
[0046] 计数器442中存储的值,可指示执行单元420的使用率。比较器433将计数器442发送的值与限制寄存器434中存储的限值进行比较。如果使用率大于期望使用率,比较器433将选通信号G发送至“与”门431。
[0047] 限制寄存器434中存储的限值和移位寄存器441的位数,可确定执行单元的最大期望使用率。移位寄存器的位数越大,使用率限制器436的粒度越细,并且测量窗口越长。例如,移位寄存器的位数可可达到5至100位,特别是10至50位。
[0048] 测量执行单元的最近实际使用率可以允许仅当最近实际使用率已经相对较高时才扩展表观(apparent)使用率。提高已经大量使用的执行单元的使用率可以允许更好地检测大量使用的执行单元是否真的代表给定应用的性能的瓶颈。
[0049] 现在参考图6,示出了根据本公开的实施例的包括具有输入端511的发布单元510、具有输入端521的执行单元520以及使用率控制器单元530的第五示例性处理器核500。关于发布单元510、输入511、执行单元520、输入521和使用率控制器单元530这些元件彼此的交互,参考以上对于图1的第一示例性处理器核100及其相应的元件(即,发布单元110、进一步的输入111、执行单元120、进一步的输入121和使用率控制器130)的说明。
[0050] 使用率电路540对应于使用率电路440,并且还包括移位寄存器541和计数器542。特别地,还可以将使用率电路540修改得用于如上所述的多个执行单元。
[0051] 多路复用器550从使用率限值器536接收信号,并根据其值将上限寄存器538中存储的上限或下限寄存器539中存储的下限发送到比较器533。比较器533将所接收的值与从随机数发生器535接收的随机数进行比较,并向“与”门531发送取决于比较结果的选通信号G。
[0052] 所提出的使用率控制器单元530可以允许基于所测量的使用率与期望使用率的比较来控制使用率。如果测量的使用率大于期望使用率,则可以选择发送选通信号的高概率。反之亦然,如果所测量的使用率小于期望使用率,则可以选择传输选通信号的较低概率。
[0053] 现在参考图7,示出了根据本公开的实施例的描述用于检测给定应用的处理器核中的瓶颈的方法的步骤的流程图。在步骤702,控制处理器核的执行单元的使用率,该执行单元执行被转发到执行单元的命令。在步骤704,可以基于使用率来测量应用性能。使用率对应于在其期间执行单元正在执行命令的总观察时段的一部分。
[0054] 在一些实施例中,发布单元可用于基于修改的就绪信号将命令转发到执行单元。进一步,在一些实例中,可以限制在其期间就绪信号指示执行单元可以开始执行命令的时段。
[0055] 在其它实施例中,可基于随机信号生成修改的就绪信号,并基于期望使用率来控制使用率。
[0056] 因此,本公开的实施例涉及一种包括执行单元的处理器核,其中,执行单元可操作用于执行被转发到执行单元的命令;以及与执行单元操作性地耦合的使用率控制器。使用率控制器可操作用于控制执行单元的使用率,该使用率对应于在其期间执行单元正在执行命令的总观察时段的一部分。
[0057] 根据实施例,使用率控制器可操作用于从由执行单元发送的就绪信号生成修改的就绪信号,该就绪信号指示执行单元准备好接收命令。
[0058] 根据另一实施例,处理器核包括可操作用于基于修改的就绪信号将命令转发至执行单元的发布单元。
[0059] 在另一实施例中,使用率控制器包括使用率限制器,该使用率限制器可操作用于限制在其期间就绪信号指示执行单元可以开始执行命令的时段。
[0060] 根据其它实施例,使用率控制器包括用于对由执行单元生成的就绪信号进行采样的移位寄存器以及用于基于移位寄存器的内容来生成修改的就绪信号的电路。
[0061] 根据另一实施例,使用率控制器包括用于生成随机信号的随机发生器以及用于基于随机信号生成修改的就绪信号的电路。
[0062] 在实施例中,执行单元是加载‑储存单元的一部分。执行单元也可以是矢量单元和/或二进制编码的十进制单元(BCD单元)。
[0063] 根据又一实施例,执行单元是算术单元。
[0064] 此外,本公开涉及一种用于检测或分析给定应用的处理器核中的瓶颈的方法,包括:控制处理器核的至少一个执行单元的使用率;以及测量应用性能。
[0065] 在实施例中,该方法包括从由执行单元发送的就绪信号生成修改的就绪信号,该就绪信号指示执行单元准备好接收命令。
[0066] 根据又一实施例,该方法包括用发布单元基于修改的就绪信号将命令转发到执行单元。
[0067] 根据其它实施例,该方法包括限制在其期间就绪信号指示执行单元可开始执行命令的时段。
[0068] 在另一实施例中,该方法进一步包括基于随机信号生成修改的就绪信号。
[0069] 根据进一步的实施例,该方法包括基于期望使用率来控制使用率。
[0070] 根据另一个实施例,该方法进一步包括:控制第二执行单元的第二使用率;确定应用性能对执行单元的使用率和第二执行单元的第二使用率的依赖。
[0071] 本发明可以是任何可能的技术细节集成水平的系统、方法、和/或计算机程序产品。计算机程序产品可包括其上具有用于使处理器执行本发明的各方面的计算机可读程序指令的计算机可读存储介质。
[0072] 计算机可读存储介质可以是可保留和存储供指令执行设备使用的指令的有形设备。计算机可读存储介质可以是,例如但不限于,电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备、或者上述的任意合适的组合。计算机可读存储介质的更具体示例的非穷尽列表包括以下各项:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式紧凑盘只读存储器(CD‑ROM)、数字通用盘(DVD)、记忆棒、软盘、诸如穿孔卡或具有记录在其上的指令的槽中的凸出结构之类的机械编码设备、以及上述各项的任何合适的组合。如本文所使用的计算机可读存储介质不应被解释为暂时性信号本身,例如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,穿过光纤电缆的光脉冲)或通过导线发射的电信号。
[0073] 本文所述的计算机可读程序指令,可以从计算机可读存储介质下载到相应的计算/处理设备,或者通过网络(例如,互联网、局域网、广域网和/或无线网络)下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输纤维、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口接收来自网络的计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
[0074] 用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或以一种或多种编程语言的任何组合编写的源代码或目标代码,这些编程语言包括面向对象的编程语言(如Java、Smalltalk、C++等)和常规的过程编程语言(如“C”编程语言或类似的编程语言)。计算机可读程序指令可以完全地在用户计算机上执行、部分在用户计算机上执行、作为独立软件包执行、部分在用户计算机上部分在远程计算机上执行或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可通过任何类型的网络(包括局域网(LAN)或广域网(WAN))连接至用户计算机,或者可连接至外部计算机(例如,使用互联网服务提供商通过互联网)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来使电子电路个性化来执行计算机可读程序指令,以便执行本发明的各方面。
[0075] 本文参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图来描述本发明的各个方面。应当理解,流程图和/或框图的每个框以及流程图和/或框图中各框的组合,都可以通过计算机可读程序指令实现。
[0076] 这些计算机可读程序指令可被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现在流程图和/或框图的或多个框中指定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置、和/或其他设备以特定方式工作,从而,其中存储有指令的计算机可读存储介质包括包含实现流程图和/或框图的框中规定的功能/动作的方面的指令的制造品。
[0077] 也可将计算机可读程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的处理,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图中的或多个方框中规定的功能/动作。
[0078] 附图中的流程图和框图示出了根据本发明的各种实施例的系统、方法和计算机程序产品的可能实现方式的架构、功能和操作。对此,流程图或框图中的每个框可表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些备选实现中,框中标注的功能可以不按照图中标注的顺序发生。例如,取决于所涉及的功能,连续示出的两个框实际上可以基本上同时执行,或者这些框有时可以以相反的顺序执行。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作或执行专用硬件与计算机指令的组合的专用的基于硬件的系统来实现。
[0079] 虽然已经使用数字和字母顺序地或序列地标识了所公开的方法的步骤以及所公开的系统和环境的组件,但是这样的编号或字母并非是指示这样的步骤必须以所列举的顺序执行,而是仅提供以有助于清楚地参考方法的步骤。此外,方法的步骤可以并行地执行以执行它们的所述功能。
[0080] 已经出于说明的目的呈现了本发明的各种实施例的描述,但并不旨在是详尽的或者限于所公开的实施例。在不脱离所描述的实施例的范围的情况下,许多修改和变化对于本领域普通技术人员来说是显而易见的。这里使用的术语被选择来最好地解释实施例的原理、实际应用或对在市场中找到的技术的技术改进,或者使得本领域普通技术人员能够理解这里公开的实施例。