处理器指令发布扼制

阅读:554发布:2021-06-14

专利汇可以提供处理器指令发布扼制专利检索,专利查询,专利分析的服务。并且本公开涉及处理器指令发布扼制。一种用于通过扼制所选择的有问题的指令的发布来降低功率消耗的系统和方法。处理器内的功率扼制单元维护针对相关联的指令类型的指令发布计数。指令类型可以是由处理器内的运行核心运行的所支持的指令类型的子集。指令类型可以是基于用于这些类型的指令处理的高功率消耗估计值来 选定 的。功率扼制单元可以确定给定指令发布计数超过给定 阈值 。作为响应,功率扼制单元可以选择给定指令类型来限制相应的发布比率。功率扼制单元可以为所选择的给定指令类型中的每种指令类型选定发布比率并使相关联的发布比率限制为选定发布比率。对给定指令类型和相关联的发布比率限制的选择是可编程的。,下面是处理器指令发布扼制专利的具体信息内容。

1.一种处理器,包括:
调度器,所述调度器被配置为选择和发布指令;
运行核心,所述运行核心被配置为接收和运行所发布的指令;以及
功率扼制单元,其中,所述功率扼制单元被配置为:
维护针对一种或多种指令类型的一个或多个指令发布计数,其中,维护给定指令发布计数包括:
针对给定指令类型的指令被发布给所述运行核心的每个时钟周期使所述给定指令发布计数递增第一数量;以及
针对没有给定指令类型的指令被发布给所述运行核心的每个时钟周期使所述给定指令发布计数递减第二数量,
以及
响应于确定所述一个或多个指令计数中的给定指令发布计数超过阈值
针对限制的指令发布比率来选择所述一种或多种指令类型中的至少一种指令类型,以及
为所述至少一种指令类型选定新的发布比率。
2.如权利要求1所述的处理器,其中,所述功率扼制单元还被配置为基于用软件写出的功率扼制代码来执行所述选择和所述选定。
3.如权利要求1所述的处理器,其中,所述功率扼制单元还被配置为基于所述处理器的工作功率状态来执行所述选择和所述选定。
4.如权利要求3所述的处理器,其中,所述功率扼制单元还被配置为基于所述处理器的工作功率状态来为所述一种或多种指令类型中的每种指令类型选择相应的阈值。
5.如权利要求3所述的处理器,其中,所述功率扼制单元还被配置为进一步基于哪个指令发布计数超过了相应的阈值来执行所述选择和所述选定。
6.如权利要求1所述的处理器,其中,所述功率扼制单元还被配置为响应于所述确定来改变所述第一数量和所述第二数量中的一者或多者。
7.如权利要求1所述的处理器,其中,所述指令类型包括单指令多数据(SIMD)指令。
8.一种降低功率消耗的方法,包括:
维护针对一种或多种指令类型的一个或多个指令发布计数,其中,维护给定指令发布计数包括:
针对给定指令类型的指令被发布给运行核心的每个时钟周期,使所述给定指令发布计数递增第一数量,以及
针对没有给定指令类型的指令被发布给所述运行核心的每个时钟周期使所述给定指令发布计数递减第二数量;
以及
确定所述一个或多个指令发布计数中的给定指令发布计数超过给定阈值;
响应于所述确定:
选择一种或多种指令类型来限制相应的发布比率;
为所选择的一种或多种指令类型中的每种指令类型选定发布比率;以及使所选择的一种或多种指令类型中的每种指令类型的相关联的发布比率限制为相应的选定发布比率。
9.如权利要求8所述的方法,还包括基于用软件写出的功率扼制代码来执行所述选择和所述选定。
10.如权利要求8所述的方法,还包括基于处理器的工作功率状态来执行所述选择和所述选定。
11.如权利要求10所述的方法,还包括基于所述处理器的工作功率状态来为所述一种或多种指令类型中的每种指令类型选择相应的阈值。
12.如权利要求10所述的方法,还包括进一步基于哪个指令发布计数超过了相应的阈值来执行所述选择和所述选定。
13.如权利要求8所述的方法,还包括响应于所述确定来改变所述第一数量和所述第二数量中的一者或多者。
14.如权利要求8所述的方法,其中,所述指令类型包括单指令多数据(SIMD)指令。
15.一种功率扼制单元,包括:
与调度器的第一接口,所述调度器被配置为选择和发布指令;
与运行核心的第二接口,所述运行核心被配置为接收和运行所发布的指令;
扼制控制逻辑器,其中,所述扼制控制逻辑器被配置为:
基于经由所述第二接口检测到所发布的指令来维护针对一种或多种指令类型的一个或多个指令发布比率,其中,所述指令类型是由所述运行核心运行的所支持的指令类型的子集,其中维护给定指令发布比率包括:
针对给定指令类型的指令被发布给所述运行核心的每个时钟周期,使与所述给定指令发布比率对应的给定指令发布计数递增第一数量,以及
针对没有给定指令类型的指令被发布给所述运行核心的每个时钟周期使所述给定指令发布计数递减第二数量;
确定所述一个或多个指令发布比率中的给定指令发布比率超过给定阈值;
响应于所述确定:
选择一种或多种指令类型来限制相应的发布比率;
为所选择的一种或多种指令类型中的每种指令类型选定发布比率;以及经由所述第一接口发送防止所选择的一种或多种指令类型中的每种指令类型的相关联的发布比率超过相应的选定发布比率的控制信号
16.如权利要求15所述的功率扼制单元,其中,所述扼制控制逻辑器还被配置为基于用软件写出的功率扼制代码来执行所述选择和所述选定。
17.如权利要求15所述的功率扼制单元,其中,所述扼制控制逻辑器还被配置为基于处理器的工作功率状态来执行所述选择和所述选定。
18.一种电子设备,包括:
调度器,所述调度器被配置为选择和发布指令;
与运行核心的接口,所述运行核心被配置为接收和运行所发布的指令;
功率管理器,所述功率管理器被配置为基于所述设备内的活动来确定功率状态代码;
以及
控制逻辑器;
其中,所述功率管理器还被配置为将功率扼制代码递送给所述控制逻辑器,其中,所述功率扼制代码与当前功率状态代码相关联;并且
其中,所述控制逻辑器被配置为:
维护针对一种或多种指令类型的一个或多个指令发布计数,其中,维护给定指令发布计数包括:
针对给定指令类型的指令被发布给所述运行核心的每个时钟周期使所述给定指令发布计数递增第一数量;以及
针对没有给定指令类型的指令被发布给所述运行核心的每个时钟周期使所述给定指令发布计数递减第二数量;以及
响应于确定所述一个或多个指令计数中的给定指令发布计数超过阈值:
基于所述功率扼制代码选择一种或多种指令类型来限制相应的发布比率;
基于所述功率扼制代码为所选择的一种或多种指令类型中的每种指令类型选定发布比率;以及
响应于确定满足合格条件,使所选择的一种或多种指令类型中的每种指令类型的相关联的发布比率限制为相应的选定发布比率。
19.一种电子设备,包括如权利要求1-7中任一项所述的处理器。
20.一种降低功率消耗的设备,包括:
用于维护针对一种或多种指令类型的一个或多个指令发布计数的装置,其中,用于维护给定指令发布计数的装置包括:
用于针对给定的指令类型的指令被发布给运行核心的每个时钟周期使所述给定指令发布计数递增第一数量的装置;以及
用于针对没有给定的指令类型的指令被发布给所述运行核心的每个时钟周期使所述给定指令发布计数递减第二数量的装置,以及
用于确定所述一个或多个指令发布计数中的给定指令发布计数超过给定阈值的装置;
用于响应于所述确定,选择一种或多种指令类型来限制相应的发布比率,为所选择的一种或多种指令类型中的每种指令类型选定发布比率,以及使所选择的一种或多种指令类型中的每种指令类型的相关联的发布比率限制为相应的选定发布比率的装置。
21.如权利要求20所述的设备,还包括用于基于用软件写出的功率扼制代码来执行所述选择和所述选定的装置。
22.如权利要求20所述的设备,还包括用于基于处理器的工作功率状态来执行所述选择和所述选定的装置。
23.如权利要求22所述的设备,还包括用于基于所述处理器的工作功率状态来为所述一种或多种指令类型中的每种指令类型选择相应的阈值的装置。
24.如权利要求22所述的设备,还包括用于进一步基于哪个指令发布计数超过了相应的阈值来执行所述选择和所述选定的装置。
25.如权利要求20所述的设备,其中,还包括用于响应于所述确定来改变所述第一数量和所述第二数量中的一者或多者的装置。
26.如权利要求20所述的设备,其中,所述指令类型包括单指令多数据(SIMD)指令。
27.一种处理器,包括如权利要求15至17中任一项所述的功率扼制单元。
28.一种电子设备,包括如权利要求27所述的处理器。

说明书全文

处理器指令发布扼制

技术领域

[0001] 本发明涉及计算系统,并且更具体地,涉及通过扼制对所选择的有问题的指令的发布来有效地降低功耗。

背景技术

[0002] 每一代半导体处理器核心上的器件和金属路线的几何尺寸越来越小。因此,在片上基板面的给定面积内提供越来越多功能。结果,诸如膝上型计算机、平板计算机、智能电话、视频相机之类的移动装置越来越流行。通常,这些移动装置从一个或多个电池单元接收电。因为电池具有有限的容量,所以它们需要被定时地连接到外部充电器来充电。这些移动装置的一个关键问题是功率消耗。当功率消耗增大时,这些装置的电池寿命缩短并且再充电的频率增大。
[0003] 由于片上的集成电路密度随着多个流线、更大的缓存和更复杂的逻辑而增多,可以每时钟周期地切换的节点和总线的数目也显著增多。因此,功率消耗增加。另外,软件应用可能运行使得硬件达到高功率耗散值的特定计算机程序代码。这样的代码可能不是故意地或故意地(例如,功率病毒)这样做。功率耗散可能由于程序代码内多次发生给定指令类型而爬升。该功率耗散值可能达到或超过芯片的热设计功率(TDP)或甚至最大芯片功率耗散。
[0004] 除了以上所述以外,移动装置的冷却系统可能是针对给定热设计功率(TDP)或热设计点设计的。冷却系统在不超过半导体芯片的最高结温的情况下可以能够耗散TDP值。然而,给定指令类型的多次发生可能使得功率耗散超过半导体芯片的TDP。此外,存在电源的电流限制,该电流限制也可能被超过。如果功率模式不改变芯片的工作模式或关断芯片内的特定模,则电池可能被很快放电。另外,物 理损坏可能发生。尽管管理峰值功率耗散的一种方式可以是简单地限制指令发布以使得其不会超过特定阈值,但是,这可能导致整体性能的不可接受的降低。
[0005] 鉴于以上所述,期望通过扼制所选择的指令的发布来降低功率消耗的高效方法和机制。

发明内容

[0006] 构想到用于通过扼制所选择的指令的发布来降低功率消耗的方法和机制。
[0007] 在一个实施例中,一种处理器包括功率扼制单元。该功率扼制单元可以在与调度器相同的流水线级内使用。该功率扼制单元维护一种或多种指令类型的一个或多个指令发布计数。所述指令类型可以是由处理器内的运行核心运行的所支持的指令类型的子集。指令类型可以是基于用于这些类型的指令处理的高功率消耗估计值来选定的。例如,浮点(FP)单指令多数据(SIMD)指令类型可以具有宽数据通道以用于在多周期潜伏期期间处理矢量元素。在维护指令发布计数时的同时,功率扼制单元可以确定给定指令发布计数超过给定阈值。作为响应,功率扼制单元可以选择一种或多种指令类型来限制相应的发布比率。
[0008] 对一种或多种指令类型的选择可以基于功率状态估计。可替换地,该选择可以基于用户经由软件作出的改变。功率扼制单元可以为所选择的一种或多种候选指令类型中的每一种候选指令类型选定发布比率。对发布比率的该选定还可以基于特定控制寄存器的软件更新或功率状态估计。功率扼制单元可以使所选择的一种或多种候选指令类型中的每一种候选指令类型的相关联的发布比率限制为相应的选定发布比率。因此,发布比率限制可以改变或者是可编程的。
[0009] 参考以下描述和附图将进一步理解这些和其它实施例。

附图说明

[0010] 图1是执行无序运行的处理器核心的一个实施例的一般框图
[0011] 图2是用于半导体芯片的功率管理的一个实施例的一般框图。
[0012] 图3是图示出功率扼制单元的一个实施例的一般框图。
[0013] 图4是图示出用于控制特定指令类型的指令发布比率的方法的一个实施例的一般框图。
[0014] 图5是图示出扼制表的一个实施例的一般框图。
[0015] 图6是图示出限制指令发布比率的一个实施例的一般框图。
[0016] 图7是图示出限制指令发布比率的另一实施例的一般框图。
[0017] 图8是图示出限制指令发布比率的又一实施例的一般框图。
[0018] 图9是用于控制特定指令类型的指令发布比率的方法的一个实施例的一般框图。
[0019] 尽管本发明容易有各种修改和替代形式,但是其具体实施例将在附图中通过示例方式示出并且将在这里进行详细描述。然而,应当理解,附图以及对其的详细描述并不旨在将本发明限制于所公开的具体形式,而是相反,本发明要涵盖落在在本发明的由权利要求书限定的精神和范围以内的所有修改例、等同例和替换例。如贯穿本申请所使用的,词语“可以”以许可含义(即,意味着有可能)使用,而不是以强制含义(即,意味着必须)使用。类似地,词语“包括”意味着包括但不限于。
[0020] 各种单元、电路或其它组件可以描述为“被配置为”执行一个或多个任务。在这样的上下文中,“被配置为”是对结构的广义描述,一般是指“具有”在操作期间执行所述一个或多个任务的“电路”。因此,单元/电路/组件能够被配置为执行任务,即便该单元/电路/组件当前并没有在工作。总之,构成与“被配置为”的结构的电路可以包括硬件电路。同样地,在说明中为了方便起见,各种单元/电路/组件可以被描述为执行一个或多个任务。这样的说明应当被理解为包括短语“被配置为”。对被配置为执行一个或多个任务的单元/电路/组件的描述明确地不意图调用该单元/电路/组件援用美国专利法第112条第6款解释。

具体实施方式

[0021] 在以下描述中,阐述了大量具体细节以提供对本发明的透彻理解。然而本领域普通技术人员应当认识到,本发明可以在没有这些具体细节的情况下实施。在一些实例中,没有详细示出公知的电路、结构和技术以避免模糊本发明。
[0022] 参考图1,示出图示出执行无序运行的处理器核心100的一个实施例的一般框图。处理器100可以利用多级流水线来处理指令。指令缓存104可以存储用于软件应用的指令。
可以从指令缓存104取回用由地址选择逻辑102递送的地址指示的一个或多个指令。如果不存在指令缓存失中的话,每个时钟周期可以从指令缓存104取回多个指令。下一取回预测器106可以递增地址。分支方向预测器108可以耦合到下一取回预测器106和后面流水级中的控制流评估逻辑112中的每一个。预测器106可以预测使指令流的流从运行下一后续指令改变的指令的信息。
[0023] 解码单元110可以对由多个取回的指令组成的操作码(opcode)进行解码。可替换地,所述指令可以被分割成多个微指令,或微操作码(micro-op)。这里使用的术语“指令”和“微操作码”可互换使用,因为本发明可以用于利用任一种实施方式的体系架构。解码单元110可以分配分派队列114中的条目。在一个实施例中,控制流评估模块112可以更改地址选择器102中的指令取回。例如,与非条件分支操作码相关联的绝对地址值可以被发送至地址选择器102。分派队列114中的指令具有相关联的操作数和由重命名器阵列118重新命名的目的地标识符。重命名器阵列118可以从自由列表分配器120接收候选名称。
[0024] 依赖性融合模块122可以为接收的指令生成依赖性矢量。在之前的流水线级中选择的经重新命名的标识符可以用来寻找和指示指令之间的依赖性。依赖性融合模块122可以向调度器124提供所述指令及相关联的经重新命名的标识符、程序计数器(PC)值、依赖性矢量等。
[0025] 调度器124可以对指令进行调度以供在运行核心130中运行。当操作数可用并且硬件资源也是可用的时,指令可以被从调度器124无序地发布给运行核心130内的功能单元中的一个功能单元。调度器124可以从体系架构的寄存器文件(未示出)或从操作数旁路逻辑读取其源操作数。源操作数可以被提供给运行核心130.
[0026] 运行核心130可以检测指令运行期间的各种事件,这些事件可以被报告给调度器124。两个示例包括错误预测的分支指令和重放的加载/存储指令。可以检测各种异常。
两个示例包括针对存储器访问或针对以无特权的模式运行有特权的指令的保护异常和针对无地址转译的异常。这些异常可以使得对应的异常处理例程通过例如微代码116而被运行。
[0027] 运行核心可以包括加载/存储单元140。加载/存储单元140可以包括用于存储与存储指令对应的地址的存储缓冲器,用于存储与存储指令对应的存储数据的存储队列以及用于存储针对存储指令的地址和数据两者的加载缓冲器。加载/存储单元140可以连接至数据缓存(未示出)。处理器100可以包括用于指令缓存104和数据缓存中的每一个的转译后备缓冲器(TLB),以避免在执行缓存访问时执行完全存储器转译的成本。
[0028] 运行核心130可以包括执行至少加、减、偏移、按位逻辑运算、循环和/或其它功能的若干计算单元。在所示示例中,运行核心130包括整数算术逻辑单元(ALU)132、整数ALU和分支解析逻辑134的组合、具有浮点加减和单指令多数据(SIMD)计算逻辑的浮点单元136,以及具有浮点乘和SIMD计算逻辑的浮点单元138。
[0029] SIMD指令可以在多个数据通道中执行相同的运算。SIMD指令可以利用与指令集体系架构(ISA)中由其它指令使用的体系架构寄存器文件分离的寄存器文件。所述SIMD指令的寄存器可以用作相同数据类型的元素的矢量。SIMD指令可以用来支持媒体加速信号 处理和图形。处理器100可以支持有符号和无符号的单精度和双精度浮点运算。这些SIMD指令中的一个或多个可以具有多周期潜伏期(latency)。
[0030] 由于繁重的处理和漫长的潜伏期,特定指令的运行可能从电源汲取可观的电流量。相应地,这些识别的指令消耗显著的功率。这些高功率指令可以称为有问题的指令。可以基于时钟周期来改变这些有问题的指令的发布比率,以便在芯片上保持给定水平的功率消耗。例如,功率扼制150可以监视有问题的指令的发布比率。当合格条件出现时,功率扼制可以使有问题的指令的发布比率限制到可编程的降低比率。
[0031] 现在参见图2,示出图示出半导体芯片的功率管理系统200的一个实施例的一般框图。在不同实施例中,处理器100可以被配置为使用功率扼制单元150来限制特定指令类型的发布比率。功率扼制单元150可以用软件或硬件控制。在一个实施例中,处理器100内的选定硬件配置寄存器270内的特定比特字段可以由软件层260利用扼制代码来更新。功率扼制单元可以使用扼制代码来确定特定指令类型的指令发布比率限制。软件层260可以是用户程序、操作系统中的内核或其它软件。在可替代实施例中,其它参数值而不是扼制代码可以用来设置特定指令类型的指令发布比率的限制。以下进一步描述这些其它参数。
在又一些其它实施例中,功率管理器210可以调节由功率扼制单元150用来设置特定指令类型的指令发布比率的限制的扼制代码或其它参数。
[0032] 处理器100可以是任何集成电路(IC)。在各个实施例中,处理器100可以包括一个或多个核心,每个核心具有片上指令和数据缓存。处理器100可以是具有单个流水线或多个流水线的超标量体系架构处理器。在另一实施例中,处理器100可以是专用IC(ASIC)。在又一实施例中,处理器100可以包括片上系统(SOC)上的一个或多个计算模块。任何晶体管族可以用来实现处理器100。示例包括金属化物半导体场效应晶体管(MOSFET)和双 极性晶体管(BJT)。
[0033] 在一个实施例中,软件层260可以利用扼制代码来更新处理器100内的硬件配置寄存器270。在一个实施例中,处理器100上的输入/输出(I/O)引脚可以提供对硬件配置寄存器的访问。可替换地,来自用户软件程序或操作系统的内核的特定指令可以由处理器100的硬件运行并且利用指定的值更新配置寄存器。在一个示例中,配置寄存器270是具有保留杂项位字段的监管级别异常处理寄存器。杂项位字段的指定部分可以被谨慎地用于存储扼制代码。也可以使用用户级别和监管级别配置寄存器的其他示例。另外,其它值也可以存储在硬件配置寄存器270中,其它值的示例可以包括指令发布比率限制。其它示例包括以下描述的用来维护指令计数和生成指令发布比率限制的递增值和递减值。可替换地,硬件逻辑可以用来执行如下所述的这些步骤。
[0034] 在一个实施例中,功率管理器状态机220可以用来从处理器100收集数据。在运行一个或多个应用时,处理器100的所估计的实时功率消耗可以被递送给功率管理器状态机220。各种技术中的任何技术都可以用来确定处理器100的功率消耗。在一个实施例中,片上电流传感器可以将汲取电流的估计值提供给功率管理器状态表230。在另一实施例中,数据可以包括所选择的经采样的控制和数据信号的二进制逻辑值或数字加权值。在收集数据之后,功率管理器状态机220可以估计处理器100的功率消耗并确定对处理器100的操作参数的改变。
[0035] 在各个实施例中,功率目标可以被指派给处理器100。功率目标可以例如是热设计功率值。热设计功率(TDP)也可以称为热设计点,代表冷却系统能够为处理器100有效耗散的最大功率量。如果在处理器100上运行高功率应用或病毒,则功率管理器状态机220可以调节工作电压、工作频率或两者。一般而言,功率消耗与处理器100的工作频率和工作电压成比例。响应于从处理器100接收到更新的功率估计数据,功率管理器状态机220可以从若干可能的功率性能状态 中选择功率性能状态。所选择的功率性能状态可以介于最大性能状态和最小功率状态之间。最大性能状态可以对应于最大工作频率并且最小功率状态可以对应于最小工作频率。介于这两个状态之间的中间的离散的功率性能状态可以包括针对工作频率和工作电压的组合的给定折合值(scaled value)。
[0036] 由功率管理器状态机220选择的功率性能状态可以用给定的功率状态代码指示。该功率状态代码可以用来对功率状态表230进行索引。在一个实施例中,功率状态表230包括多个条目240a-240g,每个条目包括多个字段242-248。字段242可以包括功率状态代码。从功率管理器状态机发送的功率状态代码可以被与每个条目240a-240g的字段242中所存储的值相比较。条目240a-240g中具有匹配的功率状态代码的给定条目可以用来将存储在其它字段244-248中的一个或多个值提供给处理器100。字段244可以存储与由存储在字段242中的功率状态代码指示的功率性能状态相关联的工作频率。类似地,字段246可以存储与由存储在字段242中的功率状态代码指示的功率性能状态相关联的工作电压。
[0037] 字段248可以存储功率扼制代码。功率扼制代码可以与由处理器100处理的指令类型的特定子集相关联。指令类型的特定子集可以称为候选指令类型。功率扼制代码可以指示候选指令类型的指令发布限制。在一个示例中,给定功率扼制代码可以指示用百分比表示的指令发布限制。该百分比可以定义为在给定数目的时钟周期内允许发布候选指令类型的指令的时钟周期的最大数目。例如,50%的百分比可以指示对于每两个时钟周期最多在一个时钟周期中发布候选指令类型的指令供运行。66%的百分比可以指示对于每3个时钟周期可以在最多2个时钟周期中发布候选指令类型的指令供运行。其它发布比率限制百分比是可能的并且被如以下讨论的那样构想到。随着功率性能状态在处理器100上的应用的运行期间改变,功率扼制代码也可以改变来或者提供更多性能或者降低功率消耗。
[0038] 给定候选指令类型组可以包括已经被确定或估计为在运行期间消 耗可观功率的一种或多种指令类型。例如,单指令多数据(SIMD)指令通常具有宽数据通道以用于同时处理多个矢量元素。另外,一个或多个SIMD指令可以具有可观的潜伏期。对于显著数目的数据通道具有8到12个时钟周期或更多时钟周期的潜伏期的指令会在指令运行期间从电源汲取可观数量的电流。
[0039] 所识别的高功率消耗指令类型的一些示例包括SIMD浮点(FP)乘加、SIMD FP乘、SIMD FP加、SIMD FP平方根、SIMD倒数平方、SIMD加等等。其它高功率消耗指令是可能的并且可构想到。给定候选指令类型组可以包括所识别的指令类型中的一种或多种指令类型。给定候选指令类型组可以大于第二组并且,当与高的功率消耗降低相关联的给定功率扼制代码被从功率状态表230选择时,被与更强的指令发布比率限制相关联,[0040] 现在参见图3,示出图示出功率扼制单元300的一个实施例的一般框图。在一个实施例中,功率扼制单元300位于处理器100内并且在与调度器124同一流水线级内使用。功率扼制单元300可以包括扼制表310。在一个实施例中,扼制表310包括多个条目320a-320j,每个条目包括多个字段322-328。字段322可以存储功率扼制代码。扼制表310可以用功率扼制代码值来索引。在一个实施例中,功率扼制代码值可以存储在诸如状态控制寄存器之类的配置寄存器中。此特定配置寄存器可以由软件更新,所述软件诸如是由设计者写出的软件应用,操作系统或其它。在另一实施例中,功率扼制代码可以是从如图2所示的功率状态表230发送的。用于维护功率扼制代码的其它机制是可能的并且可构想到。
所维护的功率扼制代码可被与每个条目320a-320g中的字段322中所存储的值相比较。条目320a-320g中具有匹配的功率扼制代码的给定条目可以用来将存储在其它字段324-328中的值提供给扼制逻辑340。
[0041] 功率扼制表310中的字段324可以存储与存储在字段322中的功率扼制代码相关联的候选指令类型的一个或多个标识符。字段326可以存储与存储在字段324中的候选指令类型和存储在字段322中的功 率扼制代码两者都相关联的阈值指令发布计数。字段326可以可替换地存储指令发布比率的阈值值而不是指令发布计数的阈值值。可以使用与由处理器100为了运行所识别的候选指令类型的指令所执行的处理量相对应的其它测量值。存储在字段326中的阈值值可以被扼制逻辑340用来确定何时限制所识别的候选指令类型的指令比率。扼制逻辑340可以使该指令比率限制为存储在字段328中的限制值。
[0042] 监视单元330可以维护针对一种或多种候选指令类型的指令发布计数。该计数值可以每个时钟周期地并依据给定候选指令类型的指令是否被发布给处理器100内的运行核心130而被更新。在一个实施例中,可以为每个候选指令类型维护个别的计数。在另一实施例中,可以为一组两种或更多种候选指令类型维护一个计数。给定的候选指令类型可以被包括在一个候选指令类型组或多个候选指令类型组中。
[0043] 在一个实施例中,针对给定候选指令类型的指令被发布给运行核心130的每个时钟周期,针对给定候选指令类型的计数器可以被递增1。针对没有给定候选指令类型的指令被发布给运行核心130的每个时钟周期,该计数器可以被递减1。如稍后进一步描述的,在这样的实施例中,发布比率限制为50%。一般,发布比率限制可以对应于递增值与递增值和递减值的和的比。在其它实施例中,可以使用1以外的其它值来作为递增和递减的数量来实现不同的发布比率限制。类似地,递增值可以不同于递减值。例如,可以通过针对给定候选指令类型的指令被发布给运行核心130的每个时钟周期而将递增值设置为2并针对没有给定候选指令类型的指令被发布给运行核心130的每个时钟周期而将递减值设置为3,实现60%的发布比率限制。在各种其它实施例中,递增值和递减值中的每一个都可以是可编程的。在一个实施例中,当该计数器内的值达到或超过存储在表310的条目320a-320j的所选择的条目的字段326中的值时,扼制逻辑340可以开始向调度器124发送控制信号以阻止由存储在字段324中的标识符识别的候选指令类型的指令的发布。
[0044] 在一个示例中,SIMD FP乘加指令类型可以由表310中的条目 320a-320j中的所选择的条目中的字段324识别。等于128的阈值计数值可以存储在字段326中。监视单元330可以具有如在以上描述中那样按1递增和递减的计数器。当监视单元330检测到为128的计数值时,监视单元330可以通知扼制逻辑340。表310中的同一所选择的条目中的字段
328可以存储为50%的发布比率限制。扼制逻辑可以向调度器124发送控制信号以阻止在下一时钟周期中发布任何SIMD FP乘加指令类型的指令。作为阻止的结果,计数值可以被递减到127。在下一时钟周期中,由于计数低于阈值,所以扼制逻辑340可以改变控制信号以消除任何阻止。SIMD FP乘加指令类型的指令可以被发布。计数可以被再次递增至128。
控制信号再次被发送给调度器124来防止发布任何该指令类型的指令。因此,针对SIMDFP乘加的最大发布比率被设置为50%。
[0045] 在一个实施例中,当达到存储在字段326中的预置值时,可以改变递增量和递减量。接着以上示例,如果字段328存储了为66%的发布比率限制,则递减量可以改为2。当SIMD FP乘加指令类型的指令被扼制逻辑340阻止时,相关联的计数值被从128递减为126,而不是127。因此,在对于一个时钟周期被再次阻止之前,准许对于两个时钟周期发布该特定指令类型的指令。SIMD FP乘加的最大发布比率被设置为66%。可以选择其它递增量和递减量来满足其它指定的发布比率限制。例如,可以通过将递增量改为2并使递减量保持为1来达到33%的发布比率限制。
[0046] 在一个实施例中,可以有多个存储在字段326中的阈值值。在这样的实施例中,选择一种或多种候选指令类型来限制相应的发布比率并且为所选择的一种或多种候选指令类型中的每种候选指令类型选定发布比率可以还基于哪个指令发布计数超过了存储在字段326中的相应阈值。
[0047] 继续以上实施例,可以在字段324中识别两个或更多个候选指令类型组。两个或更多个阈值值可以存储在与字段324中所识别的组相关联的字段326中。不是限制所述两个或更多个候选指令类型组中每一个候选指令类型组的发布比率,而是可以基于所述两个或更多个组中的给定组的相应的指令发布计数超过了其阈值来选择所述两个或更多个组中的给定组以限制相应的发布比率。这样的实施例可以限制功率扼制代码的大小并且在定义功率扼制代码时提供更多灵活性。
[0048] 现在参见图4,示出用于控制特定指令类型的指令发布比率的方法400的一个实施例的一般流程图。方法400可以被本领域技术人员修改以便导出可替换实施例。此外,该实施例中的步骤是按照顺次顺序示出的。但是,在另一实施例中,一些步骤可以以与所示出的不同的顺序发生,并且一些步骤可以被并行地执行,一些步骤可以与其它步骤组合,并且可以没有一些步骤。
[0049] 在框402中,给定指令类型可以被选择作为要扼制的候选指令类型。例如,与运行期间相对较高功率消耗相关联的指令类型可以被选择供扼制。在各个实施例中,浮点SIMD指令、加载/存储指令及其它可以是候选。
[0050] 在框404中,可以选定递增值A和递减值B两者以便为候选指令类型确定发布比率限制。例如,在一个实施例中,发布比率限制可以对应于比B/(A+B)。因此,表示为发布候选类型指令的周期与总周期数的百分比的给定限制可以被选择。例如,为了将功率扼制单元和调度器设置到或“拨到”60%的限制,可以选定递增值2和递减值3。这些选定值产生等于3/(2+3)或60%的比。
[0051] 在一个实施例中,所选定的A和B可以是由用户软件选择的,该用户软件更新特定硬件配置寄存器。功率扼制单元可以读取该特定硬件配置寄存器。如之前所述,处理器100的输入/输出(I/O)引脚可以提供对硬件配置寄存器的访问。可替换地,来自用户软件程序或操作系统内核的特定指令可以通过处理器100的硬件被运行并且利用指定值来更新配置寄存器的特定位字段。在又一些其它实施例中,硬件控制逻辑可以选择递增值和递减值。在一些实施例中,硬件控制逻辑可以基于至少功率性能状态值来选择这些值。
[0052] 在图4的框406中,可以为所发布的候选类型指令的计数选择阈 值。该阈值也可以被存储在硬件配置寄存器中的用于所选择的递增值和递减值的特定位字段中。在框408中,当前未被阻止的类型的指令从调度器被发布给运行单元。如果在该时钟周期中发布了任何候选类型指令(条件框410),则在框412中,候选类型指令发布计数被递增递增值。如果该计数值超过所选择的阈值(条件框414),则在框416中,针对发布与阈值相对应的候选类型指令设置阻止。此后,方法400的控制流返回到框408。另一方面,如果在该时钟周期中没有发布候选类型指令(条件框410),则在框418中,候选类型指令发布计数被递减递减值。在各个实施例中,计数可以具有为零的最小值。
[0053] 如果候选类型指令被阻止(条件框420)并且如果该计数值低于所选择的阈值(条件框422),则在框424中,消除或重置对发布候选类型指令的阻止。之后,方法400的控制流返回到框408。由于阻止的消除,候选类型指令可以被选择以供发布。如果候选类型指令未被阻止(条件框420)或如果计数值在所选择的阈值以上(条件框422),则方法400的控制流返回框408。
[0054] 以上对框404和406的描述描述了对递减值、递增值和阈值值的各个选择。可替换地,这些值的特定组合可以被存储在表中。可以利用前述的软件和硬件机制来执行通过选择该表中的特定条目来选择特定组合。以下描述这样的表的其它实施方式。
[0055] 现在参考图5,示出扼制表500的一个实施例的一般框图。如图所示,功率扼制代码可以被存储为二进制值。潜伏期可以用来区分功耗的可观差异。候选指令类型可以基于运行对应指令的估计功率消耗被分组到一起。这里,SIMD FP指令类型用潜伏期被分组。例如,当‘b000的功率扼制代码被选择时,仅具有8时钟周期和12时钟周期的潜伏期的SIMD FP指令类型被选定以供可能的指令发布扼制。当扼制开始时,为66%的发布比率限制可以被用于所识别的具有8时钟周期和12时钟周期的潜伏期的指令类型。
[0056] 在另一实施例中,用于确定何时开始指令发布扼制的阈值值可以 是实际发布比率而不是指令发布计数。例如,当调度器124已经在Y个时钟周期内发布了所识别的候选指令类型的X个指令时,则扼制逻辑340可以每Z个时钟周期阻止相关联的指令。可以保持最后Y个时钟周期的移动窗口,其指示对于这Y个时钟周期中的每个时钟周期,相关联的指令是否已经被发布。
[0057] 在一个实施例中,可以使用Y比特大小的移位寄存器来保持最后Y个时钟周期的移动窗口,其中,Y是整数。计数X可以针对相关联的候选指令类型的指令被发布给运行核心130的每个时钟周期而被递增。一旦Y个时钟周期过去,则当在给定时钟周期期间,没有候选指令类型的指令被发布给运行核心时,计数X也可以被递减,其中,给定时钟周期在当前时钟周期之前出现了Y个时钟周期。
[0058] 再次参见扼制表310,用于给定功率扼制代码的每个字段324-328都可以是可编程的。这些值在程序运行已经开始之后可以从它们的初始值被更改。类似地,表500中用于给定功率扼制代码的每个字段都可以是可编程的。从功率管理器状态机220发送的功率状态代码与功率扼制代码之间的相互关系也可以是可编程的。经由软件,用户可以更新存储与表310或表500内的条目相对应的值的特定控制寄存器。
[0059] 现在参考图6,示出限制指令发布比率的一个实施例的一般框图。如图所示,在该示例中,使用计数阈值3。可以选择任何计数阈值。为了易于图解,使用计数阈值3。在命中阈值之前,递增量和递减量中的每一个具有值1。选择为50%的发布比率限制。因此,在该示例中,在达到阈值之后,递增量和递减量仍然为1。
[0060] 在时钟周期(CC)1中,所识别候选指令类型的有问题的指令被发布给运行核心130。因此,计数从0递增至1。类似地,在CC 2中,有问题的指令被发布并且计数递增。此时,计数递增至2。在CC 3中,可能由于在调度器124内没有有问题的指令可用或者调度器
124内的选择逻辑选择了其它指令供发布,所以没有有问题的指令被选择供发布。相应地,计数从2递减为1。
[0061] 在CC 4和CC 5的每个中,有问题的指令被发布并且计数递增。在CC 5中,计数达到阈值值3。因此,扼制逻辑340可以发送控制信号给调度器124以阻止所识别候选指令类型的任何有问题的指令的发布。在CC 6中,没有有问题的指令被发布而产生阻止,并且计数从3递减为2。由于计数低于阈值,所以阻止消除。在CC 7中,有问题的指令被发布并且计数递增。在CC 7中,计数再次达到阈值值3。在CC 8和CC 9中,像在CC 6和CC 7中一样发生阻止和发布。有问题的指令的发布比率已经达到每两个时钟周期发布一个指令或者时间的50%的最大限制。
[0062] 现在参见图7,示出限制指令发布比率的又一实施例的一般框图。如图所示,在该示例中,再次使用计数阈值3。在命中阈值之前,递增量为1并且递减量具有为1的值。选择为66%的发布比率限制。因此,在该示例中,在达到阈值之后,递减量改变为2。
[0063] 在CC 1到CC 4中,基于调度器124内的选择逻辑和可用性,有问题的指令被发布给运行核心130。计数被维护但是扼制逻辑不阻止有问题的指令的发布直到在CC 5中达到阈值。这里,计数现在被递减2而不是1。在CC 6到CC 8中,有问题的指令被发布给运行核心130而计数递增1。在CC 8中,再次达到阈值。在CC 9中,有问题的指令被阻止发布并且计数现在递减2而不是1。有问题的指令的发布比率已经达到每三个时钟周期发布两个指令或时间的66%的最大限制。
[0064] 现在参考图8,示出发布比率限制的示例的又一实施例的一般框图。如图所示,在该示例中,再次使用计数阈值3。在命中阈值之前,递增量为1并且递减量具有为1的值。选择33%的发布比率限制。因此,在该示例中,在达到阈值之后,递增量变为2。
[0065] 在CC 1到CC 4中,基于调度器124内的选择逻辑和可用性,有问题的指令被发布给运行核心130。计数被维护但是扼制逻辑不阻止有问题的指令的发布直到在CC 5中达到阈值。这里,计数仍然递减1。在CC 7中,由于计数低于阈值,所以有问题的指令被发布给 运行核心130。然而,计数现在递增2而不是1。计数从2变为4。阈值被抑制,所以扼制逻辑340发送控制信号给调度器124以阻止发布有问题的指令。在CC 8中,仍然达到阈值,因此,有问题的指令仍被阻止。有问题的指令的发布比率已经达到每三个时钟周期发布一个指令或时间的33%的最大限制。
[0066] 现在参见图9,示出用于控制特定指令类型的指令发布比率的方法900的一个实施例的一般流程图。方法900可以被本领域技术人员修改以得出可替换实施例。此外,该实施例中的步骤被按照顺次顺序示出。然而,在另一实施例中,一些步骤可以以与所示出的不同的顺序发生,一些步骤可以被并行地执行,一些步骤可以与其它步骤组合,并且可以没有一些步骤。
[0067] 在所示出的实施例中,在框902中,给定指令类型可以被选择作为要扼制的候选指令类型。与执行期间的高功率消耗相关联的指令类型可以被选择。相关联的高功率消耗可能是由于在显著潜伏期期间执行的可观处理量引起的。浮点SIMD指令、加载/存储指令和其它可以是候选。一个或多个候选指令类型组可以被选择。
[0068] 在框904中,可以在一个或多个软件应用的运行期间确定功率扼制代码。在一个实施例中,可以基于在一个或多个软件应用的运行期间估计的功率性能状态来选择功率扼制代码。在另一实施例中,可以从由用户经由软件写出的状态控制寄存器读取功率扼制代码。可以为功率扼制代码选择给定值以便选择给定候选类型指令组和发布比率限制。在一个实施例中,可以基于功率扼制代码来选择指令发布计数的给定阈值。在可替换实施例中,可以基于功率扼制代码来选择指令发布比率而不是指令发布计数的给定阈值。
[0069] 在框906中,在程序运行期间维护所选择的一种或多种指令类型的组中的每个组的指令发布计数。该计数可以按照在程序运行之前确定的常量被递增和递减。在可替换实施例中,该计数可以按照从诸如功率扼制表310之类的表读取的数量被递增和递减。在又一实施例中,可以维护指令发布比率而不是之前所述的计数。
[0070] 如果所维护的计数或比率超过给定阈值(条件框908),则在框910中,候选指令类型中的一种或多种指令类型的一个或多个组被选择为可能要扼制。发布扼制的数量可以至少基于功率扼制代码。在框912中,针对所选择的一个或多个组的发布比率限制基于至少功率扼制代码被选定。在框914中,所选择的一个或多个组的(一个或多个)指令发布比率被限制到(一个或多个)相关联的选定发布比率。如果功率扼制代码不改变(条件框916),则方法900的控制流返回框906。否则,在框918中,指令发布计数的阈值可以基于改变的功率扼制代码被更新。在另一实施例中,指令发布比率的阈值可以基于改变的功率扼制代码被更新。方法900的控制流随后从框918移动到框906。
[0071] 根据一个实施例,提供一种降低功率消耗的设备,包括:用于维护针对一种或多种指令类型的一个或多个指令发布计数的装置,以及用于确定所述一个或多个指令发布计数中的给定指令发布计数超过给定阈值的装置;用于响应于所述确定,选择一种或多种指令类型来限制相应的发布比率,为所选择的一种或多种指令类型中的每种指令类型选定发布比率,以及使所选择的一种或多种指令类型中的每种指令类型的相关联的发布比率限制为相应的选定发布比率的装置。
[0072] 根据一个实施例,该设备还包括用于基于用软件写出的功率扼制代码来执行所述选择和所述选定的装置。
[0073] 根据一个实施例,该设备还包括用于基于处理器的工作功率状态来执行所述选择和所述选定的装置。
[0074] 根据一个实施例,该设备还包括用于基于所述处理器的工作功率状态来为所述一种或多种指令类型中的每种指令类型选择相应的阈值的装置。
[0075] 根据一个实施例,该设备还包括用于还基于哪个指令发布计数超过了相应的阈值来执行所述选择和所述选定的装置。
[0076] 根据一个实施例,用于维护给定指令发布计数的装置包括:用于针对相关联的指令类型的指令被发布给所述运行核心的每个时钟周期 使所述给定指令发布计数递增第一数量的装置;以及用于针对没有相关联的指令类型的指令被发布给所述运行核心的每个时钟周期使所述给定指令发布计数递减第二数量的装置。
[0077] 根据一个实施例,该设备还包括用于响应于所述确定来改变所述第一数量和所述第二数量中的一者或多者的装置。
[0078] 根据一个实施例,所述指令类型包括单指令多数据(SIMD)指令。
[0079] 根据一个实施例,提供一种处理器,包括如上所述的功率扼制单元。
[0080] 根据一个实施例,提供一种电子设备,包括如上所述的处理器。
[0081] 尽管已经相当详细地描述了以上实施例,但是一旦本领域技术人员完全明白了以上公开,则大量变形例和修改例对于本领域技术人员将变得显而易见。权利要求书旨在被解释为涵盖所有这样的变形例和修改例。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈