动态电压和频率缩放方法与流程

文档序号:11519013阅读:572来源:国知局
动态电压和频率缩放方法与流程

【相关申请的交叉参考】

本发明要求2015年11月23日申请的序列号为62/258,542的美国临时专利申请的优先权,上述美国临时专利申请通过参考并入于此。

【技术领域】

本发明涉及动态电压和频率缩放(dynamicvoltageandfrequencyscaling,dvfs)设计,且更特别地,涉及动态电压和频率缩放方法。



背景技术:

一般而言,功耗是移动装置上处理器集中应用的重要问题。随着连续的技术进步,现有的单核架构不能够处理处理器的密集应用。因此,可采用多核架构以改进处理器性能。具体地,多个处理器内核允许一些应用的超高并行。然而,使用多核架构不可避免地带来更高功耗,其可可怕地升高芯片温度以及吸收相当大的电池电力。电力/性能平衡控制将是移动平台上这样的应用的关键点。

动态电压和频率缩放(dvfs)是通过缩放每个处理器内核的操作电压和操作频率的计算机架构中的动态电源管理技术。为了实现处理器性能和功耗之间的平衡,现有的dvfs方法通过周期性地监控移动装置的系统方面处理器利用率确定系统需求,并因此调整每个处理器内核的操作电压和操作频率。然而,现有的dvfs方法可仅仅对系统方面处理器利用率改变做出反应,并不会考虑运行于移动装置上每个应用的实际需求。



技术实现要素:

有鉴于此,需要一种动态电压和频率缩放方法。

本发明揭示一种动态电压和频率缩放方法,包含获得处理器的dvfs的至少一个dvfs需求,其中至少一个dvfs需求包含从应用需求派生的dvfs需求,以及应用需求是从运行于处理器系统的应用获得的;以及根据至少一个dvfs需求生成处理器系统的dvfs的控制命令。

本发明通过以上特征,可以有效地控制功耗。

【附图说明】

图1是图示根据本发明的实施例的电子装置的示意图。

图2是图示根据本发明的实施例的dvfs控制设计的架构的示意图

图3是图示根据本发明的实施例的生成软件视频解码器的应用需求的方法的流程图。

图4是图示根据本发明的实施例的生成用户接口应用的应用需求的方法的流程图。

图5是图示根据本发明的实施例的生成录影快照应用的应用需求的方法的流程图。

图6是图示根据本发明实施例的显示于图2中的dvfs控制模块的示意图。

【具体实施方式】

遍及整篇描述和权利要求的某些术语用于指代具体部件。如本领域的技术人员意识到的,制造商可用不同的名称指代部件。此文档不打算区别名称不同但功能相同的部件。在权利要求和下文的描述中,术语“包括”和“包含”用于开放方式,且因此应该解释为意思是“包含,但不限于”。而且,术语“耦合”意于表示间接或直接电连接。因此,如果一个装置耦合到另一装置,那个连接可以通过直接电连接,或通过经由其它装置和连接的间接电连接。

图1是图示根据本发明的实施例的电子装置的示意图。以示例的方式,但并非限制,电子装置100可以是由电池装置供电的移动装置。电子装置100包含处理器系统102、存储装置104、时钟控制模块(clockcontrolmodule,ccm)106以及电源管理集成电路(powermanagementintegratedcircuit,pmic)108。应该注意到,关于本发明的组件图示于图1。在实践中,电子装置100可包含附加的组件以实现其它指定功能。例如,电子装置100还可包含显示屏幕(例如,触摸屏)用于显示用户接口(ui)、图像输出、视频输出等。对于另一示例,电子装置100还可包含照相机模块用于静止图像俘获和/或视频记录。

处理器系统102包含一个或多个处理器内核112_1-112_n,其中n是不小于一(即,n≧1)的正整数。例如,当处理器系统102采用单个内核架构,处理器系统102仅仅包含一个处理器内核112_1(n=1)。对于另一示例,当处理器系统102采用多核架构,处理器系统102包含多个处理器内核112_1-112_n(n>1)。简而言之,由本发明提出的dvfs设计驱动的应用是单个内核架构和多核架构的应用。

存储装置104是非暂时性机器可读介质。例如,存储装置104可以是非易失性存储器,例如,闪速存储器。存储装置104包含多个软件模块(即,程序代码)储存于其中。当任何软件模块由处理器系统102载入并执行,处理器系统102被指令以执行软件模块的指定的功能。如图1所示,软件模块可包含操作系统(os)内核114,例如,基于linux的内核、一个或多个应用(app)116_1-116_m(m是不小于1的正整数)、一个提出的dvfs控制模块(由sdvfs指代)118、中间件(mw)120。

ccm106用于设置每个处理器内核的操作频率fcore。pmic108用于提供操作电压vcore到每个处理器内核。当提出的dvfs控制模块118由处理器系统102载入并执行,由dvfs方法驱动的应用动态地生成控制命令,其将导致操作频率fcore由ccm106调整以及操作电压vcore由pmic108调整,由此实现处理系统102的dvfs。由dvfs方法驱动的应用的进一步细节在后描述。

图2是图示根据本发明的实施例的dvfs控制设计的架构的示意图。为了清楚和简洁,仅仅一个应用包含于架构中。应用116_i可以是显示于图1中的任何应用116_1-116_m,其中1≦i≦m。此外,os内核(例如,基于linux的内核)114包含dvfs调节器202,其用于通知ccm106以调整每个处理器内核的操作频率fcore以及通知pmic108以调整每个处理器内核的操作电压vcore。

应用116_i可经由第一应用编程接口(由“appdvfsapi”指代)与中间件120通信,并经由第二应用编程接口(由“中间dvfsapi”指代)与dvfs控制模块118通信。中间件120可经由第二应用编程接口(由“中间dvfsapi”指代)与dvfs控制模块118通信。dvfs控制模块118可经由第三应用编程接口(由“内核dvfsapi”指代)与os内核114通信。

dvfs控制模块118用于支持提出的由dvfs方法驱动的应用。因此,dvfs控制模块118获得处理器系统102的dvfs的至少一个dvfs需求,其中至少一个dvfs需求包含从应用需求(由“app需求”指代)派生的dvfs需求,且应用需求是从运行于处理器系统102的应用116_i获得的。在一个示范性设计中,应用需求可直接用作dvfs需求,且可以由dvfs控制模块118经由应用116_i和dvfs控制模块118之间的中间dvfsapi获得。在另一示范性设计中,应用需求可以经由应用116_i和中间件120之间的appdvfsapi由中间件120获得。应用需求可以由中间件120处理。因此,中间件120可根据至少应用需求生成dvfs需求(由“中间需求”指代),并可经由中间件120和dvfs控制模块118之间的中间dvfsapi输出dvfs需求(至少部分基于应用需求生成)到dvfs控制模块118。

在本实施例中,应用需求可以主动从应用116_i发送以请求处理器系统102的dvfs。例如,应用116_i可根据应用116_i和/或应用116_i的工作量预测的至少一个性能索引确定应用需求。为了更好地理解技术特征,在不同应用下确定应用需求的示例在以下给出。

在第一实施例中,应用116_i可以是软件视频解码器。软件视频解码器的工作量根据视频帧率周期性上升。另外,视频帧的复杂性可以不同。然而,软件视频解码器,无论视频帧中任何工作量变化和复杂性变化均要求平滑视频播放。因此,软件视频解码器可当开始解码新的视频帧时准备处理器系统102的dvfs的一个应用需求。

图3是图示根据本发明的实施例的生成软件视频解码器的应用需求的方法的流程图。在软件视频开始解码后,应用116_i(例如,软件视频解码器)检查是否开始新视频帧的解码(步骤302)。如果是,流程进入步骤304;否则,步骤302再次执行。在步骤304,应用116_i(例如,软件视频解码器)为即将解码的新视频帧准备应用需求。例如,在解码新视频帧的开始,应用116_i(例如,软件视频解码器)根据视频分辨率、输入缓冲器大小、输出缓冲器级别、视频和音频的同步、帧类型、帧率以及帧头部的其它信息的至少一个确定应用需求。输出缓冲器级别以及视频和音频的同步可以用作应用专用性能索引。输入缓冲器大小、视频分辨率、帧类型和帧率可以用作应用专用工作量预测。

视频分辨率与每个视频帧的帧大小相关。因此,如果视频分辨率更高软件视频解码器则需要更多的计算功率。输入缓冲器大小与即将解码的新视频帧的输入视频比特流的大小相关。因此,如果输入缓冲器大小越大则由软件视频解码器需要的计算功率更多。输出缓冲器级别与在输出缓冲器中当前可用且准备显示的解码的视频帧的数目相关。因此,如果输出缓冲器级别更低则由软件视频解码器需要的计算功率更多。视频和音频的同步可以由当前视频播放时间和当前音频播放时间之间的差值表示。因此,如果值(当前视频播放时间减去当前音频播放时间)越小则由软件视频解码器需要的计算功率越多。视频类型与解码复杂性/工作量相关。因此,不同帧类型的视频帧可具有不同的解码复杂性并因此要求软件视频解码器不同的计算功率。帧率与解码工作量相关。因此,具有不同帧率的视频序列可要求软件视频解码器不同的计算功率。

在确定应用需求后,流程进入步骤306以检查是否还有视频帧没有被解码。如果是,流程进入步骤302;否则,软件视频解码结束。

在第二实施例中,应用116_i可以是用户接口(ui)应用,用于控制显示于电子装置100的屏幕(例如,触摸屏)上的ui。ui应用的工作量伴随着由触摸触摸屏或点击按钮生成的用户输入。一般而言,ui应用要求对用户输入的快速响应,并因此所有其工作应该在短时间内完成。因此ui应用可当接收一个用户输入时为处理器系统102的dvfs准备一个应用需求。

图4是图示根据本发明的实施例的生成用户接口应用的应用需求的方法的流程图。在ui功能已在操作中后,应用116_i(例如,ui应用)检查是否存在接收的新的用户输入(步骤402)。如果是,流程进入步骤404;否则,步骤402再次执行。在步骤404,应用116_i(例如,ui应用)为所接收的新的用户输入准备应用需求。例如,当接收到新的用户输入,应用116_i(例如,ui应用)根据应用特定工作量预测确定应用需求,例如,描绘所有图形的复杂性、显示所有要求的内容的复杂性以及完成新的用户输入ui响应所需要的时间的至少一个。例如,如果描绘所有图形的复杂性更高,则ui应用需要的计算功率越多;如果显示所有要求的内容的复杂性越高,则ui应用需要的计算功率越多;以及完成新的用户输入ui响应的时间越短,则ui应用需要的计算功率越多。在确定应用需求后,流程进入步骤402以检查是否存在任何接收的新的用户输入。

在第三实施例中,应用116_i可以是录影快照应用。录影快照的工作量来自视频记录时发送的用户拍照命令。录影快照需要快速俘获照片但不影响正在进行的视频记录。因此,录影快照应用可在接收到一个拍照命令时为处理器系统102的dvfs准备一个应用需求。

图5是图示根据本发明的实施例的生成录影快照应用的应用需求的方法的流程图。在视频记录已经在操作中后,应用116_i(例如,录影快照应用)检查是否存在接收的新的拍照命令(步骤502)。如果是,流程进入步骤504;否则,步骤502再次执行。在步骤504,应用116_i(例如,录影快照应用)为接收的新的拍照命令准备应用需求。例如,当接收到新的拍照命令时,应用116_i(例如,录影快照应用)根据应用特定的工作量预测确定应用需求,例如,俘获照片的复杂性和视频记录的复杂性。例如,俘获照片的复杂性可以基于照片大小和照片质量的至少一个来评估;以及视频记录的复杂性可以基于视频帧大小、视频帧率、视频比特率和视频质量的至少一个来评估。由于录影快照在视频记录在操作中时发生,如果俘获照片的的复杂性越高和/或俘获视频记录的复杂性越高,则录影快照应用需要的计算功率越高。在确定应用需求后,流程进入步骤502以检查是否存在接收的任何新的拍照命令。

如上所述,dvfs控制模块118用于动态地生成控制命令,其将使得操作频率fcore由ccm106调整以及操作电压vcore由pmic108调整用于实现处理系统102的dvfs。图6是图示根据本发明实施例的显示于图2中的dvfs控制模块118的示意图。在本实施例中,dvfs控制模块118包含场景判断单元602、场景控制单元604和命令/状态翻译器606,其中场景控制单元604包含优先级表612和控制规则集614。除了直接从应用116_i(或至少部分基于从应用116_i获得的应用需求生成的中间需求)获得的应用需求,dvfs控制模块118还可从os内核114,特别地从dvfs调节器202,获得系统信息(由“系统info”指代)。例如,dvfs调节器202可通过周期性地监测系统方面处理器利用率确定系统需求。

在本实施例中,dvfs控制模块118可考虑所有dvfs需求,包含系统需求和应用需求(或基于应用需求生成的中间需求)。中间需求可以基于应用需求生成。因此,中间需求可以看作经由中间dvfsapi发送的应用需求。为了清楚简洁,术语“应用需求”和“中间需求”在本发明中可互换。

场景判断单元602执行场景判断以根据dvfs需求从多个候选场景类型选择场景类型。即,场景判断单元602接收所有类型的dvfs需求(例如,由os内核生成的系统需求和由应用生成的应用需求),并判断应该采用哪个场景类型。因此,不同的场景类型可以分别为系统需求和应用需求的不同组合来选择。

场景控制单元604响应于选择的场景类型设置处理器系统102的dvfs的控制命令cmdctrl。例如,场景控制单元604在选择的场景类型下获得每个dvfs需求的优先级信息,获得与选择的场景类型关联的控制规则,并根据dvfs需求的优先级信息和控制规则设置处理器系统102的dvfs的控制命令cmdctrl。在本实施例中,优先级表612是查找表,其记录在每个候选场景类型下dvfs需求的预定义的优先级信息。因此,场景控制单元604可在选择的场景类型下为每个dvfs需求的优先级信息搜索优先级表612。此外,控制规则集614记录每个候选场景类型的预定义的控制规则。因此,场景控制单元604可从控制规则集614获得与选择的场景类型关联的控制规则。与选择的场景类型关联的控制规则根据具有指定优先级的dvfs需求定义怎样设置最终控制命令cmdctrl。

在控制命令cmdctrl由场景控制单元604设置后,命令/状态翻译器606将一般的控制命令cmdctrl翻译为内核相关命令,例如,governor_type、cpu_core以及cpu_freq。governor_type命令记录dvfs调节器202使用的期望的调节器类型。cpu_core命令记录操作电压vcore的期望的值。cpu_freq命令记录操作频率fcore的期望的值。因此,命令/状态翻译器606输出内核相关命令到运行于处理器系统102的os内核114,以便os内核114的dvfs调节器202根据经由内核dvfsapi发送的内核相关命令控制处理器系统102的dvfs。

在本实施例中,dvfs控制模块118还将处理器系统102的dvfs状态返回到应用116_i。例如,dvfs控制模块118经由dvfs控制模块118和应用116_i之间的中间dvfsapi发送dvfs状态到应用116_i。对于另一示例,dvfs控制模块118经由dvfs控制模块118和中间件120之间的中间dvfsapi发送dvfs状态到中间件120,且中间件120经由中间件120和应用116_i之间的appdvfsapi输出dvfs状态到应用116_i。如图2和图6所示,os内核114输出内核相关信息(例如,governor_type、cpu_core、cpu_freq)到命令/状态翻译器606,其中governor_type信息记录dvfs调节器202的实际调节器类型,cpu_core信息记录由dvfs调节器202设置的操作电压vcore的实际值,以及cpu_freq信息记录由dvfs调节器202设置的操作频率fcore的实际值。命令/状态翻译器606将一般内核相关信息(例如,governor_type、cpu_core、cpu_freq)翻译为dvfs状态,并输出dvfs状态到中间件120或应用116_i。

应该注意到,由governor_type信息指示的dvfs调节器202的实际调节器类型可以与由governor_type命令请求的dvfs调节器202的期望的调节器类型相同或不同,依据实际设计考虑。类似地,由cpu_core信息指示的操作电压vcore的实际值可以与由cpu-core命令请求的操作电压vcore的期望的值相同或不同,依据实际设计考虑。由cpu_freq信息指示的操作频率fcore的实际值可以与由cpu-freq命令请求的操作频率fcore的期望的值相同或不同,依据实际设计考虑。

本领域技术人员将轻易地看出在保留本发明的教导时,可以对装置和方法作出许多修改和替换。因此,以上揭露应该解释为仅仅由所附的权利要求的范围和界限来限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1