互斥地激活微处理器资源以控制最大功率的系统和方法

文档序号:6568627阅读:175来源:国知局
专利名称:互斥地激活微处理器资源以控制最大功率的系统和方法
技术领域
本发明一般地涉及微处理器,具体地说,涉及用于控制微处理器中的 功率消耗和损耗的方法。
背景技术
目前,越来越多的电子组件随微处理器一起安装在相对较小的芯片空 间内。随着微处理器中电子组件数量的增加,功率损耗和消耗的问题开始 突显。功率消耗和损耗影响微处理器的设计选择和运行状况。因此,需要 最小化微处理器内的功率消耗和损耗。在下文中,除非特别适用,否则术 语"功率"用于同时包含功率参数的"消耗"和"损耗"两个方面。平均功耗和最大功耗之间具有区别。平均功率指通常由客户运行的一 组应用或程序所平均消耗的功率。节省平均功率可降低有线应用中的能耗, 并延长便携应用中的电池寿命。最大功率是由使用微处理器中的最大数量 资源的代码段所消耗的功率。最大功率对封装的功耗能力以及配电系统的电流传输能力设置了要求。因此,最大功率对于^L处理器的成本具有重大影响。存在多种降低微处理器组件或资源中的功率的技术。时钟选通是一种 此类技术。时钟选通只能节省功率的动态或切换部分。另一种节省功率的 技术称为数据选通。数据选通包括在微处理器组件的输入处插入转变屏障。 这些转变屏障通常实现为'与,或者'或,逻辑门。在不使用微处理器组 件的周期,转变屏障防止到组件的输入切换,这可以节省数据选通组件内 的动态功率或切换功率。与时钟选通相同,数据选通只能节省动态功率或 切换功率,而不能节省泄漏功率。功率选通(也称为Vdd选通)是另一种公知的可降低动态功率和泄漏功率部分的功率节省技术。与时钟选通不同,Vdd选通需要多个时钟周期 来激活Vdd选通的资源,这要求更复杂的控制^4'J。 Vdd选通的资源必须 保持选通最少数量的周期(通常十个周期),以便抵偿与资源的激活和取 消激活过程关联的能量开销。控制」微处理器资源的选通的方法包括反应选通(RG)技术。这些RG 技术用于控制芯片的最高温度和/或微处理器核心或芯片吸取的最大电流。 RG技术使用 一组温度或电流传感器,如果传感器之一读出的温度(或电 流消耗)超过阈值,则传感器生成用于选通微处理器资源的信号。将该阈 值设置为低于封装的功耗能力限制或低于供电系统的电流传输能力。由于基于阈值进行控制,所以RG技术不允许放松对电力或电流传输 系统的要求,必须以相对悲观或保守的级别设置所述阈值,以使反应机制 能够及时触发并避免芯片故障。RG技术使得难以预测处理器核心的性能, 因为反应机制可能在程序执行期间触发。进而,用于节约功率的RG技术 的触发机制可能依赖于诸如温度之类的运行环境因素。此触发机制使微处 理器的性能依赖于运行环境因素。接下来讨论了 RG技术的一些实例。Georgiou等人的美国专利No. 6,047,248和美国专利No. 5,189,314提出了根据从热传感器接收的信息来改 变处理器性能的技术。这些RG技术使用反应节流技术,后者在接收到对 一组性能度量的片上监视所获得的反馈时被激活。另一种控制选通的方法包括完全预测性的选通技术,所述选通技术可 以降低微处理器核心或芯片的平均功率,但是当完全使用所有微处理器资 源时,不能保证在最大功率使用率下的任何功率降低或不能提供最大功率 的任何上限。作为完全预测性的选通技术的一个实例,Ikeda的美国专利 No, 5,504,908披露了使用地址访问信息判定处理器何时处于空闲循环。这 些用于控制选通的技术不允许对影响微处理器成本的封装功耗能力或供电 系统的电流传输能力的要求有任何放松。因此,需要一种或多种技术来控 制微处理器中的功率消耗并最小化最大功率。发明内容本发明的示例性实施例通常包括用于控制微处理器中的功率消耗和损 耗的系统和方法。具体地说,在本发明的一个示例性实施例中,用于控制 微处理器中的功率参数的系统包括用于控制所述微处理器的最大功率的资 源激活控制单元以及两个或更多个资源。所述资源激活控制单元控制所述 资源的激活,以使所述微处理器消耗和损耗的功率不超过可配置为低于所 述最大功率的预定值的功率边界。在本发明的另 一个示例性实施例中,用于控制樣史处理器中的功率参数的方法包括控制所述微处理器的两个或更多个资源的激活;以及将激活的 资源所消耗和耗散的总功率保持为低于功率边界,所述功率边界可以被配 置为低于所述微处理器的最大功率的预定值。从以下将结合附图阅读的对示例性实施例的详细描述,说明了本发明 的这些以及其他实施例、方面、特性和优点,或者从以下将结合附图阅读 的对示例性实施例的详细描述,本发明的这些以及其他实施例、方面、特 性和优点将变得显而易见。


图1示出了本发明的示例性实施例中的互斥资源激活(MERA)控制 单元以及其他处理器核心资源;图2示出了本发明的示例性实施例中的微处理器组件与MERA控制单 元之间的示例性接口;图3是示出本发明的示例性实施例中控制微处理器资源的取消激活和 激活的流程图;图4是示出本发明的示例性实施例中控制微处理器资源的取消激活和 激活的流程图;图5是示出本发明的示例性实施例中的用于资源对的存储在表中的按 需激活和取消激活策略的流程图;图6是示出本发明的示例性实施例中控制微处理器资源的取消激活和激活的流程图;图7是示出本发明的示例性实施例中使用迫切的资源取消激活和按需 资源激活策略来控制资源的互斥激活的流程图;图8示出了本发明的示例性实施例中检查是否需要以及指定互斥资源 (或资源组)的基于表的石更件结构;图9示出了本发明的示例性实施例中控制功率选通的示例性硬件结构;图10是示出本发明的示例性实施例中检查预测指令的状态的流程图; 图11是示出本发明的示例性实施例中检查由MERA控制单元执行的程序指令的不规则行为的流程图;以及图12是示出将指令发出到备选资源来执行以避免激活所请求的选通的资源的流程图。
具体实施方式
图1示出了本发明的示例性实施例中的互斥资源激活(MERA)控制 单元以及其他处理器核心资源。示出了处理器核心10。 MERA控制单元 12以互斥的方式控制处理器核心10的资源。与MERA控制单元12相连 的读取地址预测资源14包括地址读取资源,例如分支预测器(多个)、链 接堆栈等。分支预测器(未示出)可以包括多组分支历史阵列,其可以可 选地单独接通和断开电源。指令高速緩存资源16包括多组指令高速緩存,并具有可选地实施的功 能,所述功能允许选通和激活单个指令高速緩存存储器组。可以通过在关 联的高速緩存集的粒度级别处对指令高速緩存组实施选通控制来单独控制 一个或多个关联的高速緩存集。前端18是指令流水线的前端。前端18包括指令读#*制并可以可选地包括使指令读取引擎(未示出)与指令解码以;^出流水线(未示出)分离的去耦合緩沖区。前端18与MERA控制单元12以及解码逻辑20相 连。解码逻辑20与前端18、 MERA控制单元12,以及发出和停止逻辑22相连。解码逻辑20对处理器指令进行解码并可以生成流水线停止。发出和 停止逻辑22将指令发送到执行资源(未示出)以便执行。发出逻辑22可 以实现保存没有可用操作数的指令的緩冲区。发出逻辑22与MERA控制 单元12、资源26广263,以及微代码引擎24相连。微代码引擎24将一组指定指令实现为微代码。微代码引擎24与 MERA控制单元12和发出逻辑22相连。如果在微代码中实现的指令之一 ii^流水线,则樣i代码引擎24停止从主解码发出流水线发出指令,然后从 微代码引擎24发出一系列孩l代码指令以便执行。与发出逻辑22相连的处理器资源26r263包括功能单元,例如,固点 计算、浮点计算;用于加载和存储的地址计算;分支执行;SIMD (单指 令多数据)以及媒体引擎等。处理器资源26r263中的一个或多个资源可以 维持处理器的体系结构状态。虽然仅示出了三个资源26r263作为实例,但 是本领域的技术人员将理解,可以使用任意数量的资源并且每个资源可以 独自或作为子集纟皮单独取消激活。处理器资源(例如,此处示出的26r263)的功拟艮大程度上决定了微 处理器所消耗和损耗的总功率。因此,降低和控制处理器资源(例如资源 26r263 )消耗的功率可以实现对微处理器总体功率的控制。数据预取资源28将数据预先读取到数据高速緩存30中,以便降低数 据高速緩存未命中的次数。数据高速緩存30包括数据高速緩存资源32r322 以包括具有可选机制(其控制数据高速緩存组的取消激活和激活)的多组 数据高速緩存。可以在关联的数据高速緩存集(未示出)的粒度级别处实 现数据高速緩存组的选通机制。所述选通机制可以单独取消激活一个或多 个关联的数据高速緩存30的集合。将数据高速緩存资源32r322示为两个 示例性组,但是可以使用任意数量的数据高速緩存组。中断控制逻辑34和资源激活控制寄存器36与MERA控制单元12相 连。资源控制激活总线38将MERA控制单元12与处理器核心10上的其 他资源(如读取地址预测单元14、指令高速緩存资源16、处理器资源 26r263、数据预取资源28,以及数据高速緩存30)相连。MERA控制单元12与前端18、解码逻辑20、发出逻辑22和孩吏代码引擎24相连。诸如读取地址预测单元14、指令高速緩存资源16、资源26r263、数 据预取资源28,以及数据高速緩存30之类的资源的部分或全部实现特殊 的输入端口 40r408,所述端口允许这些资源接受控制资源在活动模式与选 通模式之间转变的控制信号。输入端口 4(h-40s示为到处理器资源的连接。 输入端口 4(h-40s通过控制激活总线38将相应的资源与MERA控制单元 12相连。MERA控制单元12通过在资源控制激活总线38上驱动相应的控制信 号来控制多个微处理器资源。总线38可以实现为一组直接控制资源激活的 专用点对点信号,也可以作为实现通信协议的共享总线来实现。所述通信 协议可以包括各种功能,例如,断言在激活控制总线38的单个或多个周期 内^L激活的一个或多个资源的ID (标识)以及净皮取消激活的资源的ID。MERA控制单元12 ^f吏用前端总线42和解码逻辑总线44与核心10的 解码逻辑12或前端18相连,或者同时与解码逻辑12以及前端18相连。 MERA控制单元12使用总线42和44上的这些连接监视处理器流水线的 相应部分的活动并使用此信息控制与激活控制总线38相连的所有处理器 资源在选通才莫式与活动;f莫式之间的转变。除了 MERA控制单元12以夕卜,资源激活控制寄存器36可以可选地控 制处理器资源在活动^^莫式与选通模式之间的转变。控制寄存器总线46将控 制寄存器36与MERA控制单元12相连。控制寄存器36通过诸如系统软件(例如,操作系统、基本输入输出系 统-BIOS等)的读取和写入之类的特权指令来控制。处理器体系结构可以 允许通过一组指令没置资源激活寄存器36中的相应位。ISA (指令集体系 结构)可以提供用于寄存器传输或存储器传输的指令以允许设置资源激活 寄存器36中的相应位;允许在资源激活寄存器36与处理器的其他組件之 间进行传输;以及可选地允许在寄存器36与存储器之间进行传输。指令集 可以被指定为允许相应的位设置,或者可以修改现有的指令集以提供此类 功能。MERA控制单元12通过发出逻辑连接48与发出和停止逻辑22相连。 为了控制处理器的功率参数,MERA控制单元12可以强制停止将指令发 出到执行资源。由MERA控制单元12强制执行的停止可能影响流水线的 发出级中的所有指令,或者影响由MERA控制单元12指定的一个或多个 特定指令。发出和停止逻辑22可以械 没计或^f奮改为完全响应由MERA控 制单元12断言的停止请求。MERA控制单元12还可以使用中断连接50与中断控制逻辑34相连, 以请求中断以便程序执行以及将中断捕获到中断服务例程。中断控制逻辑 34可以被设计或修改为完全响应由MERA控制单元12断言的中断或捕获 请求。MERA控制单元12还可以可选地使用微代码总线52与微代码引擎24 相连,以激活微代码引擎24以便将微代码指令发出到流水线。中断微代码发出请求。MERA控制单元12生成控制信号,所述控制信号使用核心组件之间 的连接来控制微处理器核心资源在活动模式与选通模式之间的转变、请求 流水线停止、请求从微代码引擎发出指令以及请求中断。MERA控制单元 12使用这些控制信号来确保微处理器核心的总功率不超过预定的 "P一bound",其称为有界的功率限制。平均功耗和最大功耗之间具有区别。平均功率指通常由客户运行的一 组应用或程序所平均消耗的功率。节省平均功率可降低有线应用中的能耗, 并延长便携应用中的电池寿命。最大功率(称为P—max)是由使用微处理器中最大数量资源的代码段所消耗的功率。此类代码段可以是某些计算密集的应用(如科学计算,其中处理器必须能够提供这些代码段的全部性能)的重要部分。最大功率对封装的功率消耗能力以及供电系统的电流传输能力设置了要求。因此,最 大功率对于;f^处理器的成本具有重大影响。P bound的值小于最大功率P max, P max最大可以等于处理器核心内的所有资源消耗的功率的和。在实现本发明的微处理器中,芯片供电系统可以被设计为传送有界功率P—bound而非最大功率P—max。类似地,在 本发明的至少 一个实施例中,微处理器芯片封装可以被设计为消耗有界功 率P bound,而非最大功率PMERA控制单元12可以以数据选通、功率选通和时钟选通的形式执 行选通。时钟选通是这样的技术当因为由锁存器的输出驱动的组件不在 特定的时钟周期内使用,或因为锁存器的输入处没有有效数据,或者是因 为需要保留在先前某个时钟周期内保存在锁存器中的旧数据,而不需要特 定锁存器接受和保存新数据时,阻止去往该锁存器的时钟信号进行切换。 时钟选通只能节省功率的动态部分或切换部分。时钟选通可以以一个锁存 器、 一组锁存器的粒度实现,也可以以诸如预取单元或浮点单元之类的微 处理器资源的粒度实现。功率选通(也称为Vdd选通)是另一种公知的功率节省技术。此技术 包括在配电网络与微处理器组件的功率输出之间插入高端设备(header device)。备选地,可以在接地分布网络与微处理器组件的接地输入之间 插入低端设备(footer device )。可选地,可以同时实现低端设备和高端设 备。所述高端设备通常实现为PFET,而所述低端设备通常实现为NFET。 通过关闭高端设备和/或低端设备,可以断开组件与电源和/或地的连接,导 致降^f氏切换功率和泄漏功率。上述功率节省技术(例如,功率选通、数据选通和时钟选通)在此处总称为"选通"。因此,选通指三种所述的功率节省技术中的任意一种, 或这三种技术的任意組合。术语"活动"指组件不受选通时的模式。MERA 控制单元12用于激活#:处理器组件或资源的选通,即,MERA控制单元 12将孩吏处理器组件在活动与选通模式之间切换。将资源切换到选通模式称 为取消激活资源,将资源从选通模式切换到活动模式或正常操作模式称为 激活资源。图2示出了本发明的示例性实施例中的微处理器组件与MERA控制单 元之间的示例性接口。在示例性接口中,功率选通用作功率节省选通^t支术。资源54位于处理器核心上并包括可选通组件56和不可选通组件58。不可 选通组件58可以包括一些保存资源54的状态所需的寄存器和存储器阵列。 例如,如果资源54是浮点单元,则浮点寄存器堆(registerfile)可以实现 为不可选通组件58,而诸如加法器、乘法器和旁路之类的所有功能单元可 以实现为可选通组件56。不可选通组件58内的所有电路均与地60和电源 62直接相连。可选通组件56内的所有电路均与虚拟地64和虛拟电源66 相连。虚拟电源66通过高端i殳备68与电源62去耦合,虚拟地64通过低端 设备70与地60去耦合。高端设备68和低端设备70通过当资源54被导向 ii^v选通模式时断言的控制信号72进行控制。低端设备70或高端设备68 都可以不存在。如果没有高端i殳备68 ,则虚拟电源66直接与配电网络62 相连。如果没有低端设备70,则虚拟地64直接与接地分布网络60相连。资源54通过输入端口 409 (有关其他类似端口的信息,请参见图1, 40r403 )与资源控制激活总线58相连。控制高端i殳备68和低端i殳备70 的控制信号72可以直接与输入端口 409相连。在至少一个实施例中,将输 入控制信号锁存在寄存器74中并在再緩冲块76中另外进行再緩冲。再緩 沖块76中可以具有多个由流水线锁存器分隔的流水线级。在至少一个实施例中,根据资源激活总线38 (参见图1)上的协议的 实施方式,可以包括总线接口逻辑78。总线接口逻辑78可以通过将在资 源激活控制总线38上断言的资源ID与分配给此资源54的ID相匹配来识 别导向资源54的控制信号。在至少一个实施例中,总线接口逻辑78可以 支持总线协议。本领域的技术人员将理解可以使用各种协议。图3是示出本发明的示例性实施例中控制微处理器资源的取消激活和 激活的流程图。在此流程图中,应用了按需(或迟緩)资源激活策略和按 需(或迟緩)取消激活策略。在每个周期内,MERA控制单元12监视指 令流水线的前端18和(可选地)解码逻辑20 (参见图1)中的活动,如步 骤80所示。此监视包括从指令緩冲器(未示出)中存储的指令,或针对经 过解码级20的指令来收集资源使用率信息。在每个周期内,对于要从指令緩沖器发出的每个指令或一组指令,或经过解码逻辑20 (未示出)的每个指令或一组指令,将在步骤82执行检 查以查看是否有任何指令要求访问不可用的资源,即当前关断(gated off) 的资源。如果没有指令需要选通的资源,则允许指令或指令组继续步骤84 的解码和发出过程。如果请求的资源之一被标记为关断(即不可用),则 MERA控制单元12检查资源是否符合被关断的条件(转至步骤86)。在 步骤84,允许指令或指令组正常继续解码和发出过程,因为当前发出和解 码周期内没有任何指令需要选通(并且因此不可用)的资源。步骤84完成"正常的"执行循环,即沿步骤80、 82、 84和80执行。 此循环应在表现出规则行为的程序的多数执行周期内循环。当程序按照此 正常循环来循环执行时,不执行任何与通过MERA控制单元12(参见图1) 实现的MERA控制机制关联的操作,并且不会带来任何性能损失。步骤80、 82、 86、 88、 92、 96、 84和80的第二循环称为"程序阶段 改变循环"。如果在步骤82有任何指令需要选通的资源,则控制移至步骤 86。在步骤86, MERA控制单元12检查是否有足够数量的资源适合被选 通,以便允许激活请求的资源而不超过功率边界P—boimd。对于步骤86 中的计算,硬件(图9中示出了将在下文中描述的此类硬件的实例)计算 未标记为适合关断的资源(即保持活动的资源)与请求激活的资源的功率 权重的总和。如果所述总和等于或小于预定的功率边界P—bound,则控制 流向步骤88,否则将在步骤卯指定要选通的资源。在步骤88,从在步骤86被标记为适合关断的资源的列表中选择一组 资源以便关断。如果被标记为适合关断的资源数量多于使处理器功率保持 低于边界P一bound所需的资源数量,则可以使用最近最少使用算法或使用 软件提示,或任何其他算法(包括随机技术)指定要选通的资源。在执行 步骤88之后执行步骤92,在步骤92,将取消激活所有指定的资源。在步骤92, MERA控制单元12通过在资源激活总线38上断言相应的 信号来引导指定要选通的资源切换到选通模式。在步骤96, MERA控制单元12通过在资源激活总线38上断言相应的控制信号来激活要请求激活的资源。在步骤96, MERA控制单元12可以 强制实施若干停止周期以便在向通知激活的资源发出指令之前,允许这些 资源完成激活过程。在步骤96可能需要额外的停止周期,以避免激活过程 在被激活的资源中导致的临时功率增加,并降低电流消耗中的可能峰值。步骤96完成称为"程序阶段改变循环"的步骤80、 82、 86、 88、 92、 96、 84和80的第二循环。此循环应偶尔由"行为规范的"程序在ii^新 程序阶段(其使用一组新的资源)时执行。所述程序阶段改变循环导致零 性能损耗或最小性能损耗。所述性能损耗(如果有)可能是由在允许发出 请求在步骤96激活的资源的指令之前,允许这些资源准备好处理新指令所 需的停止周期导致的。MERA控制单元12可以在步骤96强制实施额外的 停止周期,以避免激活过程在被激活的资源中导致临时功率增加,并降低 电流消耗中的峰值。如果在步骤86, MERA控制单元12找不到足够数量的适合选通的资 源,则MERA控制单元12启动步骤卯。在步骤90,选择要选通的资源。 与步骤88不同,在步骤卯,将所有资源均视为取消激活的候选对象,包 括那些当前正在使用的资源。以这样的方式指定要取消激活的资源未指 定为取消激活(即资源保持活动状态)的所有资源的总功率和被请求激活 的资源的功率不超过预定的功率限制P—bound。可以使用任何用于选择要 关断的资源的技术,包括诸如随机选择之类的技术。作为可选的性能优化 特性,可以选择要取消激活的资源,以使MERA控制单元12在以后转至 步骤90的可能性变为最小。在步骤94,在MERA控制单元12启动取消激活序列之前,允许排空 被指定为取消激活的资源中的流水线。排空流水线允许正在由指定的资源 处理的所有指令(包括那些在发出级排队的指令)完成其执行。在步骤94, MERA控制单元12可以通过强制实施停止周期、启动微代码发出,以及 将线程的执行优先级切换为较低级别,来可选地惩罚被确定为表现出不规 则行为的程序线程。MERA控制单元12还可以可选地通过中断将不规则 活动报告给系统软件。步骤92完成称为"不规则行为循环"的步骤80、 82、 86、卯、94、 92、 96、 84和80的第三循环。此不规则行为循环应仅由"行为规范的" 程序极少地执行。循环通过不规则行为循环的过程所导致的性能损失要大 于通过阶段改变循环所导致的性能损失。在指定为取消激活的资源完成取消激活过程之前,不会激活所请求的 资源,即使这可能带来性能损失。这确保了即使在表现出不规则行为的程 序(即,未遵循针对给定微处理器核心规定的资源使用准则的程序)出现 性能损失时,也能保持核心功率低于最大功率边界Pj)ound。图4是示出本发明的示例性实施例中控制微处理器资源的取消激活和 激活的流程图。将如以上在图3的上下文中所述的那样执行正常的执行循 环。将根据下文所述修改阶段改变。选择所有在步骤86标记为适合关断的 资源以便关断,这无需具有图3中示出的步骤88,其中仅从一组符合条件 的资源选择一些资源以便关断。在步骤86之后紧接着执行步骤92,将在 步骤92中取消激活所有符合条件的资源。将关断所有符合条件的资源。因此,关断的资源数量多于使功率保持 低于P一bound所需的数量。这可以额外降低平均功率,但是,结果会导致 在步骤80,遇到需要选通的资源的指令的几率更大。因此使经过阶段改变 循环的频率增大。不规则行为循环如以上在图3的上下文中所述。图5是示出用于资源对的存储在表中的按需激活和取消激活策略的流 程图。步骤的正常执行流循环(80->82->84->80 )如以上在图3和图4的 上下文中所述。对于阶段改变循环,控制流遵循图3中从步骤80到步骤 82的流程。在步骤110, MERA控制单元12检查请求激活的资源(或一组资源)。 MERA控制单元12检查已被指定为与请求激活的资源互斥的资源(或一 组资源)是否正在使用中。如果MERA控制单元12或在本发明的实施例 中实施互斥技术的另一处理器元件判定没有任何被指定为与请求激活的资 源互斥的资源正在使用中,则MERA控制单元12将引导控制转至步骤92, 然后如图3所述执行一系列步骤92->96->84->80。如果至少一个被指定为与请求激活的资源(或一组资源)互斥的资源 正在使用中或计划由流水线中的一个或多个指令使用,过程将移至步骤94。接下来的一系列步骤(94->92->96->84->80 )对于不规则行为是相同 的并如以上在图3的上下文中所述。对于步骤86中的计算,硬件(图8 中示出了将在下文描述的此类硬件的实例)在表中进行查找,所W针对 每个资源存储了指定为互斥的资源的列表以及指示所述资源当前是否正在 使用中的位。图6是示出本发明的示例性实施例中控制微处理器资源的取消激活和 激活的流程图。实现了按需(或"迟緩")资源激活策略和"迫切的"取 消激活策略以降低平均功率以及微处理器的最大功率P—max。迫切的(或 "渴望的,,)和"迟緩的,,策略通常是用于限定特定试探过程的术语。迫 切的或渴望的策略通常表示在预期发生事件时以预测的方式或主动地利用 最早可用或可行的机会做出特定的决策;迟緩的策略表示将决策延迟到可 能的最晚时间。使用了三种步骤循环正常的执行循环、程序阶段改变循环以及不规 则行为循环。用于选通资源的决策和选通指定资源的步骤实现为正常的执 行循环的一部分。正常的执行循环的路径为依次执行步骤80、 82、 106、 104和84,或80、 82、 106和84。如果没有任何被请求激活的资源,则执行步骤106。在步骤106, MERA 控制单元12检查是否有任何处理器资源符合取消激活的条件。对于符合取 消激活条件的资源,流水线中的任何指令都不能使用该资源。进而,在步 骤106处指定要取消激活的资源中使用资源使用历史和可选的软件提示。 可以使用任何公知的资源静默预测器。如果在步骤106处将一个或多个资 源标识为符合取消激活的条件,则在步骤104取消激活这些资源并且允许 指令在步骤84继续解码和发出过程。否则,控制路径直接转至步骤84。 步骤84完成正常的执行循环。如果在步骤82请求激活一个或多个资源,则控制转至步骤IIO。在步 骤110, MERA控制单元12 (参见图1)检查是否可以在不超过预定功率边界P—bound的情况下激活被请求激活的资源。检查此条件的机制类似于 在步骤86中使用的如在图3中所示以及在上文中所述的机制。硬件(图9 中示出了将在下文描述的此类硬件的实例)计算活动的资源以及被请求激 活的资源的功率权重的总和。如果所述总和等于或小于预定功率边界 P一bound,则过程继续到步骤96。否则在步骤90指定要选通的资源。在步骤96, MERA控制单元12激活被请求激活的资源。步骤96完成 程序阶段改变循环。如果在步骤110, MERA控制单元12找不到足够数量 的符合选通条件的资源,则MERA控制单元转至步骤卯,在步骤90选择 要选通的资源。与上文在图3中所述的步骤94和92类似的系列步骤94 和步骤108完成不规则行为循环。图7是示出了本发明的示例性实施例中使用迫切的资源取消激活和按 需资源激活策略控制资源的互斥激活的流程图。正常的执行流循环遵循步骤80->82->106->104->84或步骤 80->82->106->84->80。对于阶段改变循环,控制流遵循从步骤80到步骤 112的顺序,如以上在图6的上下文中所述。在步骤112, MERA控制单 元12检查被请求激活的资源(或一组资源),查看已被指定为与被请求激 活的资源互斥的资源(或一组资源)是否已关断。如果针对此检查的答案 为"是",则控制转至步骤96。如果在步骤112,针对将资源指定为互斥, 答案为"否",也就是说至少一个被指定为与被请求激活的资源(或一组 资源)互斥的资源尚未被取消激活,则过程移至步骤94。系列步骤 94->108->96->84的其余部分与以上在图5的上下文中所述的(连同指定互 斥资源(或一组资源)集合的方式)类似。图8示出了本发明的示例性实施例中检查是否需要以及指定互斥资源 (或资源组)的基于表的硬件结构。可以使用多种技术为MERA控制单元 12 (参见图1)指定互斥资源(或一组资源)的集合。在至少一个实施例 中,互斥资源集是在硬件中实现并称为互斥资源标识符表的示例表114。 此外,将一组指令添加到处理器ISA (指令集体系结构)以允许特权(或 系统)软件读取互斥资源标识符表中的表项或将表项写入其中。表114包括列115-126和行130-146。对于每个由MERA控制单元12通过资源激活总线38 (参见图1)控 制的资源,表114都包含一个表项(示为行)。表114使用列115中的资 源标识符进行索引,并且可以实现多个读取端口。可能需要多个端口来读 出表中的多行内容。虽然将到解码逻辑20 (参见图3)的连接示为一个连 线,但是每个周期的带宽可以是从1到N个指令(例如,N==8)。对于进入流水线的每组指令,解码逻辑20标识执行每组指令所需的资 源。所请求资源的标识符也可以通过预解码逻辑确定,并与指令一起存储 在指令高速緩存中。使用计算的索引(或一组索引)(未示出)来访问表 114。对于每个资源,资源表114存储互斥资源的标识符(在列116中示出)。 列116存储被指定为与对应于该行的资源互斥的资源的标识符。表114的 列116可以由系统软件来维护。处理器的ISA (指令集体系结构)实现加 载表中的列116的表项的指令,同时还实现将表中的列116的内^储到 存储器或在表114与一个或多个处理器架构的寄存器之间移动数据的指 令。仅当处理器在特权模式下运行时才能执行这些额外指令。列116在系 统引导期间初始化。软件对表中的列116的读写操作通过端口 150完成。 更新列116的数据来自图1中所示的资源激活控制寄存器36。备选地,列 116的表项可以由硬件在系统加电期间预加载,例如通过扫描链预加载。如图所示,可以在表的列116内输入多个资源。允许使用"与"或者 "或"规则指定表中的列116内的互斥资源。对于所示实例,为了激活资 源R4(行136),必须关断资源R5和R6 (行136;列116)。当表中列 115内的资源的功率等于或接近若干资源的功率之和时,列116中的资源 标识符用作"相与"对(或字符串)。在当前实例中,资源R4的功率接 近资源R5和R6消耗的功率的和。作为"相或"对(或字符串)输入列116的资源标识符允许灵活选择 要取消激活的资源。作为实例,为了激活资源R7 (行142),必须取消激 活资源R8或R9 (行142;列116 )。类似地,为了激活资源R8 (行144;列115),必须取消激活资源R7或R9 (行144;列116),以及为了激活 资源R9 (行146),必须取消激活资源R7或R8 (行146;列116 )。然 后,如果请求激活资源R8 (行144),而资源R9 (行146)当前正在使用 中,但是R7 (行142 )未在使用,则硬件将指定取消激活资源R7 (行144 ), 并允许MERA技术继续执行阶段改变循环(参见图5和图7),而非不规 则4亍为循环。表中的列118指示相应行中的资源当前是否可用(即处于活动状态)。 每当相应的资源被激活时,就将列118中的表项设置为"资源可用,,,并 且每当相应的资源关断时,就将该表项设置为"资源不可用,,。列118中 的表项将由硬件通过端口 128自动更新。从列118读出的位如图5和图7 所示在步骤82中使用,以选择是继续正常的执行循环,还是继续图5中的 步骤86 (图7中的步骤112)。表中的列120的表项指示流水线中是否有任何正在使用(或计划使用) 相应行的列116中列出的资源的指令。列120中的表项也通过硬件端口 128 自动更新。对于作为"相或"或"相与"字符串输入列116的每个资源, 硬件在列120中维护单独的位。每当使用资源索引来访问表114时,将连同列116和列118中的相应 位一起,M中读出列120中的索引表项。从列120读出的位用于两个目 的。首先,这些位用于决定MERA控制单元12 (参见图1)应从步骤86 (或112 )(参见图5和图7 )转至程序阶段改变循环还是不规则行为循环。 例如,如果请求激活资源R1 (行130),则行130列120中的位将指示被 指定为与R1互斥的资源R2当前不在使用中,MERA控制单元12将从图 5和图7的步骤86 (112)继续到阶段改变循环。但是如果请求激活资源 R2 (行132),则从列120读出的与资源R2对应的行中的位将指示被指 定为与R2互斥的资源R1当前正在使用中,MERA控制单元12将从图5 和图7的步骤86 (112)继续到不规则行为循环。当存在多个用于选择要取消激活的资源的选项时(当使用"或"规则 将若干资源输入两列时,将发生这种情况),从列120读出的位将由选择逻辑148用来指定要取消激活的资源。例如,如果请求激活资源R7,从列 116读出的信息将指定必须取消激活资源R8或R9。从列120读出的位将 指示资源R8不在使用中,而资源R9当前正在使用中。在此情况下,选择 逻辑148将选择资源R8来取消激活。然后。MERA控制单元12将在图5 和图7示出的步骤86 (112)之后继续到阶段改变循环,而不会带来不规 则行为循环的性能损失。根据列122中存储的值或资源使用率计数器逐周期地更新表114中的 列120内的位,其方式为每当特定资源的资源使用率计数器设置为零时, 列120中与该资源对应的所有"互斥资源正在使用中"表项都设置为"否"。 每当特定资源的资源使用率计数器设置为非零值时,列120中与该资源对 应的所有表项都i殳置为"是"。例如,由于与资源R4 (行136)对应的资 源使用率计数器在本实例中为零,因此列120行138和140中的表项均设 置为"否"。根据列122中的表项来更新列120中的表项所需的硬件包括检测零值 的电路,以及首先发现列120中要求更新的相应表项及使用写入端口 128 执行所需更新的逻辑。当特定资源的资源使用率计数器更改为零或从零进 行更改时,搜索列120中需要更新的表项包括扫描列116中的表项以检测 哪些行将该资源列为互斥。备选地,硬件可以使用列116的反向映射来维 护表。例如,反向映射表将在行130中列出资源R2,在行132中列出资源 Rl,以及在行136中列出资源R5和R6。表114中的列122维护每个资源的资源使用率计数器。列122中的计 数器由硬件通过端口 128逐周期地更新。每当使用特定资源的指令进入流 水线时,将递增列122中的相应表项内的计数器。每当使用特定资源的指 令完成执行(也就是说,该指令从处理器流水线中退出)或从流水线清仓 时,就递减列122中的相应表项内的计数器。例如,如果使用资源R1指 令进入流水线,则与行130列122中的资源Rl对应的计数器将从5递增 到6。列120中的计数器内的非零值指示对应的资源正在使用中。计数器 的零值指示对应的资源不在^f吏用中。表114中的列124存储软件提示,所述提示旨在将有关已知的对应资 源的使用率信息与软件进行关联。列124与列116相同,由软件通过端口 150进行更新。写入软件提示列的指令可供系统和用户代码使用。软件提 示的实例包括表示未预期由程序使用对应的资源的"未使用",或者表示 预期由该程序经常使用对应的资源的"经常使用"。只要存在多个用于指 定要取消激活的资源的选项,就从表读出软件提示,并且所述提示由指定 要取消激活的资源的逻辑148使用。例如,如果请求激活资源R9,则必须 取消激活资源R7或R8。由于这些资源当前都不在使用中,因此选择逻辑 148将使用从列124读出的用于资源R7和R8的信息。资源R7的软件提 示指示该资源可能再次由程序使用。然后,资源R8将被指定为取消激活, 并且资源R7将保持活动模式。独占资源标识符表中的软件提示列124是 可选的。软件提示列124的更新来自图1中的资源激活控制寄存器36。表114可以可选地实现存储资源的使用率历史的列126。此使用率历 史信息可以由指定要取消激活的资源的选择逻辑148使用。每当存在多个 用于指定要取消激活的资源的选项,并且不能根据从列120和124读出的 位来做出决策时,选择逻辑148将通过使用率历史信息来做出决策。将选 择不经常使用(或最近不常使用)的资源来取消激活。列126中的使用率历史信息还用于在图6和图7中所示的步骤106中 选捧要取消激活的资源,其中资源使用率历史列126记录每个资源在最近 时间内被使用的计数,或者上次使用资源是在多少个周期之前。将从列126 读出的数据与可以由特权软件为每个资源或每个资源组分别设置的阚值进 行比较。如果资源使用率计数器值下降到为该资源设置的阈值以下,则比 较逻辑152将在步骤106 (参见图6和图7)发信号通知图1中的MERA 控制单元12所述资源符合取消激活的条件。类似地,在维护指示上次使用 资源的周期的计数器的实施例中,如果计数器超过为该资源设置的阈值, 则比较逻辑152将在步骤106发信号通知图1中的MERA控制单元12(参 见图6和图7)所述资源符合取消激活的条件。此信息由MERA控制单元 12用于在步骤106做出决策。这仅适用于图6和图7中所示的为取消激活资源实现迫切策略的实施例。上述的表114是一个示例,本领域的技术人员将理解在实现资源标识 符表时可以存在各种变型,例如,不同的列顺序、表的转置、不同的索引 编制机制,以及不同的更新表中的各个字段的策略(例如仅在偶数周期更 新列126)。此外,对于不同的列,软件和硬件更新机制的各种组合是可 能的。进而,只有表中的某些列可以根据特定应用的需求来实现。图9示出了本发明的示例性实施例中控制功率选通的示例性硬件结 构。将在下文描述在本发明的至少一个实施例中使用的MERA控制单元。 资源使用率表154提供在若干步骤处控制MERA单元流所需的信息。列 156包括资源标识符;列158包括软件提示/指示;列160包括资源使用率 历史;列162包括资源使用率计数器;列164包括指示资源是否符合取消 激活条件的资源位;列166包括资源可用性指示器;并且列168包括资源 功率指示器。将行170-178分配给资源标识符Rl-R7。这些列156-162的 更新方式类似于以上在图8上下文中针对表114描述的方式。资源使用率表154的列164示出了对应行中的资源是否符合取消激活 的条件。列164的表项'T,指示符合条件而表项"0"指示资源不符合取 消激活的条件。这些位由硬件根据对应行的列158、 160和162中的值进行 更新。如果列162中的资源使用率计数器为非零,则对应的资源不符合取 消激活的条件。如果列158中的软件提示指示该资源经常由程序使用,则 对应的资源不符合取消激活的条件。否则,如果列160中的资源^_用率历 史低于预定(可由软件更新)阈值,以^/或者可选的软件提示指示该资源 不太可能由程序使用,则列164中的对应位被设置为"1",指示资源符合 取消激活的条件。资源^使用率表的列168存储每个资源的功率。这些值可以在系统加电 时加载,也可以在制造时被硬编码。在每个周期>^ 154读出列166和168的值并将其转发到电路182。 如果列166中的值为'T,,则对应的数据选通电路182将从列168读出的 值转发到多输入加法器196,否则,如果列166中的值为"0",则执行选通的数据选通电路182将零转发到多输入加法器196。多输入加法器196 将所有行中的值相加,然后将结果(它是当前活动的所有资源的总功率) 转发到多输入加法器186。在每个周期从表中读出列164和168的值并将其转发到数据选通电路 182。如果列164中的值为"1",则对应的数据选通电路182将从列168 读出的值转发到多输入加法器184,否则,如果列164中的值为"0",则 执行选通的数据选通电路182将零转发到多输入加法器184。多输入加法 器184将所有行170-178中的值相加,然后将结果(它是可以取消激活的 所有资源的总功率)转发到多输入加法器186。从加法器186中的结果中 减去从加法器184接收的值(也就是说,在将值添加到其余的操作数之前 更改值的符号)。被请求激活的资源的列168中的值也被转发到多位加法器186。加法 器186的其余输入连接到保存此文档中先前定义的P—bound值的寄存器 188。寄存器188在系统加电期间写入,并且可以可选地实现为可由系统软 件写入。从加法器186的其他输入处的值中减去寄存器188的值(也就是 说,在将值添加到其余的操作数之前更改值的符号)。将加法器186的输 出的符号转发到符号检测器l卯。符号检测器的输出192指示是否有足够 数量的资源符合关断的条件。例如,可以使用输出192在图3、图4和图6 中示出的步骤86 (110)处判定是否有足够数量的资源符合关断的条件。为了简洁,以简化的方式示出了加法器186、 194、 196和184以及符 号检测器190的逻辑视图。这些加法器186、 194、 196和184以及符号检 测器l卯可以实现为统一的多输入进位保留加法器。通过与图8中示出的硬件结构类似的硬件结构,使用以上在图8的独 占资源标识符表114的上下文中说明的额外步骤,可以支持要取消激活的 资源的选择。图10是本发明的示例性实施例中检查推测性指令的状态的流程图。流 程图198中示出了 MERA控制单元12所使用的控制流中的一系列步骤。 流程图198中的系列步骤借助推测性发出提高了微处理器中的指令执行效率。在检测到请求访问关断的资源的指令之后ii^示出的系列控制步骤。例如,到所示的系列步骤的控制流可以来自步骤82,如图3-7中所示。步骤200是控制序列的第一步,将在此步骤检查请求访问关断的资源 的指令的状态。如果指令为非推测性指令(也就是说,已解决该指令之前 的所有分支),则控制在退出点206退出,然后继续检查控制是需要转至 程序阶段改变循环还是不规则行为循环(例如,参见图3-7)。如果在步骤200判定指令为推测性指令(也就是说,该指令之前存在 至少一个分支尚未解决),则控制转至步骤202。在此步骤,停止发出指 令的过程,直至已解决所有之前的分支。在从步骤202退出时,指令状态 变为非推测性的或指令4皮从流水线清仓。在步骤204,将检查指令的状态。如果此指令已变为非推测性指令, 则控制退出此可选的步骤序列,然后继续检查控制是需要转至程序阶段改 变循环还是不规则行为循环(例如,参见图3-7)。如果指令被清仓,则控 制在退出点208退出此可选的步骤序列,然后继续执行图3-7中所示的步 骤80或84,或者通过退出点206继续执行图6-7中所示的步骤82。图11是示出本发明的示例性实施例中检查由处理器执行的程序线程 的不规则行为的流程图。控制流中存在若干可以在该处插入流程图210中 所示的步骤序列的点。当在图3-7中的实施例的控制流内检测到下列条件 之一后,可以^所示的控制步骤序列a) 检测到请求访问关断的资源的指令(例如,图3-7中所示的步骤 82的"是"分支),或者b) 没有足够的可供取消激活的资源(例如,图3和图4的实施例的 步骤86的"否"分支),或者c) 指定为互斥的资源正在使用中(例如,图5中所示的步骤86的"是,, 分支)或未关断(例如,图7中所示的步骤112的"否"分支)或者d) 无法在不超过设定的功率限制的情况下激活所请求的资源(例如, 图6中的实施例的步骤110的"否"分支)为了实现步骤214,硬件可以针对每个单独的资源,或针对资源组实现资源激活历史计数器222。这些计数器是在激活相应的资源时递增的老 化计数器。此外,对于每个资源或一组资源,硬件存储可由软件更新的阈 值。 一组比较器224将行230中的计数器与行232中的相应阈值进行比较。 如果任何计数器超过相应的阈值,则断言计数器输出处的触发信号226。在步骤214,如果设置了触发器(即,资源激活历史指示在活动模式 与选通模式之间的资源切换频率高于预定的资源激活频率阈值),则控制 转至步骤216。否则,控制在退出点218退出步骤序列,然后返回相应的 控制点,例如,返回图3-7中的实施例的步骤86,或返回图3-4中所示的 步骤90,以及返回图5和图7中所示的步骤94。在步骤216,启动到系统软件的捕获(例如,通过对图l中ii^中断/ 捕获控制块34的输入的信号50断言相应的控制)。所述捕获向系统软件 (例如,线程调度器)指出当前正在运行的线程组合导致执行效率不高, 或者指出当前线程表现出不规则的行为并且应被切换到较低优先级的模 式,或者应被移至在另一核心上执行或应被终止。在捕获期间,可以在软 件中仿真请求访问选通的资源的指令。在步骤216之后,从退出点220重 新开始执行应用代码。图12是示出将指令发出到备选资源来执行以避免激活选通的资源的 流程图。控制流中存在若干可以在该处插入流程图236中所示的步骤序列 的点。当在图3-7中的实施例的控制流内检测到下列条件之一后,可以进 入流程图236中控制步骤序列a) 没有足够的可供取消激活的资源(例如,图3和图4中所示的步骤 86的"否"分支),或者b) 指定为互斥的资源正在使用中(例如,图5中所示的步骤86的"是,, 分支)或未关断(例如,图7中所示的步骤112的"否,,分支)或者c) 无法在不超过设定的功率限制的情况下激活所请求的资源(例如, 图6中所示的步骤110的"否"分支)在步骤240, MERA控制单元12检查是否可以发出请求选通的资源的 指令以便在备选资源上执行。在备选资源中执行可能需要多次发出指令(即,在多个周期内将指令发送到同一单元,或者将指令替换为一系列其 他指令以便不需要激活任何选通的资源)。将指令替换为一系列其他指令可以由微代码引擎(例如,图1中的微代码引擎24)来执行。此类指令替 换的实例包括使用一系列加法指令来执行乘法指令;使用一系列32位乘法 执行64位乘法指令;移位指令和加法指令;以及使用 一 系列标量指令执行 SIMD (单指令多数据)指令。另一实例是在单个浮点单元上执行需要两 个浮点单元(如果并行发出)的一组两个浮点指令,所述指令通过相继发 出两个浮点标量指令来执行。如果无法将指令发出到备选资源,则控制在退出点246退出流程图236 中的步骤序列,然后返回各个实施例的相应的控制点,例如,返回图3-4 和图6中的实施例的步骤90,或返回到图5和图7中所示的步骤94。作为步骤240的检查结果,如果判定指令可以被发出到备选资源,则 控制转至步骤242。在步骤242,指令被替换为一系列发出到备选资源的指 令(可能是顺序的),并且控制返回图3-7中所示的步骤80或步骤84,或 者转至图6-7中所示的步骤106。接下来将描述插入停止周期。MERA控制单元12 (参见图1)可以在 以上图3-7中所述的控制流的不同步骤处强制实施若干停止周期。例如, 可以在图3-7中所示的步骤96之后强制实施若干停止周期,以便允许在步 骤96中被通知激活的资源完成激活过程。此步骤确保了在将任何指令发出 到所请求的资源之前,所请求的资源已被完全激活。此外,可以在图3-5 中所示的步骤92与96之间强制实施其他停止周期,以避免被激活的资源 中的激活过程导致增加临时功率。虽然此处参考附图描述了示例性实施例,但是应当理解,本发明并不 限于此处所述的示例性实施例,并且在不偏离本发明的范围或精神的情况 下,本领域的技术人员可以在其中实现各种其他更改和修改。所有此类更 改和修改都旨在被包括在如所附权利要求定义的本发明的范围之内。
权利要求
1.一种用于控制微处理器中的功率参数的设备,所述设备包括资源激活控制单元,其用于控制所述微处理器的最大功率;以及两个或更多个资源,其中所述资源激活控制单元控制所述资源的激活,以使所述微处理器消耗和耗散的功率不超过可配置为低于所述最大功率的预定值的功率边界。
2. 根据权利要求l的设备,其中可以通过可编程地控制的机制来配置 所述功率边界。
3. 根据权利要求1的设备,还包括第一选择,其包括微处理器指令请求激活的一个或多个资源;以及 第二选择,其包括除所述第 一选择中的所述资源以外的一个或多个资源,其中所述资源激活控制单元在其选通所述第二选择中的至少一个资源之后激活所述第一选择。
4. 根据权利要求3的设备,其中所述资源控制单元使用功率选通、时钟选通、数据选通、组合的功率与时钟选通、组合的功率与数据选通,或 时钟与数据选通技术的组合来选通所述第二选择中的资源。
5. 根据权利要求3的设备,其中所述资源激活控制单元控制所述资源 以确保一个或多个激活的资源选择中的所有资源消耗的总功率不超过所述功率边界。
6. 根据权利要求3的设备,其中所述资源激活控制单元停止发出微处 理器指令,直至完全激活所述第一选择中的所述指令所请求的资源。
7. 根据权利要求6的设备,其中所述资源激活控制单元延迟激活所述 第一选择中的资源,直至所述第二选择中的资源完成取消激活过程。
8. 根据权利要求3的设备,其中所述资源激活控制单元通过从由所述 第 一选择的元素索引的资源表读取所述第二选择的 一个或多个表项来确定 形成所述第二选择的要取消激活的资源。
9. 根据权利要求8的设备,其中以硬件、软件或硬件与软件的组合来实现所述资源表。
10. 根据权利要求8的设备,其中可以通过软件命令、硬件设备或软 件与硬件的组合来更新所述资源表。
11. 根据权利要求10的设备,其中所^存储了由软件维护的资源 使用率提示和由硬件维护的资源使用率计数器,在选择要取消激活的资源 中使用所述提示和计数器。
12. 根据权利要求11的设备,其中由硬件通过从硬件维护的表读出 微处理器资源的功率值和使用率位并将乘以相应资源使用率位的所述功率 值相加来确定所述孩先处理器消耗的最大功率。
13. 根据权利要求3的设备,其中所述资源控制单元选择所述第二选 择以使所述微处理器消耗的最大功率不超过所述功率边界。
14. 根据权利要求13的设备,其中所述资源控制单元选择所述第二 选择以取消激活所述第二选择中的所有资源。
15. 根据权利要求14的设备,其中所述资源控制单元选择所述第二 选择,以便在所述第二选择中选择保持所述最大功率低于所述功率边界所 需的最少数量的资源。
16. 根据权利要求3的设备,其中一检测到适合执行此类取消激活, 就以迫切的方式实现所述第二选择的取消激活,并且其中执行所述取消激 活而不考虑所述孩t处理器的最大功率。
17. 根据权利要求3的设备,其中根据使用率需求在可能的最晚时间 以迟緩的方式实现所述第 一选择中的资源的激活。
18. 根据权利要求3的设备,其中需要使用所述第一选择中的功率选 通资源的条件将触发阶段改变循环,以在激活选通的资源之一以前选择所 述第二选择中的一个或多个未被使用的资源以便关断。
19. 根据权利要求3的设备,其中需要在激活所述第一选择中的资源 之一以前取消激活当前活动的资源的条件将触发不规则行为循环,所述循 环将启动取消激活所述第二选择中的资源之 一 的过程。
20. 根据权利要求1的设备,其中所述资源控制单元导致请求访问被取消激活的资源之一的推测性指令停止,直至所述推测性指令变为非推测 性的或通过指令无效机制被无效。
21. 根据权利要求l的设备,其中所述资源控制单元确定由所述微处 理器执行的程序的不规则行为并且在做出此类确定时,生成捕获信号以降 低所述程序的执行优先级或更改线程执行计划。
22. —种用于控制微处理器中的功率参数的方法,所述方法包括 控制所述孩i处理器的两个或更多个资源的激活;以及将激活的资源所消耗和耗散的总功率保持为低于功率边界,所述功率 边界可以被配置为低于所述微处理器的最大功率的预定值。
23. 根据权利要求22的方法,还包括激活包括微处理器指令请求激活的一个或多个资源的第一选择;以及 选通包括除所述第一选择中的所述资源以外的一个或多个资源的第二 选择。
24. 根据权利要求23的方法,其中所述选通步骤包括在激活所述第一 选择中的资源之前,对所述第二选择中的资源执行功率选通、时钟选通、 数据选通、组合的功率与时钟选通、组合的功率与数据选通,或组合的时 钟与数据选通,其中由微处理器指令请求所述第一选择中的要激活的资源。
25. 根据权利要求23的方法,其中所述功率选通步骤包括 停止发出微处理器指令,直至所述第二选择中的资源已准备好被取消激活;以及在激活所述第一选择中的由所述微处理器指令请求的资源之前取消激 活所述笫二选择中的资源。
26. 根据权利要求23的方法,其中所述选通步骤包括选择所述第二选 择中的要被取消激活的资源,以使所述微处理器在指令周期内消耗的功率 不超过所述功率边界。
27. 根据权利要求23的方法,其中所述选通步骤包括在出现需要使用 所述第一选择中的功率选通资源的条件时触发阶段改变循环,以在激活至 少一个选通的资源之前选择所述第二选择中的一个或多个未被使用的资源以便关断。
28. 根据权利要求23的方法,其中所述选通步骤包括在出现需要在激 活所述第 一选择中的至少 一个资源之前取消激活当前活动的资源的条件时 触发不规则行为循环,所述不规则行为循环将启动取消激活所述第二选择 中的资源之一的过程。
29. 根据权利要求23的方法,其中所述选通步骤包括停止请求访问被 取消激活的资源之一的推测性指令,直至所述推测性指令变为非推测性的 或通过指令无效机制被无效。
30. 根据权利要求23的方法,还包括通过从由所述第一选择的元素索 引的资源表读取所述第二选择的一个或多个表项来确定形成所述第二选择 的要取消激活的资源。
全文摘要
一种用于控制微处理器(10)中的功率参数的设备,所述设备包括用于控制所述微处理器(10)的最大功率的资源激活控制单元(12)以及两个或更多个资源(261、262、263)。所述资源激活控制单元(12)控制所述资源(261、262、263)的激活,以使所述微处理器(10)消耗和耗散的功率不超过可配置为低于所述最大功率的预定值的功率边界。
文档编号G06F1/26GK101243372SQ200680030136
公开日2008年8月13日 申请日期2006年7月19日 优先权日2005年8月19日
发明者A·布于克托苏诺格卢, H·M·雅各布森, P·博塞, V·久班, V·斯里尼瓦桑, 胡志刚 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1