自适应片上数字功率估计器的制作方法

文档序号:29849140发布日期:2022-04-30 05:18阅读:104来源:国知局
自适应片上数字功率估计器的制作方法
自适应片上数字功率估计器


背景技术:
技术领域
1.本文所述的实施方案涉及计算系统的领域,并且更具体地,涉及动态地调整权重以便更准确地估计由处理单元消耗的功率。
2.相关技术描述
3.当生成由处理单元消耗的功率的估计值时,该估计值通常基于关于处理单元的离线假设。这些前阶段的估计值基于处理单元预期执行的工作负载的类型。然而,这些估计值通常无法提供对被消耗的实时功率的准确评估,所述实时功率可以基于正在执行哪个应用程序和/或其他因素(例如,电源变化、温度变化)而波动。
4.鉴于上述情况,期望用于生成功率消耗估计值的改进的方法和机制。


技术实现要素:

5.本发明设想了用于实施实时调整权重的动态功率估计单元的系统、装置和方法。在各种实施方案中,计算系统包括处理器、动态功率估计单元和功率管理单元。在一个实施方案中,动态功率估计单元通过将多个权重乘以多个计数器值来生成处理器的功率消耗估计值,其中每个权重乘以对应的计数器。动态功率估计单元计算多个权重和多个计数器乘积的总和。累积总和用作处理器的功率消耗的估计值。在周期性的基础上,将该估计值与电流感测值进行比较以测量误差。如果误差大于阈值,则实施片上学习算法以动态地调整权重。通过实时调整权重,生成更准确的功率消耗估计值。功率管理单元使用功率消耗估计值以将处理器保持在一个热范围内。
6.参考以下描述和附图将另外理解这些和其他实施方案。
附图说明
7.通过结合附图参考以下描述,可更好地理解方法和机制的上文和另外的优点,在附图中:
8.图1是计算系统的一个实施方案的一般化框图。
9.图2是示出片上学习系统的一个实施方案的一般化框图。
10.图3是示出混合片上学习(ocl)系统的一个实施方案的一般化框图。
11.图4是用于提高处理器功率消耗估计值的准确性的方法的一个实施方案的流程图。
12.图5是用于使用学习算法来提高功率消耗预测的准确性的方法的一个实施方案的流程图。
13.图6是用于使用学习算法以调整权重的方法的一个实施方案的流程图。
14.图7是系统的一个实施方案的框图。
15.虽然本公开中所述的实施方案可受各种修改形式和另选形式的影响,但是其具体
实施方案在附图中以举例的方式示出并将在本文详细描述。然而,应当理解,附图和对其的具体实施方式不旨在将实施方案限制为所公开的特定形式,而相反,本发明旨在涵盖落入所附权利要求书的实质和范围内的所有修改、等同物和另选方案。如在整个本专利申请中所使用的那样,以允许的意义(即,意味着具有可能性)而非强制的意义(即,意味着必须)使用字词“可”。类似地,字词“包括”意味着包括但不限于。
16.各种单元、电路或其他部件可被描述为“被配置为”实行一个或多个任务。在此类上下文中,“被配置为”是一般意味着“具有”在操作期间实行一个或多个任务的“电路”的结构的宽泛表述。如此,即使在单元/电路/部件当前未接通时,单元/电路/部件也可被配置为执行任务。通常,形成与“被配置为”对应的结构的电路可包括硬件电路。类似地,为了描述中方便,可将各种单元/电路/部件描述为执行一个或多个任务。此类描述应当被解释为包括短语“被配置为”。表述被配置为实行一个或多个任务的单元/电路/部件明确地旨在对该单元/电路/部件不调用35 u.s.c.
§
112(f)。
具体实施方式
17.在以下描述中,阐述了许多具体细节以提供对本公开中描述的实施方案的透彻理解。然而,本领域的普通技术人员应当认识到,可在没有这些具体细节的情况下实践实施方案。在一些实例中,为了便于例示且避免模糊实施方案的描述,尚未详细示出众所周知的电路、结构和技术。
18.现在参见图1,其示出了计算系统100的一个实施方案的框图。在一个实施方案中,计算系统100包括多个部件,诸如处理单元105、框架110、输入/输出(i/o)设备120、动态功率估计器(dpe)125、功率管理单元(pmu)130、电源135、高速缓存/存储器控制器140、存储器145和电流感测单元150。在其他实施方案中,计算系统100包括其他部件,并且/或者部件中的一个或多个被省略。另外,在其他实施方案中,计算系统100的部件可以以其他合适的方式连接。
19.处理单元105代表任何数量和类型的处理单元(例如,中央处理单元(cpu)、图形处理单元(gpu)、现场可编程门阵列(fpga)、专用集成电路(asic)、数字信号处理器(dsp))。处理器单元105包括用于执行特定指令集架构(isa)的指令的任何数量的核心(未示出),其中指令包括操作系统指令和用户应用程序指令。处理单元105还包括事件计数器107,其代表用于跟踪在执行一个或多个应用程序期间发生的不同类型的事件的发生的任何数量和类型的事件计数器。这些事件可以包括执行的指令、高速缓存缺失、存储器请求、页表缺失、分支误预测和/或其他类型的事件。
20.如图所示,处理单元105经由结构体110连接到一个或多个i/o设备120和高速缓存/存储器控制器140。此外,处理单元105经由高速缓存/存储器控制器140访问存储器145。在一个实施方案中,存储器145是外部计算机存储器,诸如非易失性存储器或动态随机存取存储器(dram)。非易失性存储器可以存储计算系统100的操作系统(os)。软件应用程序的指令可以被加载到处理单元105内的高速缓存存储器子系统(未示出)中。软件应用程序可能已经存储在非易失性存储器、dram和/或i/o设备120之一中的一者或多者中。处理单元105可以从高速缓存存储器子系统加载软件应用程序指令并处理该指令。
21.结构体110可包括各种互连器、总线、mux、控制器等,并且可被配置为促进在计算
系统100的各种元件之间的通信。在一些实施方案中,结构体110的各部分可以被配置为实现各种不同的通信协议。在其他实施方案中,结构体110可以实现单个通信协议,并且耦接到结构体110的元件可以在内部从单个通信协议转换为其他通信协议。
22.高速缓存/存储器控制器140可被配置为管理结构体110与一个或多个高速缓存和/或存储器(例如,非暂态计算机可读介质)之间的数据传输。例如,高速缓存/存储器控制器140可耦接到l3高速缓存,该l3高速缓存继而可耦接到系统存储器(例如,存储器145)。在其他实施方案中,高速缓存/存储器控制器140可直接耦接到存储器145。存储器145可以提供数据的非易失性随机存取次级存储装置。在一个实施方案中,存储器145可以包括一个或多个硬盘驱动器(hdd)。在另一实施方案中,存储器145利用固态磁盘(ssd)和/或dram。dram可以是一种动态随机存取存储器,其将每位数据存储在集成电路内的单独电容器中。与hdd和闪存存储器不同,dram可以是易失性存储器,而不是非易失性存储器。dram可以包括多信道存储器架构。这种类型的架构可以通过在其间添加更多的通信信道来提高到高速缓存/存储器控制器140的数据传输速度。
23.i/o设备120代表任何数量和类型的i/o设备和/或外围设备。i/o设备120中的一个或多个可以是显示器,诸如触摸屏、现代tv、计算机监视器或其他类型的显示器。计算机监视器可以包括薄膜晶体管液晶显示器(tft-lcd)面板。另外,显示器可以包括用于膝上型计算机和其他移动设备的监视器。视频图形子系统(未示出)可以用于显示器与处理单元105之间。视频图形子系统可以是母板上的单独卡,并且包括图形处理单元(gpu)。i/o设备120中的一个或多个可以是通常使用的i/o设备中的一个,诸如键盘、鼠标、打印机、调制解调器等。
24.电源135向系统100的各种部件提供电源电压。此外,在一个实施方案中,电源135向需要时钟以进行操作的部件提供时钟频率。例如,在该实施方案中,电源135包括一个或多个锁相环路(pll)(未示出),用于向各种部件提供一个或多个时钟。另选地,pll可以与电源135分开。功率管理单元(pmu)130耦接到电源135,并且pmu 130基于系统100的实时操作条件来控制提供给各种部件的特定电压和/或频率。在一个实施方案中,由dpe 125生成的功率消耗估计值被传送到pmu 130,并且pmu 130使用功率消耗估计值(即,功率消耗预测)来确定提高还是降低系统100的各种部件的功率性能状态。例如,在一个实施方案中,如果由dpe 125生成的功率消耗预测小于第一阈值,则pmu 130提高处理单元105和/或一个或多个其他部件的功率性能状态。另选地,在一个实施方案中,如果由dpe 125生成的功率消耗预测大于第二阈值,则pmu 130降低处理单元105和/或一个或多个其他部件的功率性能状态。
25.在一个实施方案中,dpe 125通过将系数127乘以计数器107来生成处理单元105的功率消耗估计值。在一个实施方案中,每个计数器107具有一个单独的系数127。在一个实施方案中,dpe 125计算每个系数-计数器对的乘积的总和。例如,如果存在三个单独的计数器107和三个系数127,则总和计算为系数_a*计数器_a+系数_b*计数器_b+系数_c*计数器_c。在其他实施方案中,可以将其他数量的计数器107和系数127一起相乘以生成总和。dpe 125然后基于在给定数量的时钟周期内累积的总和来生成功率消耗估计值。应注意,可以使用软件和/或硬件的任何合适的组合来实施dpe 125。虽然dpe 125被示出为计算系统100内的单独的单元,但是应当理解,在其他实施方案中,dpe 125可以是系统100的一部分或与系统
的一个或多个其他单元组合。例如,在另一实施方案中,dpe 125和pmu 130在单个单元中组合在一起。系统100内部件的其他布置和/或组合是可能的和可设想的。
26.在一个实施方案中,在训练阶段期间,dpe 125将功率消耗估计值与由电流感测单元150提供的实际功率消耗数据进行比较。在一个实施方案中,电流感测单元150使用一个或多个库仑计数器生成处理单元105的实际功率消耗数据。如本文所用,“库仑计数器”被定义为用于测量和保持设备所用电流的计数的设备。在一个实施方案中,库仑计数器使用与供应到设备的电压串联的电流感测电阻器,并且跨电阻器的电压降用作电流的量度。在一个实施方案中,当系统100为终端用户运行真实世界的应用程序时,dpe 125运行一种算法,该算法基于功率消耗估计值和实际功率消耗数据之间的误差来动态调整系数127。通过动态调整系数127,dpe 125能够生成功率消耗估计值,所述功率消耗估计值跟踪处理单元105的实时行为。另选地,系统100中的另一部件执行该算法以动态调整系数127。相比于系数127在运行期间是静态确定和固定的情况,系数127的此动态调整有助于使由dpe 125生成的预测更准确。
27.在动态调整阶段之后,dpe 125使用更新的系数127来生成处理单元105的高度准确的功率消耗预测。这些准确的功率消耗预测帮助pmu 130在改变系统100的各种部件的功率性能状态时做出更好的决策。另外,dpe 125可以定期或灵活地重复动态调节阶段以防止系数127过时。在一些情况下,dpe 127响应于检测到给定事件而执行动态调整阶段。例如,在一个实施方案中,响应于处理单元105执行先前未测试的新的应用程序,dpe 127启动动态调整阶段,使得系数127可以适应新的应用程序。用于触发训练阶段的其他事件是可能的和可设想的。
28.应当理解,虽然图1中出现了从电源135到系统100的部件的连接,尽管它们共享共同的迹线或总线,但仅出于说明性目的而示出。从电源135到各种部件的连接可以彼此独立,并且可以使用单独的物理迹线、电压平面、电线、总线引脚、背板连接等。应注意,其他实施方案可以包括部件的其他组合,包括图1所示部件和/或其他部件的子集或超集。虽然在图1中可能示出了给定部件的一个实例,但是其他实施方案可以包括给定部件的两个或更多个实例。类似地,在整个具体实施方式中,即使仅示出了一个给定部件,也可以包括给定部件的两个或更多个实例,并且/或者即使示出了多个实例,也可以使用包括仅一个实例的实施方案。另外,应当理解,系统100的部件之间的连接可以存在但不示出以避免模糊附图。
29.计算系统100的所示功能可以结合在单个集成电路上。在另一实施方案中,所示功能结合在计算机母板上的芯片组中。在一些实施方案中,计算系统100可以包括在桌面或服务器中。在又一实施方案中,所示功能结合在一个或多个片上系统(soc)的一个或多个半导体管芯。
30.现在转向图2,示出了片上学习系统205的一个实施方案的框图。在一个实施方案中,片上学习系统205实施在(图1的)动态功率估计器125上。在另一实施方案中,片上学习系统205的第一部分实施在动态功率估计器125上,并且片上学习系统205的第二部分实施在(图1的)处理单元107上。在其他实施方案中,使用其他部件或计算系统的部件的组合来实施片上学习系统205。在一个实施方案中,片上学习系统205负责调整由动态功率估计单元210使用的权重220a-n,用于生成由处理单元或其他部件消耗的功率的估计值。应注意,权重220a-n在本文中也可以称为“系数”。计数器215a-n代表任何数量的计数器,其跟踪与
处理器的当前操作状态相关联的各种度量。通常,这些计数器215a-n跟踪代表或指示由处理器消耗的功率的值。由计数器215a-n跟踪的事件的示例包括但不限于执行的指令、高速缓存请求、高速缓存缺失、存储器请求、分支误预测等。应注意,计数器215a-n也可以被称为“事件计数器”。
31.在一个实施方案中,动态功率估计单元210包括每个计数器215a-n的权重220a-n。在一个实施方案中,每个权重220a-n乘以每个时钟周期中对应的计数器215a-n。在其他实施方案中,使用除乘法操作之外的不同类型的算术或逻辑操作将每个权重220a-n应用于对应的计数器215a-n。在一个实施方案中,对于每个时钟周期,加法器225生成计数器215a-n乘以权重220a-n的乘积的总和。然后,加法器227累积“n”个时钟周期的由加法器225提供的总和,其中“n”是根据实施方案而变化的整数。在一些情况下,“n”的值是可编程的并且在运行期间可调整。加法器227的累积输出是处理单元(例如,图1的处理单元105)的功率消耗的预测。
32.将功率消耗的预测提供给比较器230。电流感测单元235基于由处理单元消耗的电流来生成功率的“真实”量度。此功率测量值被发送到比较器230以与由动态功率估计单元210生成的预测进行比较。由比较器230向学习算法240提供两个值之间的差值。使用硬件(例如,控制逻辑部件)和/或软件的任何合适的组合来实施学习算法240。例如,学习算法可以仅在硬件中,仅在软件中,或者利用混合的硬件/软件解决方案来实施。学习算法240使用各种类型的算法中的任一种以基于预测与功率消耗的测量值之间的差值来调整权重220a-n。例如,在一个实施方案中,学习算法240使用随机梯度下降(sgd)算法来调整和调谐由动态功率估计单元210使用的权重220a-n。动态功率估计单元210的这种调谐旨在使动态功率估计单元210在后续时钟周期中生成更准确的功率消耗预测。在其他实施方案中,学习算法240可以使用其他类型的算法来调整权重220a-n。
33.现在参考图3,示出了用于动态调整功率估计权重的混合片上学习(ocl)系统300的一个实施方案的框图。在一个实施方案中,混合ocl系统300包括用于在运行期间动态地更新权重305的硬件310和软件320的组合。应当理解,此混合硬件/软件系统仅仅是用于动态地调整功率估计权重的具体实施的一个示例。在其他实施方案中,可以实施纯硬件系统或纯软件系统以动态地调整功率估计权重。在一个实施方案中,权重305中的每一个将大于或等于零。换句话说,在该实施方案中,权重305是非负的。硬件310包括具有多个计数器335a-h的对乘积进行求和的数字功率估计器(dpe)单元330。计数器335a-h的数量和类型根据实施方案而变化。多个计数器335a-h跟踪与一个或多个处理单元、片上系统(soc)、集成电路(ic)或其他类型的部件或设备相关联的各种事件。
34.在一个实施方案中,权重305乘以对应的计数器335a-h以生成累积的总和,然后与由库仑计数器340生成的真值进行比较。在一个实施方案中,从权重305和计数器335a-h的乘积的累积总和中减去由库仑计数器340生成的平均真值。减法的结果是提供至软件320的误差。也可以将误差与阈值进行比较,并且该比较的结果也被提供给软件320。在一个实施方案中,软件320包括用于初始化λ、ε、权重和学习率的学习算法变量的程序指令。这些程序指令可由任何类型的处理器执行,其中处理器和isa的类型根据实施方案而变化。
35.在一个实施方案中,软件320还包括用于当比较器的输出等于一时更新权重的程序指令。当误差大于阈值时,比较器的输出等于一。通常,只要误差小于阈值,硬件310就可
以使用现有的权重305集。现有的权重305集也可以称为第一权重集。一旦误差大于或等于阈值,软件320将启动片上学习(ocl)例程以动态地更新权重305以产生第二权重集,以便降低对乘积进行求和的dpe单元330的输出与由库仑计数器340获得的度量之间的误差。在一个实施方案中,ocl例程针对预先训练模式使用第一算法并且针对后续迭代使用第二算法。在一个实施方案中,在预训练模式期间使用的第一算法是自适应梯度下降算法。在此实施方案中,在后续迭代期间使用的第二算法是自适应δ算法。在其他实施方案中,其他类型的算法可用于预训练模式和/或用于ocl例程的后续迭代。
36.现在转向图4,示出了用于提高处理器功率消耗估计值的准确性的方法400的一个实施方案。为了讨论的目的,以顺序次序示出该实施方案中(以及图5和图6中)的步骤。然而,在其他实施方案中,一些步骤可以与所示次序不同的次序发生,一些步骤可同时实行,一些步骤可与其他步骤组合,并且一些步骤可不存在。
37.在各种实施方案中,计算系统(例如,图1的计算系统100)启动训练阶段以训练动态功率估计单元(例如,图1的动态功率估计器125)(框405)。各种部件中的任一个,诸如处理单元(例如,处理单元105)、动态功率估计单元、功率管理单元(例如,功率管理单元130)或另一部件可以在框405中启动该训练阶段。在训练阶段期间,计算系统将动态功率估计单元的预测与功率消耗的电流感测测量值进行比较(框410)。如果预测与功率消耗的测量值之间的差值小于阈值(条件框415,“是”分支),则由功率管理单元(pmu)(例如,图1的pmu 130)使用动态功率估计单元的预测以将处理器(例如,图1的处理器105)保持在一个热范围内(即,热设计功率(thermal design point))(框420)。否则,如果预测与功率消耗的测量值之间的差值大于或等于阈值(条件框415,“否”分支),则学习算法调整动态功率估计单元的权重,以便减小预测与功率消耗的测量值之间的差值(框430)。通过(图6的)方法600来描述实施学习算法的一个示例。在框430之后,方法400返回到框410。在框420之后,计算系统等待给定持续时间过去(框425),并且然后方法400返回到框410。
38.现在参考图5,示出了用于使用学习算法来提高功率消耗预测的准确性的方法500的一个实施方案。系统(例如,图1的计算系统100)使用动态功率估计(dpe)单元(例如,图1的动态功率估计器125)以生成对处理器(例如,图1的处理器105)消耗多少功率的实时预测(框505)。接下来,系统实施学习算法以动态地调整dpe单元的权重,以便提高功率消耗预测的准确性(框510)。然后,系统使用功率消耗预测来调整处理器的功率性能设置(框515)。例如,在一个实施方案中,如果功率消耗预测小于功率消耗目标,则提高处理器的功率性能状态。否则,如果功率消耗预测大于功率消耗目标,则降低处理器的功率性能状态。在框515之后,方法500结束。
39.现在转向图6,示出了用于使用学习算法调整权重的方法600的一个实施方案。学习算法接收功率消耗估计与功率消耗测量值之间的误差的指示(框605)。接下来,学习算法仅识别相关系数,然后基于误差的函数来计算对相关系数的调整(框610)。在一个实施方案中,学习率被应用于误差,然后用于计算调整。然后,所计算的调整被应用于所识别的系数(框615)。在框615之后,方法600结束。在学习算法执行方法600之后,动态功率估计单元使用调整后的系数来生成更准确的功率消耗估计值。应注意,可以使用软件和/或硬件的任何合适的组合来实施该学习算法。
40.现在参见图7,其示出了系统700的一个实施方案的框图。如图所示,系统700可表
示台式计算机710、膝上型计算机720、平板电脑730、手机或移动电话740、电视750(或被配置为耦接到电视机的机顶盒)、手表或其他可穿戴物品760等的芯片、电路、部件等。其他设备是可能的并且被设想到的。在例示的实施方案中,该系统700包括耦接至外部存储器702的(图1的)处理单元105的至少一个实例。处理单元105可以包括或耦接到dpe单元和ocl算法单元。在各种实施方案中,处理单元105可以包括在片上系统(soc)或集成电路(ic)内,其耦接到外部存储器702、外围设备704和电源706。
41.处理单元105耦接到一个或多个外围设备704和外部存储器702。还提供了电源706,其向cpu 105供应供电电压以及向存储器702和/或外围设备704供应一个或多个供电电压。在各种实施方案中,电源706可表示电池(例如,智能电话、膝上型计算机或平板电脑中的可再充电电池)。在一些实施方案中,可以包括处理单元105的多于一个实例(也可包括多于一个外部存储器702)。
42.存储器702可以是任何类型的存储器,诸如动态随机存取存储器(dram)、同步dram(sdram)、双数据速率(ddr、ddr2、ddr3等)sdram(包括sdram的移动版本,诸如mddr3等,和/或sdram的低功率版本,诸如lpddr2等)、rambus dram(rdram)、静态ram(sram)等。一个或多个存储器设备可以耦接到电路板上以形成存储器模块,诸如单列直插存储器模块(simm)、双列直插存储器模块(dimm)等。另选地,设备可以与包括处理单元105的soc或ic在芯片堆叠(chip-on-chip)结构、封装堆叠(package-on-package)结构或者多芯片模块结构中安装。
43.根据系统700的类型,外围设备704可包括任何期望的电路。例如,在一个实施方案中,外围设备704可包括用于各种类型的无线通信的设备,诸如wifi、蓝牙、蜂窝、全球定位系统等。外围设备704还可包括附加存储装置,包括ram存储装置、固态存储装置或磁盘存储装置。外围设备704可包括用户接口设备诸如显示屏,包括触摸显示屏或多点触摸显示屏、键盘或其他输入设备、麦克风、扬声器等。
44.在各种实施方案中,软件应用程序的程序指令可用于实施先前所描述的方法和/或机制。程序指令可以高级编程语言(诸如c)来描述硬件的行为。另选地,可使用硬件设计语言(hdl),诸如verilog。程序指令可存储在非暂态计算机可读存储介质上。许多类型的存储介质是可用的。在使用期间可由计算机访问存储介质,以将程序指令和附带数据提供给计算机用于程序执行。在一些实施方案中,合成工具读取程序指令,以便产生包括来自合成库的门列表的网表。
45.应当强调的是,上述实施方案仅是具体实施的非限制性示例。一旦充分了解了上面的公开,许多变型和修改对于本领域的技术人员而言将变得显而易见。本公开旨在使以下权利要求书被阐释为包含所有此类变型和修改。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1