一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

使用自适应算法的基于工作负载的动态能量性能偏好的制作方法

2022-02-22 07:30:03 来源:中国专利 TAG:

使用自适应算法的基于工作负载的动态能量性能偏好
1.优先权要求
2.本技术要求2019年7月15日递交的标题为“dynamic energy performance preference based on workloads using an adaptive algorithm(使用自适应算法的基于工作负载的动态能量性能偏好)”的美国临时申请第62/874,411号的优先权,该美国申请被通过引用完全并入。


背景技术:

3.设计可能以功率消耗和能量消耗为代价优先考虑性能。一些产品可以实现功率/性能偏好输入和/或一组底层的优化算法。这种特征可以促进对工作负载行为的检测,以及p状态对这种行为的适应。例如,从深度c状态到100%活跃的转变可被假定是一种驱动全极速模式(turbo)的交互动作。
4.然而,这种对使用概况的“逆向工程”在成功率方面可能是有限的,并且可能有许多假阳性(例如,冗余的极速模式转变,这可能导致能量浪费)和/或假阴性(例如,错失的性能需求,这可能导致较低的性能和/或用户体验)。
附图说明
5.从以下给出的详细描述和从本公开的各种实施例的附图中将更充分理解本公开的实施例。然而,虽然附图会辅助说明和理解,但它们只是辅助,而不应当被理解为将本公开限制到其中描绘的具体实施例。
6.图1根据本公开的一些实施例图示了到操作系统和软件的pcode固件接口。
7.图2根据本公开的一些实施例图示了用于动态能量性能偏好(epp)的多个模块间的接口。
8.图3根据本公开的一些实施例图示了使用动态epp的体系结构。
9.图4根据一些实施例图示了示出由机器学习引擎分类的工作负载类别的一组曲线图。
10.图5根据一些实施例图示了工作负载分类的流程图。
11.图6根据本公开的一些实施例图示了示出当系统由直流(dc)供电时使用动态epp的性能增益的曲线图。
12.图7根据一些实施例图示了具有用于动态epp的机制的计算机系统或计算设备。
具体实施方式
13.处理器的能量和性能的固定平衡策略可能仅仅考虑到短期的微体系结构行为,但可能没有考虑到用户的使用概况。这种固定的平衡解决方案可能是不理想的,因为它们可能产生许多假阳性和假阴性(例如,功率/性能算法可能会在没有或几乎没有用户感知到的价值时启动全极速特征或模式,这可能会浪费能量,和/或可能保持在低p状态下运行,这进而可能导致较低的基准得分和/或不那么正面的用户体验)。这里,p状态指的是功率性能状
态,例如2019年1月发布的高级配置和电力接口(advanced configuration and power interface,acpi)规范6.3版所定义的那些。p状态提供了一种机制,以缩放处理器运行的频率和/或电压,从而降低处理器的功率消耗,并且使用最优能量。相反,c状态(例如,acpi规范所定义的那些)在处理器降低或关闭所选择的功能时被声明。这里的各种实施例适用于任何功率或能量性能度量,并不限于特定的p状态或c状态,和/或由acpi规范定义的那些状态。
14.各种实施例提供了用于在大的时间间隔上(例如,秒、分钟、小时、天、星期、月)跟踪用户行为概况并且为用户使用概况提取观察结果的机制和方法。一项人类活动可由数秒钟到数分钟的一致性来表征(例如,web浏览或视频播放,打开某些应用,等等)。本文公开的机制和方法的实施例还使用嵌入到诸如英特尔(intel)的动态调谐技术(dynamic tuning technology,dtt)之类的动态平台和热框架(dynamic platform and thermal framework,dptf)中的机器学习(machine-learning,ml)算法,并且使用硬件(hw)性能监视计数器来预测设备工作负载。dptf/dtt为平台组件和设备提供了机制,以使其以一致且模块化的方式接触到个体技术。dptf/dtt使得能够对平台进行协调控制,以实现功率和热管理目标。
15.这些机制和方法可相应地提高性能和用户响应能力,其方式是通过基于在较长的持续时间中对工作负载进行剖析并且预测工作负载的类型,来动态地改变能量性能偏好(energy performance preference,epp)值。这些机制和方法可在设备使用电池供电时被使用,但在被用于基于交流电(ac)(例如来自壁式插头的电力)的功率受限系统时也可能具有重要意义。
16.一些机制和方法包含了层次化控制,其中较高的层次执行使用分析(例如,在机器学习sw(软件)驱动器中,在数秒钟到数分钟的时间间隔上),以及底层功率管理单元(power management unit,pcu)和pcode控制。这里,pcode指的是由pcu执行来管理处理器的性能的固件。例如,pcode可为处理器设置频率和适当的电压。pcode的一部分是可经由操作系统(os)来访问的。在各种实施例中,这些机制和方法可以基于工作负载、用户行为和/或系统条件来动态地改变epp值。在操作系统和pcode之间可能有明确定义的接口。该接口可允许或者促进几个参数的软件配置和/或可向pcode提供提示。作为示例,一epp参数可告知pcode算法是性能还是电池寿命更重要。
17.在一些实施例中,驱动器(例如自适应迷你过滤器驱动器、邮箱驱动器、dtt驱动器,等等)中的算法可以使用来自操作系统的过滤器管理器的接口来检测某些类型的事件,例如文件打开事件、文件创建事件、文件关闭事件以及针对生产力使用的应用打开事件,然后可以动态地改变epp的值,以在事件的该持续时间中获得更高的性能。此外,嵌入到dtt中(或者与dtt分开)的机器学习算法可以使用hw计数器来预测设备的工作负载,并且pcode可以动态地改变epp的值以获得更高的性能和/或增加的电池寿命。epp值可被pcode算法用来设置处理器核心频率、内部片上系统(system-on-chip,soc)互连架构频率、和/或极速模式持续时间。随着epp值被减小,系统可能会变得自适应,并且可能提供更高的性能,这可能是用户为了更高的服务质量所希望的。
18.各种实施例有许多技术效果。例如,本文公开的机制和方法在应用启动和文件打开操作的响应能力方面可以产生10%到20%的性能改善。因此,它们可有利地提高系统性能。所公开的机制和方法可以促进对用户行为的更好表征,并且使得功率/性能配置更好地
适应用户需求和感知体验,这可能允许原始设备制造商(original equipment manufacturer,oem)有利地提供额外的10%至20%的系统性能。其他技术效果将从各种附图和实施例中清楚显现。
19.在接下来的描述中,论述了许多细节以提供对本公开的实施例的更透彻说明。然而,本领域技术人员将会清楚,没有这些具体细节也可以实现本公开的实施例。在其他情况下,以框图形式而不是详细示出公知的结构和设备,以避免模糊本公开的实施例。
20.注意,在实施例的相应附图中,以线条来表示信号。一些线条可能更粗,以指示出更大数目的构成信号路径,和/或在一端或多端具有箭头,以指示出信息流的方向。这种指示并不打算是限制性的。更确切地说,这些线条与一个或多个示范性实施例被联合使用来促进更容易理解电路或逻辑单元。由设计需要或偏好决定的任何所表示的信号可实际上包括可在任一方向上行进并且可利用任何适当类型的信号方案来实现的一个或多个信号。
21.在整个说明书各处,以及在权利要求中,术语“连接”的意思是连接的事物之间的直接电连接、机械连接或磁连接,没有任何中间设备。术语“耦合”的意思是连接的事物之间的直接电连接、机械连接或磁连接,或者通过一个或多个无源或有源中间设备的间接连接。术语“电路”或“模块”可以指被安排为与彼此合作来提供期望的功能的一个或多个无源和/或有源组件。术语“信号”可以指至少一个电流信号、电压信号、磁信号、或者数据/时钟信号。“一”、“一个”和“该”的含义包括多数指代。“在
……
中”的含义包括“在
……
中”和“在
……
上”。
22.术语“基本上”、“接近”、“大致”、“近似”和“大约”一般是指在目标值的 /-10%内。除非另有指明,否则使用序数形容词“第一”、“第二”和“第三”等等来描述共同对象只是表明相似对象的不同实例被引用,而并不打算暗示这样描述的对象必须在时间上、空间上、排名上或者以任何其他方式处于给定的序列中。
23.要理解,这样使用的术语在适当的情况下是可互换的,从而使得本文描述的发明的实施例例如能够按与本文图示或以其他方式描述的那些不同的其他朝向来操作。
24.说明书中和权利要求中的术语“左”、“右”、“前”、“后”、“顶部”、“底部”、“上”、“下”等等——如果有的话——是用于描述性目的的,而并不一定用于描述永久的相对位置。
25.就实施例而言,各种电路、模块和逻辑块中的晶体管是隧穿fet(tunneling fet,tfet)。各种实施例的一些晶体管可包括金属氧化物半导体(metal oxide semiconductor,mos)晶体管,其包括漏极端子、源极端子、栅极端子和体端子。晶体管也可包括三栅和finfet晶体管、全包围栅圆柱体晶体管、方形线晶体管、或者矩形带状晶体管、或者像碳纳米管或自旋器件之类的实现晶体管功能的其他器件。mosfet对称源极和漏极端子是相同的端子并且在这里可被互换使用。另一方面,tfet器件具有非对称源极和漏极端子。本领域技术人员将会明白,在不脱离本公开的范围的情况下,其他晶体管,例如双极结晶体管-bjt pnp/npn、bicmos、cmos等等,可被用于一些晶体管。
26.就本公开而言,短语“a和/或b”和“a或b”的意思是(a)、(b)或者(a和b)。就本公开而言,短语“a、b和/或c”的意思是(a)、(b)、(c)、(a和b)、(a和c)、(b和c)或者(a、b和c)。
27.此外,本公开中论述的组合逻辑和顺序逻辑的各种元素既可涉及物理结构(例如与门、或门或者异或门),也可涉及实现作为所论述的逻辑的布尔等同的逻辑结构的器件的合成的或者以其他方式优化的集合。
28.图1根据本公开的一些实施例图示了具有到操作系统和软件的pcode接口的硬件到软件层次结构100。层次结构100有四个抽象级别,包括:软件,具有允许用户模式101操作的应用;内核,具有操作系统模式102操作;固件,具有pcode模式103操作;以及硬件,具有诸如(一个或多个)处理器核心104、图形处理器单元(graphics processor unit,gpu)105、网状或环状互连架构106和系统代理(system agent,sa)107之类的组件。在一些实施例中,各种组件是独立的组件具有其自己的封装。在一些实施例中,一个或多个组件是在单个封装中耦合的片上系统的一部分。在一些实施例中,一个或多个组件中的一些可以在soc中,而其他组件可以在soc之外。在一些实施例中,组件中的任何一者可包括功率控制单元(power control unit,pcu)或者任何适当的功率管理逻辑,其执行pcode(固件)。在一些实施例中,pcu是单独的硬件组件。在一些实施例中,pcu与pcu针对功率性能进行管理的一个或多个组件分开地执行固件。在pcu是一个或多个硬件组件的一部分的情况下,pcu执行pcode固件并且管理一个或多个硬件组件的功率性能。还参考图7图示了层次结构100的各种配置。
29.返回参考图1,用户模式101包括软件应用(例如,web浏览器、电子邮件处理程序、文字处理软件,等等),它们经由完善的应用编程接口(application programming interface,api)与操作系统进行通信。这里,操作系统模式102包括i/o管理器、过滤器管理器、文件系统驱动器、存储驱动器等等,它们在处于用户模式101的应用与固件103和/或硬件之间进行通信。操作系统从pcode接收epp的默认值,该值可以是epp的最大和最小允许值之间的值。pcode还可以向操作系统提供关于何时应用epp值的时间窗口。传统上,epp值对于处理器的特定能量或性能偏好是固定的。这个值传统上可以例如由操作系统在重启时静态地改变,但在重启之后不能基于工作负载和用户行为来动态地改变。
30.传统上,epp值是具有默认值的静态值。表格1中示出了microsoft操作系统的默认值。
31.表格1
[0032][0033][0034]
操作系统将epp设置归功于片上系统(soc)硬件p状态(hardware p-state,hwp)算法。windows操作系统基于操作系统处理器功率管理(processor power management,ppm)设置和操作系统滑块位置来映射epp。epp值通常定义了hwp内的性能与能量的权衡。hwp epp改变了soc使用的持续频率和最大频率。当前,epp值是静态的。这些参数或值可以由操作系统静态地改变(例如,在引导时,或者在ac转变到dc或者dc转变到ac电源时)。例如,原始设备制造商(oem)可以使用滑块位置来静态地配置epp值,从而改变ac和dc条件的epp值。
[0035]
pcode可以使用各种参数来基于可由软件配置的参数为核心频率、gpu频率和内部soc频率设置适当的频率。使用本文公开的机制和方法,驱动器(例如,迷你过滤器驱动器)
可以基于工作负载和/或使用情况来识别何时改变epp值。在一些实施例中,本文公开的机制和方法在各种工作负载和操作条件下随着时间的推移监视至少三个因素。这三个因素包括处理器消耗的能量、处理器的持续性能和处理器的突发性能(例如,响应能力)。各种实施例的机制和方法可以适应性地或动态地改变epp的值,以改善或优化至少三个因素中的一个或多个。这里,动态地改变值一般是指在处理器在运行时(例如,在引导操作之后)实时改变参数,而不要求处理器的重引导或重启动。表格2提供了硬件组件(例如,(一个或多个)核心104、gpu 105、网状或环状架构106、sa107,等等)和操作系统之间经由pcode的一些硬件p状态接口。这些接口在操作系统和pcode之间有明确的定义。
[0036]
表格2
[0037][0038][0039]
正如本文所论述的,pcode是英特尔片上系统(soc)中的一种固件,它为soc设置频率和适当的电压。该接口允许软件配置若干个参数并且向pcode提供提示。作为示例,能量性能偏好(epp)参数通知pcode算法是性能更重要还是电池寿命更重要。pcode使用这些参数来基于由软件配置的参数(见表格2)为核心、gpu和内部soc频率设置适当的频率。
[0040]
各种实施例提供了机制和方法来适应性地调整这些参数中的一个或多个。例如,可以根据工作负载条件来适应性地修改epp值。这些机制和方法可以作为dtt驱动器和/或os内核模式102中的其他模块的一部分来实现。在一些实施例中,使用机器学习(ml)算法实现对epp的动态调整,以提高性能、响应能力,同时维持dc模式中的电池寿命。
[0041]
例如,dtt驱动器(os和pcode的接口模块)从在硬件中执行的机器学习引擎接收预测,以分类和预测用户行为,并且提供与用户行为相对应的预测值。该预测值与epp值相对应,然后epp值由os动态修改。在一些实施例中,dtt软件经由pcode接口向片上系统(soc)发送工作负载提示。soc针对每种类型的工作负载提示机会性地缩放内部p状态控制算法(hwp)。在各种实施例中,给soc的运行时工作负载提示被定义为以下之一:空闲、电池寿命、
突发、持续、和/或半活跃。机器学习引擎为给定的工作负载创建工作负载分类预测(例如,空闲、电池寿命、突发、持续和/或半活跃中的一个)。工作负载提示具有相应的预测值。基于预测值,在一些实施例中,os然后指示pcode(固件)执行epp控制。例如,pcode根据新的epp值为硬件组件(例如,(一个或多个)核心104、gpu 105、网状或环状架构106、sa 107,等等)中的一个或多个调整频率和/或电压。
[0042]
图2根据本公开的一些实施例图示了在用于动态能量性能偏好(epp)的多个模块间具有接口的功能图200。功能图200提供了内核和固件中的模块。在一些实施例中,dtt驱动器201包括逻辑(例如,软件模块)来与机器学习(ml)模块或引擎202相接口。在一些实施例中,在用户模式中以软件实现机器学习引擎202。在一些实施例中,利用乘法器和加法器在硬件中实现机器学习引擎202。在一些实施例中,机器学习引擎202被实现为dtt驱动器201的一部分。根据一些实施例,可以在硬件和/或软件中实现机器学习引擎202。
[0043]
dtt驱动器201向机器学习引擎202提供dtt遥测数据,并且响应于此接收预测激活类型。遥测数据包括诸如以下数据:工作负载类型(例如,像microsoftmicrosoftadobeweb浏览器等等之类的应用的类型)、调用应用的时间(例如,一天中的时间、星期几,等等)、处理器的当前频率(例如,执行工作负载的处理器的操作时钟频率)、为处理器供电的电池的当前电池电量、处理器的操作供应电压、被调用的应用的当前响应能力、以及当前epp值,等等)。
[0044]
机器学习引擎202基于由dtt 201收集并且被递送到ml模块202的遥测和事件来进行操作。ml模块202在运行时预测当前活动类型,并且将此预测值递送到dtt 201中。在一些实施例中,机器学习引擎202包括经训练的模型(这可以是先验训练的)。在这种情况下,机器学习引擎202响应于接收到输入数据而应用推断(用于预测类型或值)。此预测值可被dtt 201用于其控制方法,并且经由dtt驱动器201和pcode 103之间的接口被递送到hw和pcode中。这个接口203(例如,pcode-dtt接口)可被定义为mmio(存储器映射的io)寄存器,msr(模型特定寄存器)或bios(基本输入/输出系统)邮箱。额外的数据字段被添加到接口203,以便将预测值、类型和/或工作负载提示从dtt驱动器201传达给pcode 103。表格3提供了32比特pcode接口203的功能结构。
[0045]
表格3
[0046]
[0047][0048]
在一些实施例中,32比特数据输入的一些或所有字段是pcode辅助接口的一部分。这些字段在运行时被提供给pcode控制流204,该控制流通过为处理器设置新的频率和/或电压条件来执行新的epp值,以增强用户体验。在一些实施例中,dtt驱动201周期性地向soc(或硬件)发送工作负载提示(例如,预测值)。例如,dtt每隔1秒向soc发送工作负载提示。发送工作负载提示的周期是可编程的。在一些实施例中,dtt可不改变os epp设置,而是将工作负载提示映射到内部hwp算法,该算法修改与改变soc或windows os epp类似的hwp行为。在一些实施例中,dtt在ac操作模式中(例如,当计算机被插入ac源而不是dc电池源时)不发送工作负载提示。在一些实施例中,当计算机的显示屏幕关闭时,dtt不活跃。各种实施例可能不要求对内置输入/输出系统(bios)进行任何改变。ml算法可以是预训练的,或者用于更快的epp调整,或者可以随着时间的推移针对每个计算机进行训练。
[0049]
在一些实施例中,机器学习引擎202是纯粹的软件。在一些实施例中,机器学习引擎202在一个或多个处理器核心104上执行,其中机器学习引擎202将预测值发送到(执行机器学习引擎202的)同一核心并且控制该同一核心。在一些实施例中,机器学习引擎202在专用硬件(例如,专用集成电路)或处理器核心之一上执行,并且将预测值发送到控制不同核心的pcu或某个固件。在一些实施例中,机器学习引擎202在控制(一个或多个)处理器核心104的同一pcu上的固件中执行。
[0050]
图2的附加模块包括操作系统功率管理模块205,它经由pcode os接口206向pcode 103或pcode控制流204提供硬件p状态(hwp)提示。硬件p状态提示包括例如表格2的静态参数。pcode控制流204接收硬件遥测数据,例如处理器的温度、处理器的当前频率和操作电
压、活跃处理器核心的数目、处理器的当前c状态,等等。在一些实施例中,该硬件遥测数据被与来自操作系统的hwp提示相结合,并且经由pcode dtt接口203被提供给机器学习模块202。机器学习模块202适应性地生成dtt驱动器201的预测激活类型,该预测激活类型经由pcode os接口206为pcode 103或pcode控制流204动态地提供epp值。进而,pcode 103导致(一个或多个)硬件组件调整频率和/或电压以适应新的epp值。
[0051]
图3根据本公开的一些实施例图示了使用动态epp的体系结构300。体系结构300是图2的体系结构流的替换。体系结构300示出了迷你过滤器301、dtt模块302、pcode 303(与103或控制流204相同)、i/o管理器304、过滤器管理器305、以及文件系统驱动器306。这里,添加了迷你过滤器驱动器301,它基于工作负载和使用情况来识别何时改变能量性能偏好(epp)值。在一些实施例中,迷你过滤器驱动器301向现有的软件体系结构中的过滤器管理器305进行注册,并且获得关于i/o请求分组的某些类型的事件的通知。i/o请求分组被i/o管理器304接收。这些i/o请求分组被过滤器管理器305过滤,过滤器管理器305将i/o分组请求从一种格式转换为另一种格式,以便后续驱动器进行处理。例如,过滤器管理器305将i/o管理器304接收到的i/o请求转换为可由文件系统驱动器306和/或存储驱动器307处理的格式。然后,文件系统驱动器306和/或存储驱动器307将i/o请求发送到固件和/或硬件以进一步处理。
[0052]
在一些实施例中,迷你过滤器驱动器301中的算法处理带有来自系统的输入的事件,并且确定何时改变epp。一旦做出了决定,迷你过滤器驱动器301就经由dtt 302使用辅助接口来动态地改变epp。
[0053]
图4根据一些实施例图示了示出由机器学习引擎202分类的工作负载类别的一组曲线图400。在计算中,工作负载(wl)是规定计算机在给定的时间中要进行的处理的量。在评估计算机系统的性能时,可以指定所定义的工作负载作为基准。预测工作负载行为或提示的第一步是定义5个wl类别——空闲或电池寿命401、持续402、突发403、以及半活跃404。
[0054]
在空闲类别中,计算机系统不执行任务,功率和驻留率在长时间段中始终较低。在电池寿命中,功率相对较低,但处理器可能仍在活跃地执行任务,例如长时间段的视频重放。突发类别消耗相对恒定的平均功率量,然而,活动的突发中断了相对空闲的时段。这些突发相对较短,并且与相对空闲间隔排列,这通常不会耗尽单线程的pl1预算。对于多线程的工作负载,典型的突发功率高于pl1,但低于pl2。半活跃类别消耗相对恒定的平均功率量,显著低于pl1。相对较长的活动突发中断了相对空闲的时段。突发可能是不规则的,但足够长且高到耗尽pl2预算。pl1(功率水平1)被定义为处理器在持续时间段中能够消耗的功率量,而pl2(功率水平2)指示出芯片的最大短期突发功率消耗。在持续类别中,与半活跃相比,功率水平在长时间段中相对较高,很少甚至没有空闲时段,可以达到pl2和pl1水平。
[0055]
图5根据一些实施例图示了工作负载分类的流程图500。虽然流程图500中的块被以特定顺序示出,但顺序可被修改。例如,一些块可以与其他块被并行执行。
[0056]
在块501,遥测数据(或硬件数据)从硬件经由pcode接口203被提供给dtt驱动器201。硬件(hw)数据可以是来自处理器的操作的数据(例如,遥测数据和输入数据),但也可以来自平台硬件501的组件(例如,功率控制单元(pcu)、(一个或多个)处理器核心104、图形处理器单元105、环状互连106、片上系统(soc),等等)。硬件数据可包括活跃处理器核心的数目、活跃组件和其他遥测信息。在块502,还收集性能监视数据,并且经由pcode接口203将
其提供给dtt驱动器201。性能监视数据可包括功率参数、频率、驻留率、温度,等等。
[0057]
在块503,dtt驱动器201向机器学习引擎202提供输入数据(例如,遥测数据和性能监视数据)。在各种实施例中,为了识别工作负载特性并且能够预测未来的工作负载类别,使用预测引擎202(或机器学习引擎202)。基于收集到的hw数据,以及先前的预测,预测引擎202预测未来时间段中被处理器执行的工作负载的特性。预测引擎202预测,处理器将要执行的未来工作负载的行为最有可能属于若干个分类中的一种:空闲、电池寿命、突发、半活跃或持续。
[0058]
在接收到预测时,dtt 503将其提供给邮箱驱动器504(例如,pcode接口驱动器),以指示pcode基于预测来调整epp。在块505,pcode调整epp。从而,在接收到工作负载预测时,dtt 503基于来自预测引擎202的预测而实时地引起对epp的调整。例如,如果工作负载预测是突发分类,那么dtt 503可以使得pcode增大epp的值,例如,增大到30%,以提高系统响应能力。在一些实施例中,预测引擎202(也被称为机器学习引擎202)是通用的,并且可以适合原始设备制造商(oem)的任何平台和预训练引擎。
[0059]
表格4说明了基于工作负载的各种机器学习模式。
[0060]
表格4
[0061][0062][0063]
取决于工作负载提示和参考起始epp值,pcode算法被改变以提供额外的突发性能或节省能量。作为示例,对于突发工作负载,自主响应被减小20%,使得接下来的结果是更高的性能。
[0064]
在一些实施例中,pcode使用工作负载预测作为epp提升表格的索引,它定义了从其开始或停止提升的阈值(根据提升是正的还是负的),以及提升量。在一些实施例中,对于使用epp的不同算法有单独的提升表格
‑‑
例如表格5中所示的自主和p-alpha。
[0065]
表格5
[0066][0067]
pcode在其算法中使用两个参数,即阈值和提升,来确定自主和p-alpha两种模式上的epp值。通过改变阈值和提升参数,在更高的操作频率下,随着更高的驻留率增大突发性工作负载的性能。
[0068]
在一些实施例中,可以根据以下方式提升epp:
[0069]
在以下条件下epp被提升:
[0070]
·
if(boost》0)
[0071]
boosted_epp=epp》threshold?epp:min(threshold,epp boost)
[0072]
·
if(boost《0)
[0073]
boosted_epp=epp》threshold?max(threshold,epp-boost):epp
[0074]
在一些实施例中,在算法的不同部分中自主使用提升的epp:降档阈值;平均c0%窗口的tau;变化之间的延迟;用于增大/减小频率的c0%阈值。对于p-alpha,提升的epp被用于计算alpha,其中更高的epp意味着alpha更激进地朝向能量节省。
[0075]
实施例的元素还被提供为用于存储计算机可执行指令(例如,实现本文论述的任何其他过程的指令)的机器可读介质(例如,存储器),计算机可执行指令也被称为机器可执行指令。在一些实施例中,计算平台包括耦合在一起的存储器、处理器、机器可读存储介质(也称为有形机器可读介质)、通信接口(例如,无线或有线接口)、以及网络总线。
[0076]
在一些实施例中,处理器是实现简单的有限状态机来执行各种实施例的方法等等的数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、通用中央处理单元(central processing unit,cpu)、或者低功率逻辑。
[0077]
在一些实施例中,系统的各种逻辑块经由网络总线耦合在一起。任何适当的协议可用于实现网络总线。在一些实施例中,机器可读存储介质包括如参考各种实施例和流程图所描述用于参考另一设备计算或测量设备的距离和相对取向的指令(也称为程序软件代码/指令)。
[0078]
与方法相关联并且被执行来实现所公开的主题的实施例的程序软件代码/指令可被实现为被称为“程序软件代码/指令”、“操作系统程序软件代码/指令”、“应用程序软件代码/指令”或者简称为“软件”或嵌入在处理器中的固件的操作系统或特定应用、组件、程序、对象、模块、例程或者其他指令序列或者指令序列的组织的一部分。在一些实施例中,与各种实施例相关联的程序软件代码/指令由计算系统执行。
[0079]
在一些实施例中,与各种流程相关联的程序软件代码/指令被存储在计算机可执行存储介质中并且由处理器执行。这里,计算机可执行存储介质是可用于存储程序软件代码/指令和数据的有形机器可读介质,该程序软件代码/指令和数据当被计算设备执行时,使得一个或多个处理器执行可在针对所公开的主题的一个或多个所附权利要求中记载的(一个或多个)方法。
[0080]
在一些实施例中,该方法或操作包括:从一个或多个硬件组件接收遥测数据和性能数据;将遥测数据和性能数据提供给机器学习引擎以预测工作负载类型;接收预测的工作负载类型;基于预测的工作负载类型来适应性地修改能量性能偏好;并且将经修改的能量性能偏好提供给固件,该固件进而调整一个或多个组件的频率和/或电压。在一些实施例中,工作负载类型是以下之一:空闲,半活跃、突发、持续、以及电池寿命。在一些实施例中,能量性能偏好是操作系统可见的。在一些实施例中,能量性能偏好被调整到更低的值,一个或多个组件的性能增大。在一些实施例中,随着能量性能偏好被调整到更高的值,一个或多个组件的性能增大。在一些实施例中,在软件和/或硬件中实现机器学习引擎。在一些实施例中,一个或多个组件包括:一个或多个处理器核心、图形处理单元、以及网状或环状架构。
[0081]
有形机器可读介质可包括可执行软件程序代码/指令和数据在各种有形位置中的存储,例如包括rom、易失性ram、非易失性存储器、和/或缓存、和/或本技术中引用的其他有形存储器。此程序软件代码/指令和/或数据的一些部分可被存储在这些存储装置和存储器设备中的任何一者中。另外,可从其他存储装置获得程序软件代码/指令,包括例如通过集中式服务器或对等网络等等(包括互联网)获得。可在不同的时间和在不同的通信会话中或者在同一通信会话中获得软件程序代码/指令和数据的不同部分。
[0082]
软件程序代码/指令以及数据可在各个软件程序或应用被计算设备执行之前被完全获得。或者,可在执行需要时动态地(例如,刚好及时地)获得软件程序代码/指令和数据的一些部分。可替代地,获得软件程序代码/指令和数据的这些方式的某种组合可发生,例如,对于不同的应用、组件、程序、对象、模块、例程或者其他指令序列或指令序列的组织。从而,不要求数据和指令在特定的时刻全部在有形的机器可读介质上。
[0083]
有形计算机可读介质的示例包括但不限于可记录和不可记录类型的介质,例如易失性和非易失性存储器设备、只读存储器(rom)、随机访问存储器(ram)、闪存设备、软盘和其他可移除盘、磁存储介质、光存储介质(例如、致密盘只读存储器(cd rom)、数字多功能盘(dvd),等等),等等。软件程序代码/指令可被临时存储在数字有形通信链路中,同时通过这种有形通信链路实现电的、光的、声学的或者其他形式的传播信号,例如载波、红外信号、数字信号,等等。
[0084]
一般而言,有形机器可读介质包括以机器(即,计算设备)可访问的形式提供信息(即,以数字形式存储和/或传输信息,例如数据分组)的任何有形机制,其可被包括在例如通信设备、计算设备、网络设备、个人数字助理、制造工具、移动通信设备(无论其是否能够从通信网络(例如互联网)下载和运行应用和补贴应用,例如从通信网络(例如互联网)下载和运行应用和补贴应用,例如等等)或者包括计算设备的任何其他设备中。在一个实施例中,基于处理器的系统采取如下形式或者被包括在如下事物内:pda(个人数字助理)、蜂窝电话、笔记本计算机、平板设备、游戏机、机顶盒、嵌入式系统、tv(电视)、个人台式计算机,等等。
或者,在所公开的主题的一些实施例中可以使用传统的通信应用和(一个或多个)补贴应用。
[0085]
图6根据本公开的一些实施例图示了示出使用动态epp的直流(dc)性能增益的曲线图600。这里,y轴是以毫秒为单位的应用的响应能力。x轴包括被测试的各种应用的列表。对于每个应用,响应能力是使用静态epp方法和对于各种实施例的动态epp方法来确定的。本文公开的机制和方法提高了应用的响应能力,例如,提高了10%至20%。作为示例,通过使用所公开的使用动态epp的机制和方法,启动应用可以从默认情况(例如,静态epp)下的8.1秒改善到6.5秒。电池寿命可以经历2%至3%的最低限度影响,因为各种实施例的机制和方法是自适应的、基于事件的,并且在对用户而言重要的特定类型的操作的持续时间内动态配置epp。
[0086]
图7根据一些实施例图示了具有用于动态epp的机制的计算机系统或计算设备。要指出,图7的具有与任何其他图中的元素相同的标号(或名称)的那些元素可按与所描述的相似的任何方式来操作或工作,但不限于此。
[0087]
在一些实施例中,设备2400表示适当的计算设备,例如计算平板、移动电话或智能电话、膝上型电脑、台式电脑、物联网(internet-of-things,iot)设备、服务器、可穿戴设备、机顶盒、具备无线能力的电子阅读器,等等。将会理解,某些组件被概括示出,并且在设备2400中没有示出这种设备的所有组件。设备2400的任何组件可包括各种实施例的锁存器和/或触发器。
[0088]
在一示例中,设备2400包括soc(片上系统)2401。soc 2401的示例边界在图7中利用虚线来图示,其中一些示例组件被图示为包括在soc 2401内——然而,soc 2401可包括设备2400的任何适当组件。
[0089]
在一些实施例中,设备2400包括处理器2404。处理器2404可包括一个或多个物理设备,例如微处理器、应用处理器、微控制器、可编程逻辑器件、处理核心、或者其他处理装置。处理器2404执行的处理操作包括对其上执行应用和/或设备功能的操作平台或操作系统的执行。处理操作包括关于与人类用户或与其他设备的i/o(输入/输出)的操作、关于功率管理的操作、关于将计算设备2400连接到另一设备的操作,等等。处理操作还可包括与音频i/o和/或显示i/o有关的操作。
[0090]
在一些实施例中,处理器2404包括多个处理核心(也称为核心)2408a、2408b、2408c。虽然在图7中只图示了三个核心2408a、2408b、2408c,但处理器2404可包括任何其他适当数目的处理核心,例如数十个或者甚至数百个处理核心。处理器核心2408a、2408b、2408c可被实现在单个集成电路(ic)芯片上。此外,芯片可包括一个或多个共享的和/或私有的缓存、总线或互连、图形和/或存储器控制器,或者其他组件。
[0091]
在一些实施例中,处理器2404包括缓存2406。在一示例中,缓存2406的一些区段可专用于个体核心2408(例如,缓存2406的第一区段专用于核心2408a,缓存2406的第二区段专用于核心2408b,等等依此类推)。在一示例中,缓存2406的一个或多个区段可以是两个或更多个核心2408之间共享的。缓存2406可被分割成不同的级别,例如第1级(l1)缓存、第2级(l2)缓存、第3级(l3)缓存,等等。
[0092]
在一些实施例中,处理器核心2404可包括取得单元来取得指令(包括具有条件分支的指令)来供核心2404执行。可以从诸如存储器2430之类的任何存储设备取得指令。处理
器核心2404也可包括解码单元来对取得的指令解码。例如,解码单元可将取得的指令解码成多个微操作。处理器核心2404可包括调度单元来执行与存储经解码的指令相关联的各种操作。例如,调度单元可保存来自解码单元的数据,直到指令准备好调谴为止,例如,直到解码的指令的所有源值变得可用为止。在一个实施例中,调度单元可调度和/或发出(或调谴)解码的指令到执行单元以供执行。
[0093]
执行单元可在调谴的指令被解码(例如,被解码单元解码)和派谴(例如,被调度单元调谴)之后执行这些指令。在一实施例中,执行单元可包括多于一个执行单元(例如成像计算单元、图形计算单元、通用计算单元,等等)。执行单元也可执行各种算术操作,例如加法、减法、乘法和/或除法,并且可包括一个或多个算术逻辑单元(arithmetic logic unit,alu)。在一实施例中,协处理器(未示出)可联合执行单元来执行各种算术操作。
[0094]
另外,执行单元可无序地执行指令。因此,处理器核心2404在一个实施例中可以是无序处理器核心。处理器核心2404也可包括引退单元。引退单元可在执行的指令被提交之后引退这些指令。在一实施例中,执行的指令的引退可导致处理器状态被从指令的执行提交、指令使用的物理寄存器被解除分配,等等。处理器核心2404还可包括总线单元来使能处理器核心2404的组件和其他组件之间经由一个或多个总线的通信。处理器核心2404还可包括一个或多个寄存器来存储被核心2404的各种组件访问的数据(例如与指派的app优先级和/或子系统状态(模式)关联有关的值)。
[0095]
在一些实施例中,设备2400包括连通性电路2431。例如,连通性电路2431包括硬件设备(例如,无线和/或有线连接器和通信硬件)和/或软件组件(例如,驱动器、协议栈),来例如使得设备2400能够与外部设备通信。设备2400可与诸如其他计算设备、无线接入点或基站等等之类的外部设备相分离。
[0096]
在一示例中,连通性电路2431可包括多个不同类型的连通性。概括而言,连通性电路2431可包括蜂窝连通性电路、无线连通性电路,等等。连通性电路2431的蜂窝连通性电路一般指的是由无线运营商提供的蜂窝网络连通性,例如经由以下所列项来提供:gsm(global system for mobile communications,全球移动通信系统)或者变体或衍生物,cdma(code division multiple access,码分多址接入)或者变体或衍生物,tdm(time division multiplexing,时分复用)或者变体或衍生物,第3代合作伙伴计划(3rd generation partnership project,3gpp)通用移动电信系统(universal mobile telecommunications systems,umts)系统或者变体或衍生物,3gpp长期演进(long-term evolution,lte)系统或者变体或衍生物,3gpp lte高级版(lte-advanced,lte-a)系统或者变体或衍生物,第五代(5g)无线系统或者变体或衍生物,5g移动网络系统或者变体或衍生物,5g新无线电(new radio,nr)系统或者变体或衍生物,或者其他蜂窝服务标准。连通性电路2431的无线连通性电路(或无线接口)指的是非蜂窝的无线连通性,并且可包括个人区域网(例如蓝牙、近场等等)、局域网(例如wi-fi)和/或广域网(例如wimax),和/或其他无线通信。在一示例中,连通性电路2431可包括网络接口,例如有线或无线接口,例如,使得系统实施例可被包含到无线设备中,例如,蜂窝电话或个人数字助理。
[0097]
在一些实施例中,设备2400包括控制中枢2432,该控制中枢表示关于与一个或多个i/o设备的交互的硬件设备和/或软件组件。例如,处理器2404可经由控制中枢2432与显示器2422、一个或多个外围设备2424、存储设备2428、一个或多个其他外部设备2429等等中
的一个或多个进行通信。控制中枢2432可以是芯片组、平台控制中枢(platform control hub,pch),等等。
[0098]
例如,控制中枢2432说明了用于连接到设备2400的附加设备的一个或多个连接点,例如,通过这些附加设备用户可与系统交互。例如,可附接到设备2400的设备(例如,设备2429)包括麦克风设备、扬声器或立体声系统、音频设备、视频系统或其他显示设备、键盘或小键盘设备、或者用于特定应用的其他i/o设备,例如读卡器或其他设备。
[0099]
如上所述,控制中枢2432可与音频设备、显示器2422等等交互。例如,通过麦克风或其他音频设备的输入可为设备2400的一个或多个应用或功能提供输入或命令。此外,取代显示输出,或者除了显示输出以外,还可提供音频输出。在另一示例中,如果显示器2422包括触摸屏,则显示器2422也充当输入设备,该输入设备可至少部分由控制中枢2432来管理。在计算设备2400上也可以有额外的按钮或开关来提供由控制中枢2432管理的i/o功能。在一个实施例中,控制中枢2432管理诸如加速度计、相机、光传感器或其他环境传感器之类的设备,或者可被包括在设备2400中的其他硬件。输入可以是直接用户交互的一部分,以及向系统提供环境输入以影响其操作(例如对噪声的过滤,调整显示器以进行亮度检测,对相机应用闪光灯,或者其他特征)。
[0100]
在一些实施例中,控制中枢2432可利用任何适当的通信协议耦合到各种设备,例如pcie(peripheral component interconnect express,快速外围组件互连)、usb(universal serial bus,通用串行总线)、thunderbolt、高清晰度多媒体接口(high definition multimedia interface,hdmi)、火线(firewire),等等。
[0101]
在一些实施例中,显示器2422表示提供视觉和/或触觉显示来供用户与设备2400交互的硬件(例如,显示设备)和软件(例如,驱动器)组件。显示器2422可包括显示接口、显示屏、和/或用于向用户提供显示器的硬件设备。在一些实施例中,显示器2422包括向用户提供输出和输入两者的触摸屏(或触摸板)设备。在一示例中,显示器2422可直接与处理器2404通信。显示器2422可以是像在移动电子设备或膝上型电脑设备中那样的内部显示设备或者经由显示接口(例如,displayport等等)附接的外部显示设备中的一个或多个。在一个实施例中,显示器2422可以是头戴式显示器(head mounted display,hmd),例如立体显示设备,来用于虚拟现实(virtual reality,vr)应用或增强现实(augmented reality,ar)应用中。
[0102]
在一些实施例中,虽然在附图中没有图示,但除了处理器2404以外(或者取代处理器2404),设备2400还可包括图形处理单元(graphics processing unit,gpu),该图形处理单元包括一个或多个图形处理核心,其可控制在显示器2422上显示内容的一个或多个方面。
[0103]
控制中枢2432(或者平台控制器中枢)可包括硬件接口和连接器,以及软件组件(例如,驱动器、协议栈),来进行例如到外围设备2424的外围连接。
[0104]
将会理解,设备2400既可以是其他计算设备的外围设备,也可以有外围设备连接到它。设备2400可具有“坞接”连接器来连接到其他计算设备,以便例如管理设备2400上的内容(例如,下载和/或上传、改变、同步)。此外,坞接连接器可允许设备2400连接到某些外设,这些外设允许计算设备2400控制例如到视听或其他系统的内容输出。
[0105]
除了专属坞接连接器或其他专属连接硬件以外,设备2400还可经由常见的或者基
于标准的连接器来进行外围连接。常见类型可包括通用串行总线(universal serial bus,usb)连接器(其可包括若干种不同硬件接口中的任何一种)、包括minidisplayport(mdp)的displayport,高清晰度多媒体接口(high definition multimedia interface,hdmi)、火线(firewire)、或者其他类型。
[0106]
在一些实施例中,连通性电路2431可耦合到控制中枢2432,例如除了直接耦合到处理器2404以外或者取代直接耦合到处理器2404。在一些实施例中,显示器2422可耦合到控制中枢2432,例如除了直接耦合到处理器2404以外或者取代直接耦合到处理器2404。
[0107]
在一些实施例中,设备2400包括存储器2430,其经由存储器接口2434耦合到处理器2404。存储器2430包括用于存储设备2400中的信息的存储器设备。
[0108]
在一些实施例中,存储器2430包括装置来维持稳定钟控,如参考各种实施例所述。存储器可包括非易失性存储器设备(如果到存储器设备的电力中断,状态不会变化)和/或易失性存储器设备(如果到存储器设备的电力中断,则状态不确定)。存储器设备2430可以是动态随机访问存储器(dynamic random access memory,dram)设备、静态随机访问存储器(static random access memory,sram)设备、闪存设备、相变存储器设备、或者具有适当的性能来用作进程存储器的某种其他存储器设备。在一个实施例中,存储器2430可充当设备2400的系统存储器,以存储数据和指令来在一个或多个处理器2404执行应用或进程时使用。存储器2430可存储应用数据、用户数据、音乐、照片、文档或其他数据,以及与设备2400的应用和功能的执行有关的系统数据(无论是长期的还是暂时的)。
[0109]
各种实施例和示例的元素也可以以用于存储计算机可执行指令(例如,实现本文论述的任何其他过程的指令)的机器可读介质(例如,存储器2430)的形式提供。机器可读介质(例如,存储器2430)可包括——但不限于——闪存、光盘、cd-rom、dvd rom、ram、eprom、eeprom、磁卡或光卡、相变存储器(phase change memory,pcm)、或者适合用于存储电子或计算机可执行指令的其他类型的机器可读介质。例如,本公开的实施例可作为计算机程序(例如,bios)被下载,该计算机程序可经由通信链路(例如,调制解调器或网络连接)借由数据信号被从远程计算机(例如,服务器)传送到作出请求的计算机(例如,客户端)。
[0110]
在一些实施例中,设备2400包括温度测量电路2440,例如用于测量设备2400的各种组件的温度。在一示例中,温度测量电路2440可被嵌入,或者耦合或附接到其温度要被测量和监视的各种组件。例如,温度测量电路2440可测量核心2408a、2408b、2408c、电压调节器2414、存储器2430、soc 2401的主板和/或设备2400的任何适当组件中的一个或多个的温度(或者其内的温度)。
[0111]
在一些实施例中,设备2400包括功率测量电路2442,例如用于测量设备2400的一个或多个组件消耗的功率。在一示例中,除了测量功率以外,或者取代测量功率,功率测量电路2442还可测量电压和/或电流。在一示例中,功率测量电路2442可被嵌入,或者耦合或附接到其功率、电压和/或电流消耗要被测量和监视的各种组件。例如,功率测量电路2442可测量由一个或多个电压调节器2414供应的功率、电流和/或电压、供应到soc 2401的功率、供应到设备2400的功率、由设备2400的处理器2404(或任何其他组件)消耗的功率,等等。
[0112]
在一些实施例中,设备2400包括一个或多个电压调节器电路,统称为电压调节器(voltage regulator,vr)2414。vr 2414生成处于适当的电压水平的信号,这些信号可被供
应来操作设备2400的任何适当组件。仅作为示例,vr 2414被图示为向设备2400的处理器2404供应信号。在一些实施例中,vr 2414接收一个或多个电压标识(voltage identification,vid)信号,并且基于vid信号生成处于适当水平的电压信号。对于vr 2414可利用各种类型的vr。例如,vr 2414可包括“降压”vr、“升压”vr、降压和升压vr的组合、低压差(low dropout,ldo)调节器、开关dc-dc调节器、基于恒定导通时间控制器的dc-dc调节器,等等。降压vr一般被用于其中输入电压需要被以小于单位一的比率变换成输出电压的电力输送应用中。升压vr一般被用于其中输入电压需要被以大于单位一的比率变换成输出电压的电力输送应用中。在一些实施例中,每个处理器核心具有其自己的vr,该vr被pcu 2410a/b和/或pmic 2412控制。在一些实施例中,每个核心具有分布式ldo的网络来提供对功率管理的高效控制。ldo可以是数字的、模拟的或者是数字或模拟ldo的组合。在一些实施例中,vr 2414包括电流跟踪装置来测量通过(一个或多个)电力供应轨的电流。
[0113]
在一些实施例中,设备2400包括一个或多个时钟生成器电路,统称为时钟生成器2416。时钟生成器2416可按适当的频率水平生成时钟信号,这些信号可被供应给设备2400的任何适当组件。仅作为示例,时钟生成器2416被图示为向设备2400的处理器2404供应时钟信号。在一些实施例中,时钟生成器2416接收一个或多个频率标识(frequency identification,fid)信号,并且基于fid信号以适当的频率生成时钟信号。
[0114]
在一些实施例中,设备2400包括向设备2400的各种组件供应电力的电池2418。仅作为示例,电池2418被图示为在向处理器2404供应电力。虽然在附图中没有图示,但设备2400可包括充电电路,以例如基于从交流电(alternating current,ac)适配器接收的ac电力供应来对电池再充电。
[0115]
在一些实施例中,设备2400包括功率控制单元(power control unit,pcu)2410(也称为功率管理单元(power management unit,pmu)、功率控制器,等等)。在一示例中,pcu 2410的一些部分可由一个或多个处理核心2408实现,并且pcu 2410的这些部分被利用虚线框来象征性图示并且被标注为pcu 2410a。在一示例中,pcu 2410的一些其他部分可在处理核心2408外部实现,并且pcu 2410的这些部分被利用虚线框来象征性图示并且被标注为pcu 2410b。pcu 2410可为设备2400实现各种功率管理操作。pcu 2410可包括硬件接口、硬件电路、连接器、寄存器等等,以及软件组件(例如,驱动器、协议栈),来为设备2400实现各种功率管理操作。
[0116]
在一些实施例中,设备2400包括功率管理集成电路(power management integrated circuit,pmic)2412,以例如为设备2400实现各种功率管理操作。在一些实施例中,pmic 2412是可重配置功率管理ic(reconfigurable power management ic,rpmic)和/或imvp(mobile voltage positioning,移动电压定位)。在一示例中,pmic在与处理器2404分离的ic芯片内。这可为设备2400实现各种功率管理操作。pmic 2412可包括硬件接口、硬件电路、连接器、寄存器,等等,以及软件组件(例如,驱动器、协议栈),来为设备2400实现各种功率管理操作。
[0117]
在一示例中,设备2400包括pcu 2410或pmic 2412中的一者或两者。在一示例中,pcu 2410或者pmic 2412中的任何一者可在设备2400中不存在,因此这些组件是利用虚线来图示的。
[0118]
设备2400的各种功率管理操作可由pcu 2410、由pmic 2412或者由pcu 2410和
pmic 2412的组合来执行。例如,pcu 2410和/或pmic 2412可为设备2400的各种组件选择功率状态(例如,p状态)。例如,pcu 2410和/或pmic 2412可为设备2400的各种组件选择功率状态(例如,根据acpi(advanced configuration and power interface,高级配置和电力接口)规范)。仅作为示例,pcu 2410和/或pmic 2412可使得设备2400的各种组件转变到休眠状态、转变到活跃状态、转变到适当的c状态(例如,c0状态,或者另一适当的c状态,根据acpi规范),等等。在一示例中,pcu 2410和/或pmic 2412可控制由vr 2414输出的电压和/或由时钟生成器输出的时钟信号的频率,例如分别通过输出vid信号和/或fid信号。在一示例中,pcu 2410和/或pmic 2412可控制电池功率使用、电池2418的充电、以及与省电操作有关的特征。
[0119]
时钟生成器2416可包括锁相环(phase locked loop,pll)、锁频环(frequency locked loop,fll)、或者任何适当的时钟源。在一些实施例中,处理器2404的每个核心具有其自己的时钟源。这样,每个核心可按独立于其他核心的操作频率的频率来进行操作。在一些实施例中,pcu 2410和/或pmic 2412执行自适应或者动态频率缩放或调整。例如,如果核心没有在以其最大功率消耗阈值或限度进行操作,则可增大该处理器核心的时钟频率。在一些实施例中,pcu 2410和/或pmic 2412确定处理器的每个核心的操作条件,并且当pcu 2410和/或pmic 2412确定核心在以低于目标性能水平操作时,适时地调整该核心的频率和/或供电电压,而核心钟控源(例如,该核心的pll)不会失去锁定。例如,如果核心在从电力供应轨汲取电流,该电流小于为该核心或处理器2404分配的总电流,则pcu 2410和/或pmic 2412可临时增大对于该核心或处理器2404的功率汲取(例如,通过增大时钟频率和/或电力供应电压水平),使得该核心或处理器2404可以按更高的性能水平来运转。这样,可以为处理器2404临时增大电压和/或频率,而不会违反产品可靠性。
[0120]
在一示例中,pcu 2410和/或pmic 2412可例如至少部分基于从功率测量电路2442、温度测量电路2440接收测量,接收电池2418的充电水平,和/或接收可用于功率管理的任何其他适当的信息,来执行功率管理操作。为此,pmic 2412通信地耦合到一个或多个传感器来感测/检测对于系统/平台的功率/热行为具有影响的一个或多个因素中的各种值/变化。一个或多个因素的示例包括电流、电压垂落、温度、操作频率、操作电压、功率消耗、核心间通信活动,等等。这些传感器中的一个或多个可被设在计算系统的一个或多个组件或者逻辑/ip块的物理近邻(和/或与其热接触/耦合)。此外,(一个或多个)传感器在至少一个实施例中可直接耦合到pcu 2410和/或pmic 2412以允许pcu 2410和/或pmic 2412至少部分基于由这些传感器中的一个或多个检测到的(一个或多个)值来管理处理器核心能量。
[0121]
还图示了设备2400的示例软件栈(虽然没有图示该软件栈的所有元素)。仅作为示例,处理器2404可执行应用程序2450、操作系统(os)2452、一个或多个功率管理(power management,pm)特定应用程序(例如,统称为pm应用2458),等等。pm应用2458也可被pcu 2410和/或pmic 2412执行。os 2452也可包括一个或多个pm应用2456a、2456b、2456c。os 2452也可包括各种驱动器2454a、2454b、2454c等等,其中一些可专用于功率管理目的。在一些实施例中,设备2400还可包括基本输入/输出系统(basic input/output system,bios)2420。bios 2420可以与os 2452通信(例如,经由一个或多个驱动器2454),与处理器2404通信,等等。
[0122]
例如,pm应用2458、2456、驱动器2454、bios 2420等等中的一个或多个可用于实现功率管理特定任务,例如以控制设备2400的各种组件的电压和/或频率,控制设备2400的各种组件的唤醒状态、休眠状态和/或任何其他适当的功率状态,控制电池电力使用、电池2418的充电、与功率节省操作有关的特征,等等。
[0123]
在一些实施例中,在pcu 2410a/b上执行的pcode具有为pcode的运行时支持实现额外的计算和遥测资源的能力。这里,pcode指的是由pcu 2410a/b执行以管理2401的性能的固件。例如,pcode可为处理器设置频率和适当的电压。pcode的一部分是可经由os 2452来访问的。在各种实施例中,提供了机制和方法,这些机制和方法基于工作负载、用户行为和/或系统条件来动态地改变能量性能偏好(energy performance preference,epp)值。在os 2452和pcode之间可能有定义明确的接口。该接口可允许或者促进具有几个参数的软件配置和/或可向pcode提供提示。作为示例,一epp参数可告知pcode算法是性能还是电池寿命更重要。
[0124]
这种支持也可由os 2452完成,其方式是将机器学习支持包括为os 2452的一部分,并且通过机器学习预测来调节os提示给硬件(例如,soc 2401的各种组件)的epp值,或者通过以与动态调谐技术(dynamic tuning technology,dtt)驱动器所做的类似的方式将机器学习预测递送给pcode。在这种模型中,os 2452可看到与dtt可用的相同的遥测集合。作为dtt机器学习提示设置的结果,pcode可调谐其内部算法,以在激活类型的机器学习预测之后实现最优功率和性能结果。作为示例,pcode可增大对处理器利用率变化的责任,以使能对用户活动的快速响应,或者可通过减小对处理器利用率的责任或者通过调整能量节省优化以节省更多的功率和增大性能损失来增大对于能量节省的偏向。这种方案可促进节省更多的电池寿命,以防使能的活动的类型相对于系统能够使能的性能水平失去一些性能水平。pcode可包括用于动态epp的算法,该算法可取得两个输入,一个来自os 2452,另一个来自软件,例如dtt,并且可以选择性地挑选提供更高的性能和/或响应能力。作为此方法的一部分,pcode可在dtt中使能一个选项来对于不同类型的活动为dtt调谐其反应。
[0125]
说明书中提及“一实施例”、“一个实施例”、“一些实施例”或者“其他实施例”的意思是联系这些实施例描述的特定特征、结构或特性被包括在至少一些实施例中,但不一定是所有实施例中。“一实施例”、“一个实施例”或“一些实施例”的各种出现不一定全都指的是相同实施例。如果说明书陈述“可”、“可能”或者“可以”包括某一组件、特征、结构或特性,那么并不是必须要包括该特定组件、特征、结构或特性。如果说明书或权利要求提及“一”元素,那么并不意味着只有一个该元素。如果说明书或权利要求提及“一额外”元素,那么并不排除有多于一个额外元素。
[0126]
此外,在一个或多个实施例中可按任何适当的方式来组合特定的特征、结构、功能或特性。例如,在与两个实施例相关联的特定特征、结构、功能或特性不互斥的任何地方,可将第一实施例与第二实施例相组合。
[0127]
虽然已结合其特定实施例描述了本公开,但本领域普通技术人员根据前述描述将清楚这种实施例的许多替换、修改和变化。例如,其他存储器体系结构,例如动态ram(dram),可使用所论述的实施例。本公开的实施例打算包含落在所附权利要求的宽广范围内的所有这种替换、修改和变化。
[0128]
此外,为了图示和论述的简单起见,并且为了不模糊本公开,在给出的附图中可能
示出或不示出到集成电路(ic)芯片和其他组件的公知电力/地连接。另外,可能以框图形式示出布置以避免模糊本公开,并且同时也考虑到了如下事实:关于这种框图布置的实现的具体细节是高度取决于要在其内实现本公开的平台的(即,这种具体细节应当完全在本领域技术人员的视野内)。在阐述具体细节(例如,电路)以便描述本公开的示例实施例的情况下,本领域技术人员应当清楚,没有这些具体细节,或者利用这些具体细节的变体,也可实现本公开。从而说明书应当被认为是说明性的,而不是限制性的。
[0129]
以下示例涉及进一步实施例。示例中的具体细节可被用在一个或多个实施例中的任何地方。也可对于方法或过程实现本文描述的装置的所有可选特征。
[0130]
本文描述的各种实施例是作为示例说明的。这些示例的特征可按任何适当的方式与彼此组合。这些示例包括:
[0131]
示例1:一种装置,包括:一个或多个硬件组件;以及在所述一个或多个硬件组件中的至少一个上执行的固件,其中所述固件基于参数来为所述一个或多个硬件组件适应性地调整能量性能偏好,所述参数包括在所述一个或多个硬件组件上执行的应用的预测工作负载和使用行为。
[0132]
示例2:如示例1所述的装置,包括机器学习引擎,用于基于来自所述一个或多个硬件组件的遥测数据来预测工作负载类型。
[0133]
示例3:如示例2所述的装置,其中,所述工作负载类型是以下之一:空闲、半活跃、突发、持续、以及电池寿命。
[0134]
示例4:如示例2所述的装置,其中,所述机器学习引擎具有预训练的模型来预测所述工作负载。
[0135]
示例5:如示例2所述的装置,其中,所述机器学习引擎是在硬件和/或软件中实现的。
[0136]
示例6:如示例1所述的装置,其中,所述能量性能偏好是操作系统可见的。
[0137]
示例7:如示例1所述的装置,其中,所述固件根据经适应性调整的能量性能偏好来调整所述一个或多个硬件组件的频率和/或电压。
[0138]
示例8:如示例1所述的装置,其中,随着所述能量性能偏好被调整为更低的值,对于所述一个或多个组件,性能增大,或者其中,随着所述能量性能偏好被调整为更高的值,对于所述一个或多个组件,能量减小。
[0139]
示例9:根据示例1至8中的任何一项所述的装置,其中所述一个或多个组件包括:一个或多个处理器核心,图形处理单元,以及网状或环状架构。
[0140]
示例10:一种机器可读存储介质,具有机器可执行指令,所述指令当被执行时,使得一个或多个机器执行操作,所述操作包括:从一个或多个硬件组件接收遥测数据和性能数据;将所述遥测数据和性能数据提供给机器学习引擎以预测工作负载类型;接收预测的工作负载类型;基于所述预测的工作负载类型来适应性地修改能量性能偏好;并且将经修改的能量性能偏好提供给固件,该固件进而调整所述一个或多个组件的频率和/或电压。
[0141]
示例11:如示例10所述的机器可读存储介质,其中,所述工作负载类型是以下之一:空闲、半活跃、突发、持续、以及电池寿命。
[0142]
示例12:如示例10所述的机器可读存储介质,所述能量性能偏好是操作系统可见的。
[0143]
示例13:如示例10所述的机器可读存储介质,其中,所述能量性能偏好被调整为更低的值,对于所述一个或多个组件,性能增大,或者其中,随着所述能量性能偏好被调整为更高的值,对于所述一个或多个组件,能量减小。
[0144]
示例14:如示例10所述的机器可读存储介质,其中,所述机器学习引擎是在软件和/或硬件中实现的。
[0145]
示例15:根据示例10至14中的任何一项所述的机器可读存储介质,其中所述一个或多个组件包括:一个或多个处理器核心,图形处理单元,以及网状或环状架构。
[0146]
示例16:一种系统,包括:存储器;与所述存储器耦合的处理器;与所述处理器通信地耦合的无线接口,其中所述处理器包括功率控制单元,该功率控制单元执行固件,该固件基于参数来为包括所述处理器在内的所述系统的一个或多个硬件组件适应性地调整能量性能偏好,所述参数包括在所述一个或多个硬件组件上执行的应用的预测工作负载和使用行为;以及与所述固件通信地耦合的机器学习引擎,其中所述机器学习引擎基于来自所述一个或多个硬件组件的遥测数据来预测工作负载类型。
[0147]
示例17:如示例16所述的系统,其中,所述工作负载类型是以下之一:空闲、半活跃、突发、持续、以及电池寿命。
[0148]
示例18:如示例16所述的系统,其中,所述机器学习引擎具有预训练的模型来预测所述工作负载。
[0149]
示例19:如示例18所述的系统,其中所述固件根据经适应性调整的能量性能偏好来调整所述一个或多个硬件组件的频率和/或电压。
[0150]
示例20:根据示例16至19中的任何一项所述的系统,其中,随着所述能量性能偏好被调整为更低的值,对于所述一个或多个组件,性能增大,或者其中,随着所述能量性能偏好被调整为更高的值,对于所述一个或多个组件,性能增大。
[0151]
示例21:一种方法,包括:从一个或多个硬件组件接收遥测数据和性能数据;将所述遥测数据和性能数据提供给机器学习引擎以预测工作负载类型;接收预测的工作负载类型;基于所述预测的工作负载类型来适应性地修改能量性能偏好;并且将经修改的能量性能偏好提供给固件,该固件进而调整所述一个或多个组件的频率和/或电压。
[0152]
示例22:如示例21所述的方法,其中,所述工作负载类型是以下之一:空闲、半活跃、突发、持续、以及电池寿命。
[0153]
示例23:如权利要求21所述的方法,所述能量性能偏好是操作系统可见的。
[0154]
示例24:如示例21所述的方法,其中,所述能量性能偏好被调整为更低的值,对于所述一个或多个组件,性能增大,或者其中,随着所述能量性能偏好被调整为更高的值,对于所述一个或多个组件,能量减小。
[0155]
示例25:如示例21所述的方法,其中,所述机器学习引擎是在软件和/或硬件中实现的。
[0156]
示例26:根据示例21至25中的任何一项所述的方法,其中,所述一个或多个组件包括:一个或多个处理器核心,图形处理单元,以及网状或环状架构。
[0157]
提供了摘要,其将允许读者确定本技术公开的性质和主旨。摘要是在如下理解下提交的:它不会被用于限制权利要求的范围或含义。特此将所附权利要求并入到具体实施方式中,其中每个权利要求独立作为一个单独的实施例。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献