用于使固定频率处理单元操作的功耗最小化的方法和设备转让专利

申请号 : CN201380019054.6

文献号 : CN104246653B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : M·S·艾伦-韦尔A·J·德拉克黄伟M·S·弗洛伊德闻华君

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

摘要 :

提供了一种用于使固定频率处理单元的操作的功耗最小化的机制。对时间窗口中向固定频率处理单元进行节流的时隙的数量进行计数。将进行节流的时隙的数量除以时间窗口内的时隙总数,从而产生性能损失(PLOSS)值。确定与固定频率处理单元相关联的(PLOSS)值是否大于允许性能损失(APLOSS)值。响应于PLOSS值小于或等于APLOSS值,发起供应给固定频率处理单元的电压的降低。

权利要求 :

1.一种在数据处理系统中用于使固定频率处理单元的操作的功耗最小化的方法,所述方法包括:对时间窗口中向所述固定频率处理单元进行节流的时隙的数量进行计数;

将进行节流的时隙的数量除以所述时间窗口内的时隙总数,从而产生性能损失PLOSS值;

确定与所述固定频率处理单元相关联的所述PLOSS值是否大于允许性能损失APLOSS值;以及响应于所述PLOSS值小于或等于所述APLOSS值,发起供应给所述固定频率处理单元的电压的降低。

2.如权利要求1所述的方法,还包括:

确定对于所述固定频率处理单元是否存在定时问题;以及响应于定时问题存在,对所述固定频率处理单元的操作进行节流,其中解决所述定时问题的响应比调整供应给所述固定频率处理单元的电压的响应更快。

3.如权利要求2所述的方法,其中通过时序余裕电路检测所述定时问题。

4.如权利要求1所述的方法,还包括:

响应于所述PLOSS值大于所述APLOSS值,确定与所述固定频率处理单元相关联的供应电压是否小于标称电压加电压保护带所得的结果;以及响应于所述供应电压大于或等于所述标称电压加所述电压保护带所得的结果,将供应给所述固定频率处理单元的电压保持在当前设置。

5.如权利要求4所述的方法,还包括:

响应于所述供应电压小于所述标称电压加所述电压保护带所得的结果,确定与所述固定频率处理单元相关联的温度是否小于热阈值;以及响应于所述温度大于或等于所述热阈值,将供应给所述固定频率处理单元的电压保持在当前设置。

6.如权利要求5所述的方法,还包括:

响应于所述温度小于所述热阈值,发起供应给所述固定频率处理单元的电压的提高。

7.如权利要求1所述的方法,还包括:

在调整供应给所述固定频率处理单元的电压之前,确定迟滞条件是否已经得到满足;

以及

响应于所述迟滞条件未能得到满足,将供应给所述固定频率处理单元的电压保持在当前设置。

8.如权利要求7所述的方法,其中所述迟滞条件是:自从供应给所述固定频率处理单元的电压的上一次改变以来,是否已经过去预先指定数量的时间窗口。

9.如权利要求7所述的方法,还包括:

响应于所述迟滞条件得到满足,调整供应给所述固定频率处理单元的电压。

10.一种在数据处理系统中用于使固定频率处理单元的操作的功耗最小化的设备,包括:处理器;以及

耦合到所述处理器的存储器,其中所述存储器包括指令,所述指令在被所述处理器执行时使所述处理器:对时间窗口中向固定频率处理单元进行节流的时隙的数量进行计数;

将进行节流的时隙的数量除以所述时间窗口内的时隙总数,从而产生性能损失PLOSS值;

确定与处理单元相关联的所述PLOSS值是否大于允许性能损失APLOSS值;以及响应于所述PLOSS值小于或等于所述APLOSS值,发起供应给所述固定频率处理单元的电压的降低。

11.如权利要求10所述的设备,其中所述指令还使所述处理器:确定对于所述固定频率处理单元是否存在定时问题;以及响应于定时问题存在,对所述固定频率处理单元的操作进行节流,其中解决所述定时问题的响应比调整供应给所述固定频率处理单元的电压的响应更快。

12.如权利要求11所述的设备,其中通过时序余裕电路检测所述定时问题。

13.如权利要求11所述的设备,其中所述指令还使所述处理器:响应于所述PLOSS值大于所述APLOSS值,确定与所述固定频率处理单元相关联的供应电压是否小于标称电压加电压保护带所得的结果;以及响应于所述供应电压大于或等于所述标称电压加所述电压保护带所得的结果,将供应给所述固定频率处理单元的电压保持在当前设置。

14.如权利要求13所述的设备,其中所述指令还使所述处理器:响应于所述供应电压小于所述标称电压加所述电压保护带所得的结果,确定与所述固定频率处理单元相关联的温度是否小于热阈值;以及响应于所述温度大于或等于所述热阈值,将供应给所述固定频率处理单元的电压保持在当前设置。

15.如权利要求14所述的设备,其中所述指令还使所述处理器:响应于所述温度小于所述热阈值,发起供应给所述固定频率处理单元的电压的提高。

说明书 :

用于使固定频率处理单元操作的功耗最小化的方法和设备

技术领域

[0001] 本发明通常涉及改进的数据处理设备和方法,并且更具体地涉及用于使固定频率处理单元操作的功耗最小化的机制。

背景技术

[0002] 时常地,中央处理单元(CPU)设计聚焦于下述中的一个或多个:数据通路、控制单元、存储器元件、时钟电路、PAD收发器电路、逻辑门单元库等。为高性能市场设计的CPU可能需要针对这些项目中的每一个的定制设计来实现所需的频率、功耗、芯片面积目标等。因此,CPU设计项目通常包括诸如下述的主要任务:程序员可见的指令集架构,架构研究和性能建模,高级合成或逻辑实现,速度关键组件的电路设计,逻辑合成或逻辑门级设计,芯片定时分析以确认所有逻辑和电路将以指定的工作频率运行,物理设计,以及其他设计规范。

发明内容

[0003] 技术问题
[0004] 特定于芯片定时的是标称芯片频率,其是基于常常具有大保护带的最差情况的拐角(corner)而选择的。最差情况的拐角是指芯片内的所有最坏情况条件,诸如最高可能的温度、最差可能的工作负荷等。大保护带指的是针对给定操作频率而增加的额外电压、或者针对给定电压的频率降低,以便从在某个选定的温度和工作负荷条件下已经证明或预测会发生芯片定时故障的操作点移开。然而,当前的技术局限于对于具有完全同步的定时网格(clocking grid)的芯片减小这些大保护带。此外,对于具有异步定时网格的芯片,虽然可以使用动态频率调整来减小保护带,但是当系统总线频率等于核心频率(即,固定频率)时,可能无法做出这些调整。
[0005] 问题的解决方案
[0006] 在一个说明性实施例中,提供了一种在数据处理系统中用于使固定频率处理单元的操作的功耗最小化的方法。该说明性实施例对时间窗口中向固定频率处理单元进行节流的时隙的数量进行计数。该说明性实施例将进行节流的时隙数量除以时间窗口内的时隙总数,从而产生性能损失(PLOSS)值。该说明性实施例确定与固定频率处理单元相关联的(PLOSS)值是否大于允许性能损失(APLOSS)值。该说明性实施例响应于PLOSS值小于或等于APLOSS值,而发起供应给固定频率处理单元的电压的降低。
[0007] 在其它说明性实施例中,提供了一种计算机程序产品,其包括具有计算机可读程序的计算机可用或可读介质。所述计算机可读程序在计算设备上被执行时使该计算设备执行上面关于方法说明性实施例所概述的操作中的各种操作以及其组合。
[0008] 在又一说明性实施例中,提供了一种系统/装置。该系统/装置可以包括一个或多个处理器以及与该一个或多个处理器耦合的存储器。该存储器可以包括指令,所述指令在由一个或多个处理器执行时使一个或多个处理器执行上面关于方法说明性实施例所概述的操作中的各种操作以及其组合。
[0009] 本发明的这些及其它特征和优点将在本发明的示例实施例的以下详细描述中进行描述,或者考虑到本发明的示例实施例的以下详细描述,本发明的这些及其它特征和优点对于本领域普通技术人员而言将变得明显。

附图说明

[0010] 当结合附图阅读时,通过参照说明性实施例的以下详细描述将最佳地理解本发明及其优选使用模式以及另外的目标和优点。
[0011] 图1是说明性实施例的各方面可以在其中实现的示例数据处理系统的框图;
[0012] 图2示出根据说明性实施例的用于使固定频率处理单元操作的功耗最小化的监视和反馈机构的功能框图;并且
[0013] 图3示出由根据说明性实施例的用于使固定频率处理单元操作的功耗最小化的监视和反馈机构执行的操作的流程图。

具体实施方式

[0014] 对于以固定频率运行的系统,电压从来未被适配成使运行时的功耗最小化。说明性实施例提供了固定频率处理单元操作的功耗最小化。可以改变频率的先前的方法已被应用,使电压和频率按照彼此之间的关系或者按照与芯片上的负荷的关系而移动。该先前的解决方案的缺陷在于:当以固定频率运行时,电压不能被适配成节约能量并降低功耗。
[0015] 大多数计算机系统提供标称操作模式,其是大多数消费者运行他们的机器的开箱即用的正常操作模式。一些系统使用完全同步的处理器互连构造,而没有可以允许孤立的降频的异步边界。该系统中的所有处理器核心和逻辑必须在同步锁步(synchronous lock step)中运行。这样的同步设计的性能优势是不会由于异步边界而损失性能。然而,功耗缺陷是不能够调整电压,除非也跨越整个系统调整频率。根据选择成覆盖最差情况的工作负荷、温度、di/dt噪声以及寿命耗损(例如负偏压温度不稳定性)特征的标称固定电压,说明性实施例将导致芯片功耗的百分之5到10的降低。所节省的芯片功耗的百分比降低可以取决于消费者环境中的上述变量的当前状态。
[0016] 因此,可以在许多不同类型的数据处理环境中利用各说明性实施例。为了给各说明性实施例的具体元件和功能的描述提供上下文,下文提供图1作为说明性实施例的各方面可以在其中实现的示例环境。应该理解的是,图1仅仅是示例,并且并非旨在断言或暗示关于本发明的各方面或实施例可以在其中实现的环境的任何限制。可以在不脱离本发明的精神和范围的情况下对所描绘的环境作出许多修改。
[0017] 图1是说明性实施例的各方面可以在其中实现的示例数据处理系统的框图。数据处理系统100是计算机的示例,其中实现本发明的说明性实施例的处理的计算机可用代码或指令可以位于所述计算机中。
[0018] 在所描绘的示例中,数据处理系统100采用中心(hub)架构,其包括北桥及存储器控制器中心(NB/MCH)102以及南桥及输入/输出(I/O)控制器中心(SB/ICH)104。处理单元106、主存储器108和图形处理器110连接到NB/MCH 102。图形处理器110可以通过加速图形端口(AGP)连接到NB/MCH 102。
[0019] 在所描绘的示例中,局域网(LAN)适配器112连接到SB/ICH 104。音频适配器116、键盘和鼠标适配器120、调制解调器122、只读存储器(ROM)124、硬盘驱动器(HDD)126、CD-ROM驱动器130、通用串行总线(USB)端口及其它通信端口132、以及PCI/PCIe设备134通过总线138和总线140连接到SB/ICH 104。PCI/PCIe设备可以包括例如以太网适配器、插入卡以及用于笔记本计算机的PC卡。PCI使用卡总线控制器,而PCIe则不使用。ROM 124可以例如是快闪基本输入/输出系统(BIOS)。
[0020] HDD 126和CD-ROM驱动器130通过总线140连接到SB/ICH 104。HDD 126和CD-ROM驱动器130可以使用例如电子集成驱动器(IDE)或串行高级技术附件(SATA)接口。超级I/O(SIO)设备136可以连接到SB/ICH 104。
[0021] 操作系统在处理单元106上运行。操作系统协调并提供对图1中的数据处理系统100内的各种部件的控制。作为客户端,操作系统可以是市售的操作系统,诸如面向对象的编程系统(诸如JavaTM编程系统)可以与操作系
统协同运行,并提供从在数据处理系统100上执行的JavaTM程序或应用对操作系统的调用。
[0022] 作为服务器,数据处理系统100可以是例如 eServerTM系统 计算机系统,其运行高级交互执行 操作系统或 操作系统。数据处理系统100可以是在处理单元106中包括多个处理器的对称多处理器(SMP)系统。可替换地,可以采用单处理器系统。
[0023] 用于操作系统、面向对象的编程系统以及应用或程序的指令位于存储设备(诸如HDD 126)上,并且可以被加载到主存储器108中以便由处理单元106执行。本发明的说明性实施例的过程可以由处理单元106使用计算机可用程序代码执行,所述计算机可用程序代码可以位于存储器(诸如主存储器108、ROM 124)中,或者位于例如一个或多个外围设备126和130中。
[0024] 总线系统(诸如图1所示的总线138或总线140)可以由一个或多个总线组成。当然,总线系统可以使用任何类型的通信构造或架构来实现,所述通信构造或架构在附接至该构造或架构的不同部件或设备之间提供数据的传递。通信单元(诸如图1中的调制解调器122或网络适配器112)可以包括一个或多个用来发送和接收数据的设备。存储器可以是例如主存储器108、ROM 124或者诸如图1的NB/MCH 102中可见的高速缓存。
[0025] 本领域普通技术人员将认识到,图1中的硬件可以取决于实现方案而变化。除了图1中所描绘的硬件之外、或者取代这些硬件,可以使用其它的内部硬件或外围设备(诸如闪存存储器、等效的非易失性存储器、或光盘驱动器等等)。此外,在不脱离本发明的精神和范围的情况下,各说明性实施例的过程可以应用于除了前面提到的SMP系统以外的多处理器数据处理系统。
[0026] 此外,数据处理系统100可以采取多种不同的数据处理系统(包括客户端计算设备、服务器计算设备、平板计算机、膝上型计算机、电话或其它通信设备、个人数字助理(PDA)等等)中任何一种的形式。在一些说明性示例中,数据处理系统100可以是便携式计算设备,其配置有闪存存储器以提供例如用于存储操作系统文件和/或用户生成的数据的非易失性存储器。基本上,数据处理系统100可以是没有任何架构限制的任何已知的或以后开发的数据处理系统。
[0027] 再一次,说明性实施例提供了固定频率处理单元操作的功耗最小化。说明性实施例引入节流(throttling)机制,其可以响应于关键路径监视器(CPM)和输出温度计代码,而在10纳秒内作出响应。CPM即时地识别电压网格(voltage grid)内的许多点处的时序松弛(slack)或时序缺乏。当温度计输出指示芯片接近于时序故障时,输出温度计代码在必要时提供核心节流。最后,内部或外部控制机构执行监视节流计数器的算法,并且以如下方式调整电压:使被允许的节流量最小化至没有或非常少,同时还使无时序故障地运行处理单元所需的电压最小化为针对处理单元的当前操作状况的最小能耗水平。
[0028] 图2示出根据说明性实施例的用于使固定频率处理单元操作的功耗最小化的监视和反馈机构的功能框图。数据处理系统200包括被耦合到处理单元204的控制机构202,所述处理单元204是集成电路芯片201内的固定频率处理单元。虽然关于单个处理单元204描述说明性实施例,但是取决于集成电路芯片201上的特定实现,处理单元204可以是一组一个或多个处理器和/或可以是多核处理器。此外,处理器单元204可以使用一个或多个异构处理器系统来实现,在所述异构处理器系统中,主处理器与辅助处理器一起存在于单个芯片(诸如集成电路芯片201)上。作为另一个说明性示例,处理器单元204可以是对称多处理器系统,其在集成电路芯片201上包含多个相同类型的处理器。
[0029] 数据处理系统200还包括节流计206,其对预定时间窗口内的进行节流的时隙数量进行计数。也就是说,在说明性实施例中,存在预定的时间窗口并且该预定的时间窗口被划分成时隙。因此,在具有10纳秒的示例性时隙的1毫秒的示例性时间窗口内,存在100,000个10纳秒时隙。节流计206针对该时间窗口计数那些10纳秒时隙中有多少是主动进行节流的时隙。可替换地,预定时间窗口可以是预定数量的周期,并且时隙可以是预定数量的周期的等分子集。
[0030] 在每个预定时间周期的结束时,节流计206可以主动地向控制机构202中的性能损失逻辑208发送节流计206内的计数器的值,或者可替换地,性能损失逻辑208可以在预定时间窗口的结束时读取节流计206内的计数器的值。性能损失逻辑208使用该值来确定数据处理系统200在节流上花费的时间的百分比。为了确定该百分比,性能损失逻辑208把从节流计206获得的值(即,在这个示例中为50,000)除以预定时间窗口内的预定时隙的数量,该数量根据上面的示例将会是100,000个10纳秒时隙。因此,性能损失逻辑208输出在这个示例中将会是50%的节流百分比作为性能损失(PLOSS)值210。
[0031] 控制机构202内的电压控制逻辑212使用PLOSS值210连同允许性能损失(APLOSS)值214来控制处理单元204的节流,同时通过动态调整供应给处理单元204的电压来最小化工作电压。APLOSS值214可以是预先指定的可接受的性能损失值,其包括可忽略的性能损失。可忽略的性能损失是不可察觉的损失;然而,在说明性实施例中,百分之一或更少的性能损失是无法检测到的,并且因此被认为是可忽略的。例如,如果电压控制逻辑212确定PLOSS值210大于APLOSS值214,则电压控制逻辑212可以发送信号以提高供应给处理单元204的电压。
[0032] 另外,如果将要提高电压,则在发送信号以提高给处理单元204的电压之前,电压控制逻辑212可以确定供应电压(Vdd)是否小于标称电压(Vnom)加电压保护带,该电压保护带通常是供应电压(Vdd)的3%。如果电压控制逻辑212确定供应电压(Vdd)小于标称电压(Vnom)加电压保护带,则电压控制逻辑212可以发送信号来提高供应给处理单元204的电压。然而,如果电压控制逻辑212确定供应电压(Vdd)大于或等于标称电压(Vnom)加电压保护带,则电压控制逻辑212可以将电压保持在其当前设置。
[0033] 此外,如果将要提高电压,则在发送信号以提高给处理单元204的电压之前,电压控制逻辑212可以确定是否存在用于做出所期望的电压改变的热余量。即,电压控制逻辑212可以确定与处理单元204相关联的温度是否小于热阈值(例如85摄氏度)。如果电压控制逻辑212确定与处理单元204相关联的温度小于该热阈值,则电压控制逻辑212可以发送信号来提高供应给处理单元204的电压。然而,如果电压控制逻辑212确定与处理单元204相关联的温度大于或等于热阈值,则电压控制逻辑212可以将电压保持在其当前设置。因此,在提高或降低供应给处理单元204的电压之前,电压控制逻辑212可以做出关于工作特征的一个或多个确定。
[0034] 可替换地,如果电压控制逻辑212确定PLOSS值210小于或等于APLOSS值214,则电压控制逻辑212可以发送信号来降低供应给处理单元204的电压。此外,对供应给处理单元204的电压的任何提高或降低可以基于诸如供应电压(Vdd)的0.5%之类的度量。
[0035] 此外,为了使得供应给处理单元204的电压在一个时间周期期间不被提高,在接下来的时间周期中被降低,然后在接下来的时间周期中被提高,则电压控制逻辑212可以利用迟滞控制,在该迟滞控制中,在可以实现对先前电压设置的返回之前,必须经过至少一个或多个时间周期。如果电压将被提高或降低,则电压控制逻辑212向电压调节器216发送信号。然后,电压调节器216对供应给处理单元204的电压实现所期望的改变。
[0036] 基于由控制机构202实现的供应电压改变、以及基于与处理单元204相关联的工作负荷、温度和其他特征,额外且更快的节流措施将被请求以应对其他问题,诸如时序余裕(timing margin)和差错。也就是说,控制机构202基于固定频率处理单元204的性能来实现电压调整。然而,由于电压调节控制回路的性质,这样的电压调整将总是与微秒或更长的时间尺度相关联,诸如在2微秒与4微秒之间。然而,为了应对工作负荷中的突然变化(其可能造成时序余裕差错),数据处理系统200还包括时序余裕电路218,其由监视与处理单元204相关联的特征的检测电路(诸如关键路径监视器(CPM)电路、RAZOR电路等等)组成,其中与处理单元204相关联的特征诸如是工作负荷变化、温度变化和电压变化(例如,不受电压调节器216控制的电压突降、电压高涨,控制机构202不能足够快速响应的工作负荷增加等)。因此,为了避免基于工作负荷变化、温度变化和电压变化(诸如由电压调节器216发出的那些)的时序故障,时序余裕电路218可以在几个纳秒的时间尺度上(诸如在10纳秒和40纳秒之间)进行节流。例如,当电压控制逻辑开始经由电压调节器216降低电压时,当诸如上述那些的问题连同电压变化一起发生时,固定频率处理单元204可能更接近于时序故障。为了避免该时序故障,时序余裕电路218内的检测电路输出信号,该信号使节流控制逻辑220在几纳秒的时间尺度上进行节流。节流控制逻辑220可以通过降低工作负荷(即指令)来进行节流。因此,时序余裕电路218应对这类问题,并且对处理单元204做出快速的节流改变。对于预定时间窗口内的由时序余裕电路218进行节流的任何时隙,节流计206递增其计数器,使操作在该预定时间窗口结束时再次重新开始。该节流可以得到保证,使得检测到时序余裕的损失越多,就进行越极端的节流,从而仅对性能造成保持系统安全所必要的量的损害。
[0037] 所属领域的技术人员将理解的是,本发明的各个方面可以实施为系统、方法或计算机程序产品。因此,本发明的各个方面可以采取以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或软件和硬件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,本发明的各个方面还可以采取用一个或多个计算机可读介质实施的计算机程序产品的形式,该计算机可读介质上包含有计算机可读程序代码。
[0038] 可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线或半导体的系统、装置或器件,或者任意以上的适当组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机软盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件的上下文中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0039] 计算机可读信号介质可以包括例如在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读程序代码。这种传播的信号可以采用各种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0040] 计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
[0041] 可以以一种或多种程序设计语言的任意组合来编写用于执行本发明各方面的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言(诸如Java(TM)、Smalltalk(TM)、C++等),还包括常规的过程式程序设计语言(诸如“C”程序设计语言或类似的程序设计语言)。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0042] 下面参照根据本发明的说明性实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的各方面。应当理解的是,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
[0043] 也可以把这些计算机程序指令存储在计算机可读介质中,这些指令可以使得计算机、其它可编程数据处理装置、或其他设备以特定方式工作,使得存储在计算机可读介质中的指令产生包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品。
[0044] 计算机程序指令还可以加载到计算机、其它可编程数据处理装置或其他设备上,以使一系列操作步骤在计算机、其它可编程装置或其他设备上被执行以产生计算机实现的过程,使得在计算机或其它可编程装置上执行的指令提供用于实现流程图和/或框图中的一个或多个方框中规定的功能/动作的处理。
[0045] 图3描绘根据说明性实施例由监视和反馈机构执行用于使固定频率处理单元操作的功耗最小化的操作的流程图。当操作开始时,在预定时间窗口期间或对于指定数量的周期,与处理单元相关联的节流计对向处理单元进行节流的时隙的数量进行计数(步骤302)。一旦该指定的时间窗口已经期满或者指定数量的周期已经得到满足,节流计就向内部或外部控制机构中的性能损失逻辑发送计数器的值,其指示对处理单元进行节流的时隙的数量(步骤304)。性能损失逻辑使用由节流计提供的值来确定数据处理系统在对处理单元进行节流上所花费的时间的百分比(步骤306)。然后,性能损失逻辑将节流百分比作为性能损失(PLOSS)值输出给控制机构内的电压控制逻辑(步骤308)。
[0046] 电压控制逻辑使用PLOSS值连同允许性能损失(APLOSS)值来控制处理单元的节流,同时通过动态地调整供应给处理单元的电压来最小化工作电压。为了确定是否应该提高、降低供应给处理单元的电压或者将其保持在当前电压,电压控制逻辑确定PLOSS值是否大于APLOSS值(步骤310)。如果在步骤310,电压控制逻辑确定PLOSS值大于APLOSS值,则电压控制逻辑确定供应电压(Vdd)是否小于标称电压(Vnom)加电压保护带,该电压保护带通常是供应电压(Vdd)的3%(步骤312)。如果在步骤312,电压控制逻辑确定供应电压(Vdd)大于或等于标称电压(Vnom)加电压保护带,则电压控制逻辑将电压保持在其当前设置(步骤314)。如果在步骤312,电压控制逻辑确定供应电压(Vdd)小于标称电压(Vnom)加电压保护带,则电压控制逻辑确定与处理单元相关联的温度是否小于热阈值(步骤316)。如果在步骤
316,电压控制逻辑确定与处理单元相关联的温度大于或等于热阈值,则电压控制逻辑将电压保持在其当前设置(步骤314),使操作返回到步骤304以等待从节流计进行下一次读取。
如果在步骤316,电压控制逻辑确定与处理单元相关联的温度小于热阈值,则电压控制逻辑发送信号来提高供应给处理单元的电压(步骤318)。
[0047] 如果在步骤310,电压控制逻辑确定PLOSS值小于或等于APLOSS值,则电压控制逻辑发送信号以降低供应给处理单元的电压(步骤320)。从步骤318和320以及在对供应给处理单元的电压做出调整之前,电压控制逻辑可以确定是否已经满足迟滞条件,诸如自从供应给处理单元的电压的上一次改变以来,已经经过一个或多个时间窗口或者已经发生了预先指定数量的周期(步骤322)。如果在步骤322,一个或多个时间周期尚未经过或者没有发生预先指定数量的周期,则电压控制逻辑不发送信号以提高或降低供应给处理单元的电压,并将电压保持在其当前设置(步骤314),使操作返回到步骤304以等待从节流计的下一次读取。如果在步骤322,一个或多个时间窗口已经过去或者已经发生了预先指定数量的周期,则电压控制逻辑向电压调节器发送所生成的信号(步骤324)。然后,电压调节器对供应给处理单元的电压实现所期望的改变(步骤326)。
[0048] 基于由控制机构实现的供给电压改变、以及基于与处理单元相关联的工作负荷、温度和其他特征,额外和更快的节流措施将被请求以应对其他问题,诸如时序余裕(timing margin)和差错。因此,数据处理系统内的时序余裕电路确定在当前时间周期或预先指定数量的周期期间是否出现了需要进一步节流的问题(步骤328)。如果在步骤328,时序余裕电路确定在当前时间周期或预先指定数量的周期内发生了这样的问题,则时序余裕电路通过经由节流控制逻辑进行节流来应对这类问题,使得对处理单元进行快速节流改变(步骤330),使操作在此后返回到步骤304。如果在步骤328,时序余裕电路确定在当前时间周期或预先指定数量的周期内没有发生问题,则操作简单地返回到步骤304。
[0049] 附图中的流程图和框图示出根据本发明的各种实施例的系统、方法和计算机程序产品的可能实现的架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意的是,在有些替代性实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0050] 因此,说明性实施例提供了用于使固定频率处理单元操作的功耗最小化的机制。说明性实施例引入节流机制,其可以响应于关键路径监视器(CPM)和输出温度计代码而在
10纳秒内进行响应。CPM即时地识别电压网格内的许多点处的时序松弛或其缺乏。最后,内部或外部控制机构执行监视新节流计数器的算法,并且以如下方式调整电压:使被允许的节流量最小化至没有或非常少,同时还使无时序故障地运行处理单元所需的电压最小化为针对处理单元的当前操作状况的最小能耗水平。
[0051] 如上面所指出的,应该认识到,各说明性实施例可以采取以下形式:完全硬件实施例、完全软件实施例、或者既包含硬件元件也包含软件元件的实施例。在一个说明性实施例中,各说明性实施例的机制以软件或程序代码实现,所述软件或程序代码包括但不限于固件、驻留软件、微代码等。
[0052] 适合于存储和/或执行程序代码的数据处理系统将包括通过系统总线与存储器元件直接或间接耦合的至少一个处理器。存储器元件可以包括在实际执行程序代码期间采用的本地存储器、大容量存储器、以及高速缓存存储器,该高速缓存存储器提供至少一些程序代码的临时存储以便减少在执行期间必须从大容量存储器取回代码的次数。
[0053] 输入/输出或I/O设备(包括但不限于键盘、显示器、指点设备等)可以与系统直接地耦合,或者通过居间I/O控制器与系统耦合。网络适配器也可以与系统耦合以使数据处理系统能够通过居间的私有或公用网络与其它数据处理系统或者远程打印机或存储设备耦合。调制解调器、线缆调制解调器以及以太网卡仅仅是一些当前可用类型的网络适配器。
[0054] 本发明的描述已经出于举例说明和描述的目的而被给出,并且并非旨在是无遗漏的或局限于所公开的形式的发明。对本领域普通技术人员来说,许多修改和变化是明显的。实施例被选择并描述是为了最佳地解释本发明的原理、实际应用以及为了使本领域其它普通技术人员能够理解本发明从而获得具有适合于所设想的特定用途的各种修改的各种实施例。