微处理器的自主动态电压和频率调节的方法和计算机系统的利记博彩app

文档序号:6614066阅读:296来源:国知局
专利名称:微处理器的自主动态电压和频率调节的方法和计算机系统的利记博彩app
技术领域
本发明涉及计算机系统操作的自适应动态管理,更具体地说,涉及微
处理器的动态电压和频率调节(DVFS)。
背景技术
通常,通过提高微处理器(时钟)频率来实现微处理器性能增益。但 是这要求生产和开发成本方面的更高努力,最终导致计算机系统的更高资 产成本。标称频率的持续上升伴随着对冷却技术和材料的高要求。许多微 处理器制造商相当保守地制定最大^:处理器频率以确保操作稳定性并做出 最坏情况的假设,以使例如那些在大型服务器群集的空调房间中提供的环 境i殳置可4亍。
现代微处理器的功耗和关联的发热是计算机系统的开发过程中的关键 设计问题,特别是当可用空间非常有限(如在桌面系统或刀片中心内)时。 当前微处理器中存在许多改变其功耗的机制,例如,通过显式降低或提高 频率和电压。许多现代微处理器提供了此类DVFS机制。增强的SpeedStep 是其中之一并为各种Intel微处理器所支持。
当前微处理器的重要特性是大量性能计数器的可用性,所述计数器提 供与工作负荷特性有关的详细信息,例如,关于每个时钟周期(IPC)的过
时(完成)指令、处理器高速緩存未命中等的信息。
在计算机系统中使用的标称微处理器频率基于有关特定特性的最坏情
况的设想;例如,周围的温度和工作负荷的功率要求。通常,微处理器硬 件允许显著高于标称频率的频率。经常通过现代冷却技术或系统的空气调 节设置减轻了热限制。微处理器功耗较大地取决于工作负荷的类型。但是,
在典型的客户情景下,最坏情况的^:想并不同时出现。
当在一段时间内未检测到或检测到很少的系统使用时,存在各种自主 降低孩i处理器功耗的方法。经常用于工作负荷特性描述的度量是IPC数。 它允许独立于微处理器时钟频率来表征微处理器性能。在c. Isci等人
2005年5月发表在IEEE Micro第25巻第39-51页的"Long-Term Workload Phases: Duration Predictions and Applications to DVFS"中提出了用 于预测工作负荷阶段持续时间和特性的方法。该工作主要关注使用最, 预测来进行工作负荷估算。W. L. Bircher等A^E ILSPED 2005的^i义录 第275-280页的"Runtime Identification of Microprocessor Energy Saving Opportunities"中说明了根据线性回归的基于梯度的工作负荷预 测技术。
如Intel Itanium2中使用的所谓的Foxton技术是在当代」微处理器中 使用的机制的实例,所述机制通过在芯片级上使用暂时超频来将频率和电 压提高到默认值以上。在R. McGowen等人2006年1月发表在IEEE Journal of Solid State Signals第1巻第229-237页的"Power and Temperature control on a 90-nm Itanium family processor"以及T. Fischer等人 2006年1月发表在IEEE Journal of Sol id State Signals第1巻第218-228 页的"A 90-認variable frequency clock system for a power-managed itanium architecture processor" 中给出了对Foxton技术的描述。
现有的DVFS解决方案主要关注微处理器能量效率的改善而非其性能 的提高。它们优化微处理器功耗,且对由微处理器当前执行的工作负荷的 性能仅产生最小的影响。

发明内容
因此,本发明的目标是提供一种相对于现有技术改进的用于微处理器 的自主DVFS的方法、相应的计算积4呈序和计算;l/l4呈序产品,以及相应的计 算机系统。
通过自主检测高微处理器工作负荷的阶段并预测其持续时间来实现本
发明的优点。将微处理器频率暂时增加到与技术和环境约束一致的适当安 全值(甚至超过其标称频率),以便当包括所述微处理器的计算机系统受 益最大时改善性能,而在低微处理器工作负荷阶段期间,将降低其频率和 电压以节约能量。此技术充分利用了隐藏的性能容量并改善了计算机系统 的整体性能而不会危害工作稳定性。无需诸如服务处理器之类的额外硬件,
因为当前的计算机系统已支持性能计数器和DFVS。
根据本发明的方法主要包括结合包括至少 一个微处理器的计算机系统
进行测量、预测和控制的步骤。更具体地说,所述方法包括以下步骤
在一段时间内收集和存储所述计算机系统的性能数据;
从所存储的性能数据来预测所述计算机系统的未来工作负荷度量及其
持续时间,并根据所预测的未来工作负荷度量及其预测的持续时间来将所 述计算机系统的当前工作负荷至少分类为正常工作负荷和高工作负荷阶
段;
对于分类为高工作负荷阶段的当前工作负荷,修改所述计算机系统的 适于增加所述微处理器的频率和电压的参数;
对于分类为正常工作负荷阶段的当前工作负荷,将所述樣吏处理器的频 率和电压修改为其正常值。
在本发明的优选实施例中,以指定的采样间隔重复以下步骤,记录数 据以获得先前计算的值
在最近的采样间隔(t-n, t一n-l)期间计算包括微处理器的计算机系 统的功耗P,将在时间t—n和t-n-1的总累计能量值的差除以采样间隔持 续时间;
测量#:处理器的温度;
通过使用微处理器的性能计数器来计算微处理器的当前IPC; 根据当前IPC来预测微处理器工作负荷阶段特性; 检查是否存在对当前IPC的预测;
如果预测存在,则保存预测的值和先前的工作负荷分类,否则,检查 是否应通过应用适当的稳定性准则来执行预测;
如果不应执行任何新的预测,则使所有预测的值无效,将工作负荷分
类为正常,否则,从先前预测检查是否存在对先前采样时间的预测;
如果存在对先前采样时间的预测,则检查对先前采样时间的预测与当 前IPC的偏离是否小于指定值,如果否,则使所有预测的值无效并将当前 工作负荷分类为正常;
如果不存在对先前采样时间的预测,则判定是否为预测收集了足够的 先前测量的样本,如果否,则保存预测的值和先前的工作负荷分类,否贝,J, 执行对当前工作负荷阶段的持续时间的预测,预测当前工作负荷阶段的 IPC,并将预测的工作负荷分类为空闲、正常和高工作负荷;
如果预测的工作负荷为空闲,则将微处理器频率和电压设置为最小的
允许值;
如果预测的工作负荷为正常,则将孩i处理器频率和电压设置为其标称
值;
如果预测的工作负荷为高,则激活控制反馈环路电路以根据功率或温
度选点(setpoint)来自主设置微处理器频率和电压,以便防止硬件损坏 或失效。
本发明允许显著提高整体计算机系统性能,而仅对功耗产生最小影响。


现在结合

本发明及其优点,这些附图是
图l是示出了本发明的实施例的系统体系结构的方块图2是示出了根据本发明的基于梯度的工作负荷持续时间预测的功能
图3是随时间变化的工作负荷阶段持续时间预测的图; 图4是根据本发明的孩i处理器功率控制环路的方块图; 图5是根据本发明的微处理器温度控制环路的方块图; 图6另j艮据本发明的方法流程图的方块图; 图7是根据本发明的方法流程图的方块图8是才艮据本发明的方法流程图的方块图9是其中可以实现特定实施例的系统的方块图。
具体实施方式
Turbo模式
图1示出了计算机系统100中本发明的实施例的系统体系结构。所述 实施例被称为Turbo模式。在计算机系统100中,将Xeon微处理器用作 CPU (中央处理单元)110。 Xeon微处理器可以通过使用一组MSR (模型特 定寄存器)120来控制其操作。系统管理处理器130控制计算机系统100 的操作。它使用一组硬件传感器140来监视包括CPU 110的计算机系统100 的硬件元件。计算机系统100执行Linux操作系统的实例,同时Linux内 核150实例和各种进程在Linux操作系统的用户级别160运行。
Linux内核150包括可以特别创建并行运行的内核线程的各种内核模 块。本发明使用Linux内核150的AME (自主能量管理)170内核模块和定 时工具180。定时工具150允"H4吏用Linux内核定时器-指示Linux内核 150在用户定义的时间使用用户定义的参数来执行用户定义的函数。该函 数则与注册该定时器的进程异步地运行。Linux系统定时器180的典型解 决方案允许最大l khz的采样频率用于测量。
Turbo模式内核模块190实现根据本发明的方法。在用户级别160的 可选Turbo模式监视进程2 0 0允许向计算机系统10 0的用户呈现有关Turbo 模式的当前操作状态的信息。Turbo模式监视进程200还提供了保存有关 Turbo模式操作状态的日志的跟踪工具。到跟踪工具的接口通过Linux进 程文件系统中的表项来实现。AME 170内核模块为传感器数据测量提供接 口 ,后者由Turbo模式内核模块19 0使用以从传感器14 0读取传感器数据。 定时工具180定期调用Turbo模式内核模块190来采样传感器140的传感 器数据,它为此使用单独的内核线程。
在X. Wang等人在2005年12月19曰发表在IBM Research Report RC23835 ,12-086)的"Managing Peak System-level Power with
Feedback Control"中说明了计算机系统100的可能实现。IBM BladeCenter 包括具有Intel Xeon处理器的多个HS20刀片。在图1的BladeCenter机 架中示出了功率管理。使用了两个不同的Xeon ^:处理器Intel Xeon Nocona和Intel Xeon Irwindale。两个微处理器都具有3. 6 GHz的标称频 率。
通过Hitachi H8S 2166服务处理器来实现系统管理处理器130。 AME 170通过1/0 (输入/输出)端口从系统管理处理器130访问传感器140, 所述传感器可由Turbo模式内核模块19 0读取访问。这允许快速访问传感 器数据,这是高采样频率所要求的并为动态改变带来更好的工作稳定性和 更高的粒度。传感器数据的10毫秒采样间隔足以用于此Turbo模式内核模 块190的采样内核线程的环境。
工作负荷预测
图2示出了根据本发明的用于工作负荷阶段持续时间预测的基于梯度 的IPC值的预测。先前测量的IPC值(IPC(UO),IPC(t-l))用于计算先前 持续时间间隔(t-1-1-0)的梯度。该梯度用于预测下一个持续时间间隔 "2-tl)的IPC值。然后如下计算未来IPC(t-2)的预测
IPC(t一2):IPC(t-l) +辩-1)-辦—o).(t一2一t d
i —lo
预测持续时间的基本原理是如果特定数量的连续测量的IPC值位于 指定窗口内,则可以将IPC宣布为稳定,这意味着它遵循恒定级数 (constant progression)。所以如果发现了该数量的稳定样本,则可以
假定将有特定数量的其他样本出现在稳定性窗口中。随着连续稳定样本的 数量的增加,预测的后续样本数也增加。
需要许多连续的稳定样本(X。)来执行初次预测,其中由每个样本必 须位于彼此的预定阈值内的准则来定义稳定性。假定如果发现了l个样本 (首次迭代为X。),则在稳定性准则中还跟随有Xw个样本。将重复此过 程,直至达到最大允许的预测持续时间,或单个样本落在稳定性准则之外。
在第一种情况下,将预测的持续时间保持在其先前值(xn+1 = xn),在第二
种情况下,将其重置为X。。此算法可被描述为如下
根据标准性能评估机构(SPEC) CPU 2000基准的测量结果显示在S:=8时 可以实现良好结果。在此情况下,算法始于初始8个后续的稳定样本,它 们需要进行初次预测。然后,做出将发现9个其他稳定样本的预测。如果 在这9个样本期间,没有任何样本落在稳定性窗口之外,则执行下一个预 测,评估其他10个样本将匹配稳定性准则。将重复此过程,直至单个样本 落在窗口以外并与测量的IPC的偏离超出限制所指定的量。图2中示出了 使用该算法的阶段持续时间预测图的实例。
在与先前描述类似的IBM BladeCenter计算机系统中的Turbo模式实 施方式的测量显示了样本偶尔落在窗口以外,这归因于IPC测量故障(由 定时问题导致)或IPC上的噪音(由在用户级别160运行的后台进程和 Linux操作系统的Linux内核150中的内核线程引起)。定时问题甚至会 导致破坏梯度计算的短时却巨大的界外值。因为在IBM BladeCenter中的 IBM HS20刀片中运行的Linux内核没有坚实的实时支持,所以不会消除该 问题。因此,将计算当前IPC的中间值及其平均值。中间值是数据序列的 50百分位数。它可以通过根据值对序列分类并从中间选择一个值来确定。 中间值的优点在于其过滤甚至极大界外值的能力。
要得到实际工作负荷的中间值,将需要后续IPC的值。这是不可能的 并且估计的结果甚至将导致更大的过程错误。所以在计算上,接收IPC的 在M/2个样本之前的中间值,如以下等式(M-3)所示
MED (ipc (t— (now-M/2))) = MED {ipc (t_ (now-M));
ipc(t一 (廳-M/2)); ipc (t—now)}
在平均值计算中出现类似的问题,但是这可能直接受到影响,因为未 过滤新测量的值。然后,这导致界外值不像中间值那样很好地进行过滤的
问题。中间值需要M/2样本间隔(t一y-t一x)来认识出现了测量的IPC的转 移,而平均值立即做出反应,却遭受在其緩冲区中替换旧值的迟緩。这导 致对测量的过度平滑并可能造成梯度计算上的过度。因此,用于梯度计算 的样本数应大于在中间值相移期间(t_y-Ux)获得的样本数。为了取得折 衷,将使用这两个值来改进测量的IPC。中间值用于梯度计算,而平均值 用于计算预测的和测量的IPC之间的偏差。
功率和温度控制
Turbo模式内核模块190实现根据本发明的DVFS方法。不能将微处理 器的频率和电压独立地并仅设置为离散值。P-状态(性能状态)模型在查 找表中定义微处理器的可用频率和电压以具有针对固定数量状态的离散 值。为了修改微处理器的当前工作频率和电压,可以将其转换为其他性能 状态。对于支持DVFS的微处理器,可以使用更大粒度的性能状态定义,以 便改进功率控制质量。
必须在高IPC阶段期间控制微处理器功耗,以保证计算机系统的工作 安全并且不损坏硬件。在低或正常微处理器工作负荷阶段期间,功耗应尽 可能地小。因此,在正常IPC阶段期间,将孩i处理器频率和电压i殳置为其 默认值,甚至在低IPC阶段期间按比例降低以便节约能量。仅在Turbo模 式内核模块190触发频率提高的阶段期间,功率控制回路必须确保功耗位 于其限制内。
根据本发明,将由控制反馈回路控制温度或功率。图4示意性地示出 了此类功率控制回路400的功能。与控制的选点一样,使用了最大恒功率 值P最大。将P最大与P实际之间的差的误差e用作PID控制器的输入,以才艮据 PID控制器的指定参数来计算输出。结果是描述频率和电压平方的乘积应 从其当前值变化多少的值Afv2。借助查找表LUT,将该值转换为离散的频 率f和电压v对来作为微处理器的新设置。控制回路400的调节机制是查 找表LUT,查找表LUT将PID控制器的输出映射到离散的绝对频率f和电 压v值,该值^皮馈入孩i处理器并将产生新的实际功率P^,其包括动态部分P和恒定静态部分P静态。将在由值At定义的下一个釆样间隔起始处测量 此新的功率值P实际。
图5示意性地示出了根据本发明的温度控制回路500的功能。控制回 路500使用功率控制回路400的PID、LUT和采样间隔。与控制的选点一样, 使用了最大恒温度值0最大。将6最大与0实际之间的差的误差e用作PID控制 器的输入以才艮据PID控制器的指定参数来计算输出。结果是描述频率与电 压平方的乘积的值fv2。借助查找表LUT,将此值转换为离散的频率f和电 压v对。控制回路500的调节机制是查找表LUT,查找表LUT将PID控制 器的输出映射到离散的绝对频率f和电压v值,将所述值馈入微处理器并 根据当前环境温度0环境生成新的实际温度0鋒。将在由值At定义的下一个 采样间隔的起始处测量此新的温度值0实际。
在本发明的优选实施例中,PID控制器由Turbo模式内核模块190在 Xeon微处理器的AME 170内核模块和MSR 120的帮助下实现。PID控制器 基本上在CPU 110的三个不同状态(空闲、正常和高IPC阶段)之间分离 计算机系统100的当前状态。通过计算CPU 110的描述其利用率的活动系 数来确定空闲阶段的指示。活动系数是其中CPU 110未停止的时钟周期数 除以在采样间隔期间的所有时钟周期数。如果活动系数低于特定阈值,则 将由Turbo模式内核模块190将CPU 110设置为用于空闲阶段的性能状态。 在此情况下,将CPU 110的微处理器频率和电压设置为最低可能的性能状 态以节约能量。对于空闲阶段的检测和处理,还可以使用公知的方法来降 低孩t处理器功耗。
在正常的IPC阶段期间,将微处理器频率和电压设置为其默认的性能 状态以便允许CPU 110的标准工作行为。微处理器功率和温度控制在空闲 或正常IPC阶段期间不活动,因为不能达到孩i处理器的功率和温度限制。 在具有高IPC的阶段期间,Turbo模式内核模块190将CPU 110的微处理 器频率和电压设置为允许CPU 110的性能提高的性能状态。对于此性能状 态,功率和控制回路需要确保不超过功率和温度限制,以防止硬件损坏和 失效。
本发明可以扩展到计算机系统100中的多个CPU。在此情况下,单独 的功率和温度控制回路可以用于每个CPU,或同一功率和温度控制回路可 以用于所有CPU。
测量和预测
将Linux内核定时器配置为执行Turbo模式内核模块190的特定功能。 该功能触发处于休眠的采样内核线程来执行测量和预测并在同一时间间隔 (采样间隔)之后为下一次触发配置Linux内核定时器。通过这种方式, 实现了采样内核线程的定期重新计划过程。该重新计划过程将继续,直至 已经收集了指定数量的样本。然后,触发由Turbo模式内核模块190创建 的跟踪线程来将收集的测量和预测数据写入跟踪文件。
图6显示了采样内核线程的一般控制流。在步骤600,判定采样线程 是否由Linux内核定时器触发。如果否,则采样内核线程在步骤610处于 休眠,直到它被Linux内核定时器触发。如果触发了采样内核线程(步骤 600 ),则在步骤620从AME170内核才莫块读取传感器数据。然后,在步骤 630使用收集的传感器数据以及MSR 120的内容来预测IPC。在步骤640, 判定在启用跟踪的情况下是否需要触发跟踪线程。在步骤650,检查在 Linux内核150向采样内核线程发送了终止信号的情况下,是否需要取消 采样内核线程。如果没有接收到终止信号,则将Linux内核定时器设置为 在经过采样时间之后触发采样线程的执行。
通过AME 170内核模块来读取传感器数据是对整个计算机系统100的 测量,因此不依赖于CPU数(如果存在比单个CPU 110更多的CPU)。在 对传感器数据的首次采样中,不执行任何预测。图7提供了为后续迭代收 集传感器数据的更详细的控制流。在步骤700,测试是否设置了由AME170 内核模块提供的AME记录位。如果是,则在步骤710中不会由AME 170内 核模块提供任何新的传感器数据并且将保留旧值。否则,在步骤720读取 由AME 170内核模块提供的1/0端口。在步骤730,判定功率和温度相关 的传感器数据是否^f皮更改。如果是,则将在步骤740保留旧值。否则,在
步骤750,将检查新传感器数据的数量是否等于当前与最后采样之间的时 间差。如果否,则在步骤760中,将使用来自先前采样时间的传感器数据, 而不是来自当前采样时间的传感器数据。最后,在步骤770,将计算新的 功率和温度值。
例如,功率相关的传感器数据可以是CPU IIO的能耗。然后,通过将 能耗之差除以时间间隔来计算新的功率值。为了改进性能,可以在每个CPU 上独立和并行地执行测量。
图8示出了 Xeon^:处理器性能计数器测量和IPC预测的控制流。与读 取传感器数据相同,省略了第一个步骤,因为仅能够收集性能计数器值。 在后续的迭代上,在收集性能计数器值之后执行诸如IPC、频率和每周期 的处理器高速緩存未命中(CMPC)之类的基本度量的计算。在步骤800, 从MSR 120收集性能计数器值。在步骤810计算度量。在步骤820计算IPC 的中间值和平均值。
在步骤830,将检查直到必须执行下一预测时要收集的样本数是否等 于0。如果是,则在步骤890将保留旧的预测值。否则,将在步骤840测 试CPU IIO的稳定性准则。这些稳定性准则定义为如下IPC的当前中间 值与先前值的偏离必须不超过预定的值,并且当前IPC值与先前值的偏离 必须不超过预定的值。
在步骤850将检查是否满足IPC的稳定性准则。如果否,则在步骤891 重新设置预测的值。否则,将在步骤860检查是否在更早时间执行了 IPC 的预测。如果是,则将在步骤870中针对最大容许间隔来测试此预测。该 容许间隔由IPC的当前平均值的绝对差来给出。如果先前的预测不在最大 容许间隔内,则将在步骤891对其进行重新设置。否则,在步骤892将其 用于预测。如果在步骤860中未检测到IPC的任何先前预测,则将在步骤 880中检查是否有足够的样本可用于预测。如果是,则在步骤892中使用 它们进行预测。否则,将在步骤893中收集更多的样本。
在完成预测之后(在步骤891、 892、 893之后),将在步骤894判定 计算机机系统IOO是否将从CPU IIO的性能提高获益。这通过检查当前预
测的IPC及其持续时间是否超过指定阈值来执行。如果是,则将启动CPU 110的频率提升。在当前运行的频率提升上,将测试对于指定的采样数, IPC是否下降到低于较低的阈值以便停止频率提升。如果能够应用频率提
升,则将设置标志以将此情况指示给控制回路。
本发明的另一个实施例可以是作为系统管理程序的一部分的实施方 式,其是一种允许多个操作系统不加修改地同时在计算机系统上运行的方 案。还可以通过诸如系统管理程序或工作负荷管理器之类的其他工具来提 供性能计数器。
其他实施例详细信息
所述技术可以实现为包括软件、固件、微码、硬件和/或它们的任意组 合的方法、装置或制品。在此使用的术语"制品,,指在介质中实现的代码 或逻辑,其中此类介质可以包括硬件逻辑[例如,集成电路芯片、可编程门
阵列(PGA)、专用集成电路(ASIC)等]或计算机可读介质,如磁存储介 质(例如,硬盘驱动器、软盘、磁带等)、光存储装置(CD — R0M、光盘等)、 易失性和非易失性存储器设备[例如,电可擦除可编程只读存储器 (EEPR0M)、只读存储器(ROM)、可编程只读存储器(PR0M)、随机存取 存储器(RAM)、动态随才;i^取存储器(DRAM)、静态随M取存储器(SRAM)、 闪存、固件、可编程逻辑等]。由处理器来存取和执4亍所述计算机可读介质 中的代码。其中编码所述代码或逻辑的介质还可以包括通过空间传播的传 输信号或诸如光纤、铜线之类的传输介质。其中编码所述代码或逻辑的传 输信号还可以包括无线信号、卫星传输、无线电波、红外线信号、蓝牙等。 其中编码所述代码或逻辑的传输信号能够通过发射站发射并且通过接收站 接收,其中在传输信号中编码的代码或逻辑可以,皮解码并存储在硬件或接 收和发射站或设备处的计算机可读介质中。此外,"制品"可以包括其中 包含、处理和执行代码的硬件和软件组件的組合。当然,本领域的技术人 员将认识到,可以做出许多修改而不偏离实施例的范围,并且所述制品可 以包括任何信息承载介质。例如,所述制品包括其中存储有指令(当由机
器执行时,所述指令将导致操作被执行)的存储介质。
某些实施例可以采取完全硬件实施例、完全软件实施例或包含硬件和 软件元素两者的实施例的形式。在一个优选实施例中,本发明以软件实现, 所述软件包括但不限于固件、驻留软件、微代码等。
此外,某些实施例可以采取可从计算机可用或计算机可读介质访问的 计算机程序产品的形式,所述计算机可用或计算机可读介质提供了可以被 计算机或任何指令执行系统使用或与计算机或任何指令执行系统结合的程 序代码。出于此描述的目的,计算机可用或计算机可读介质可以是任何能 够包含、存储、传送、传播或传输由指令执行系统、装置或设备使用或与 所述指令执行系统、装置或设备结合的程序的装置。所述介质可以是电、 磁、光、电磁、红外线或半导体系统(或装置或设备)或传播介质。计算 机可读介质的实例包括半导体或固态存储器、磁带、可移动计算机盘、随
机存取存储器(RAM)、只读存储器(R0M)、硬磁盘和光盘。光盘的当前实例 包括光盘-只读存储器(CD-ROM)、光盘-读/写(CR-R/W)和DVD。
术语"特定实施例"、"一个实施例"、"实施例"、"多个实施例,,、 "所述实施例"、"所述多个实施例"、"一个或多个实施例,,、"某些 实施例"和"某一实施例"指一个或多个(但不是所有)实施例,除非另 外明确指出。术语"包含"、"包括"、"具有"及其变型指"包括但不 限于",除非另外明确指出。列举的项目的列表并非暗示任何或所有的项 目互相排斥,除非另外明确指出。术语"a" 、 "an"和"the"指"一个 或多个",除非另外明确指出。
相互通信的设备不必持续地相互通信,除非另外明确指出。此外,相 互通信的设备可以通过一个或多个媒介直接或间接地通信。此外,具有若 干相互通信的组件的实施例的描述并非暗示所有此类组件都是必需的。相 反,描述了多种可选的组件以说明更多可能的实施例。
此外,尽管可以按照连续的顺序来描述处理步骤、方法步骤、算法或 类似步骤,但是此类处理、方法和算法可以被配置为以替代顺序工作。换 句话说,所描述的步骤的任何序列或顺序并不一定指示要求按此顺序执行
步骤。实际可以按任何顺序执行在此描述的处理的步骤。此外,可以同时、 并行或并发地执行某些步骤。
当在此描述单个设备或物品时,将显而易见的是,可以使用多个i殳备/ 物品(无论它们是否协作)来代替单个设备/物品。同样,当在此描述了多 个设备或物品(无论它们是否协作)的情况下,将显而易见的是,可以使 用单个设备/物品来代替多个设备或物品。设备的功能和/或特性可以替代 地由一个或多个其他未明确描述为具有此类功能/特性的设备来体现。因
此,其他实施例不必包^i殳备本身。
图9示出了其中可以实现特定实施例的计算机系统900的方块图。系 统900可以包括可能在特定实施例中包括微处理器904的电路902。计算 机系统900还可以包括存储器卯6 (例如,易失性存储设备)和存储装置 908。存储装置908可以包括非易失性存储设备(例如,EEPROM、 ROM、 PROM、 RAM、 DRAM、 SRAM、闪存、固件、可编程逻辑等)、磁盘驱 动器、光盘驱动器、磁带驱动器等。存储装置908可以包括内部存储设备、 附加的存储设备和/或网络可访问的存储设备。系统900可以包括其中包含 代码912的程序逻辑910,代码912可以被加载到存储器906中并由微处 理器904或电路902执行。在某些实施例中,包括代码912的程序逻辑910 可以存储在存储装置卯8中。在某些其他实施例中,程序逻辑910可以在 电路卯2中实现。因此,虽然图9示出了程序逻辑910与其他元素分离, 但是程序逻辑910可以在存储器906和/或电路902中实现。
某些实施例可以涉及用于由个人或集成计算机可读代码的自动处理将 计算指令部署到计算系统中的方法,其中所述代码结合所述计算系统#皮4吏 能执行所描述的实施例的操作。
至少可以并行以及顺序执行附图中示出的某些操作。在备选实施例中, 可以以不同的顺序执行、l务改或删除某些操作。
此外,出于说明的目的在单独的模块中描述了许多软件和硬件组件。 此类组件可以集成到更少数量的组件中或者分成更多数量的组件。另外, 所描述的由特定组件执行的某些操作可以由其他组件来执行。
在附图和说明中示出或指出的数据结构和组件被描述为具有特定类型 的信息。在备选实施例中,可以不同地构造所述数据结构和组件,并且与 图中示出或指出的数据结构和组件相比,可以具有更少的、更多的或不同 的字段或不同的功能。
因此,出于说明和描述目的提供了以上实施例的描述。其并非旨在是 穷举的或将所述实施例限于已披露的精确形式。根据上述教导,可以做出 许多修改和变型。
附图标记说明
图4
Pa 功率的选点
P实际 实际功率值
E 误差(P &大-P 实际7
PID PID控制器
LUT 查找表
f 频率
v 电压
P 动态功率
P静态 静态功率
At 采样时间
图5
0最大温度的选点
0实际实际温度值
e il (6最大一0实际)
PID PID控制器
LUT 查找表
F 频率
V 电压 6 CPU温度
0环境 s^^:i^JL t 采样时间
权利要求
1.一种计算机系统(100)中的微处理器(110)的自主动态电压(v)和频率(f)调节的方法,所述方法包括以下步骤在一段时间内收集和存储(630)所述计算机系统的性能数据,所述性能数据包括高速缓存未命中和过时指令;从所存储的性能数据来预测(630)所述计算机系统的未来工作负荷度量及其持续时间,所述工作负荷度量包括每周期的过时指令,并根据所预测的未来工作负荷度量及其预测的持续时间来将所述计算机系统的当前工作负荷至少分类为正常工作负荷和高工作负荷阶段;对于分类为高工作负荷阶段的当前工作负荷,修改所述计算机系统的适于增加所述微处理器的频率和电压的参数;对于分类为正常工作负荷阶段的当前工作负荷,将所述微处理器的频率和电压修改为其正常值。
2. 如权利要求l中所述的方法,其中当前工作负荷进一步被分类为低 工作负荷阶段,还包括以下步骤对于分类为低工作负荷阶段的当前工作负荷,修改所述计算机系统的 适于将所述孩i处理器的频率和电压减小到其正常值以下的参数。
3. 如权利要求2中所述的方法,其中使用降低计算机系统功率的公知 方法来执行所述降低频率和电压的参数修改。
4. 如先前权利要求中的任一权利要求中所述的方法,还包括以下步测量并存储(620 )所述计算机系统的物理|*,所述物理参数包括功 耗、温度5当所存储的物理参数超过预定限制时,降低所述孩i处理器的频率和电 压,以防止以下情况中的至少一种情况失效、硬件损坏。
5. 如先前权利要求中的任一权利要求中所述的方法,其中所述性能数 据由以下项中的至少一项来提供所述微处理器,包括模型特定的寄存器、性能计数器;在所述计算机系统上执行的系统管理程序;所述计算机系统 的工作负荷管理器。
6. 如先前权利要求中的任一权利要求中所述的方法,其中通过使用代 表性能状态的表来映射值而执行所述计算机系统的所述M修改。
7. 如先前权利要求中的任一权利要求中所述的方法,其中使用针对存 储的性能数据的基于梯度的计算来执行所述未来工作负荷度量的预测。
8. —种用于微处理器(110)的自主动态电压(v)和频率(f )调节 的计算机系统,所述系统包括用于在一段时间内收集和存储(630 )所述计算机系统的性能数据的装 置,所述性能数据包括高速緩存未命中和过时指令;用于从所存储的性能数据来预测(630 )所述计算机系统的未来工作负 荷度量及其持续时间,所述工作负荷度量包括每周期的过时指令,并根据 所预测的未来工作负荷度量及其预测的持续时间来将所述计算机系统的当 前工作负荷至少分类为正常工作负荷和高工作负荷阶段的装置;对于分类为高工作负荷阶段的当前工作负荷,修改所述计算机系统的 适于增加所述孩i处理器的频率和电压的参数的装置;对于分类为正常工作负荷阶段的当前工作负荷,将所述孩吏处理器的频 率和电压修改为其正常值的装置。
9. 如权利要求8中所迷的计算机系统,其中当前工作负荷进一步被分 类为低工作负荷阶段,还包括对于分类为低工作负荷阶段的当前工作负荷,修改所述计算才几系统的 适于将所述孩^处理器的频率和电压减小到其正常值以下的参数的装置。
10. 如权利要求9中所述的计算机系统,其中使用降低计算机系统功 率的公知方法来执行所述降低频率和电压的参数修改。
11. 如权利要求8-10中的任一权利要求中所述的计算机系统,还包括 用于测量并存储(620 )所述计算机系统的物理参数的装置,所述物理参数包括功耗、温度;用于当所存储的物理参数超过预定限制时,降低所述微处理器的频率 和电压的装置,以防止以下情况中的至少一种情况失效、硬件损坏。
12. 如权利要求8-11中的任一权利要求中所述的计算机系统,其中所 述性能数据由以下项中的至少一项来提供所述微处理器,包括才莫型特定 的寄存器、性能计数器;在所述计算机系统上执行的系统管理程序;所述 计算机系统的工作负荷管理器。
13. 如权利要求8-12中的任一权利要求中所述的计算机系统,其中通过使用代表性能状态的表来映射值而执行所述计算机系统的所述参数修 改。
14. 如权利要求8-13中的任一权利要求中所述的计算机系统,其中使 用针对存储的性能数据的基于梯度的计算来执行所述未来工作负荷度量的 预测。
15. 如权利要求8中所述的计算机系统,其中性能度量的预测由以下 项中的一项来执行操作系统内核(150)的组件(190)、系统管理程序 的组件。
16. 如权利要求8或9中所述的计算机系统,其中所述计算机系统的 参数修改由以下项中的一项来执行操作系统内核(150)的组件(190)、 系统管理程序的組件。
17. 如权利要求8-10中的任一权利要求中所述的计算机系统,其中由 传感器(140)来测量所述计算机系统的物理参数。
18. 如权利要求17中所述的计算机系统,其中系统管理处理器(130) 检索由所述传感器提供的数据。
全文摘要
一种微处理器的自主动态电压(v)和频率(f)调节(DVFS)的方法,其中执行(PID)高微处理器工作负荷阶段的自主检测及其持续时间的预测。将微处理器频率(f)暂时增加(LUT)到与技术和环境约束一致的适当安全值(甚至超过其标称频率),以便当包括微处理器的计算机系统受益最大时改善性能,而在低微处理器工作负荷阶段期间,将降低其频率(f)和电压(v)以节约能量。此技术充分利用了隐藏的性能容量并改善了计算机系统的整体性能而不会危害工作稳定性。无需诸如服务处理器之类的额外硬件,因为当前的计算机系统已支持性能计数器和DFVS。本发明允许显著提高整体计算机系统性能,且仅对功(P<sub>最大</sub>,P<sub>实际</sub>)耗具有最小影响。
文档编号G06F1/32GK101187831SQ200710180380
公开日2008年5月28日 申请日期2007年10月23日 优先权日2006年10月24日
发明者C·R·勒弗吉, H·褒蒂格, L·斯蒂格, M·S·韦尔, P·阿尔特沃格特, W·M·菲尔特 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1