一种功耗优先的嵌入式处理器实时任务分配方法与流程

文档序号:15997941发布日期:2018-11-20 19:04阅读:296来源:国知局

本发明属于嵌入式处理器功耗管理领域,特别是涉及到可以工作在多个频 率段的嵌入式处理器的功耗管理课题。



背景技术:

嵌入式设备的各种硬件中,中央处理器(CPU,Central Processing Unit)是 耗电的主要部件之一,例如,在拥有四核CPU的三星Galaxy S3智能手机中,CPU 的功率高达2845mW,是屏幕最大功率2.43倍,也是3G接口的最大功率的2.5 倍。CPU功耗管理是嵌入式设备功耗优化的主要任务。

当前众多关于嵌入式设备CPU功耗优化的方法大多在内核级别做任务调度 策略的优化:如Sangwook Kim等科研人员提出了一种事件处理为导向的实时高 响应度CPU调度方法,Jong-Moon Chung等科研人员提出了一种响应时间步长 控制策略(RSC)用于改善传统动态电压调频(DVFS)响应缓慢的问题;公开专 利CN105740075A,公开了一种内核层级的CPU调度策略,设置了多个升频降 频阈值,分多个梯度来调节CPU频率。公开专利CN107506244A提出了一种结 合网络服务器给移动端软件做任务调度的方法。以上内核级别的优化调度算法可 以很精确的控制处理器的频率变化,优化处理器的性能与功耗。但是当处理周期 性的高计算复杂度的任务时,上述的内核调度算法会频繁唤醒CPU,在高频率 段完成该任务,功耗开销也相应增大。针对该问题,根据嵌入式处理器的芯片特 性,计算单位工作量的工作频率与功耗的对应关系表,提出一种多任务分配方法, 把大任务分配为子任务执行,减少任务连续占用CPU的时间,从而使CPU在任 务周期内既实现了低功耗又满足了任务的实时性要求。



技术实现要素:

本发明的目的在于,通过计算实时周期性任务复杂度、工作频率与功耗之间 的对应关系,提出了一种优化嵌入式处理器计算任务分配方法,在任务周期内实 现频率和功耗的最佳平衡。

本发明的技术方法如下:

一种功耗优先的嵌入式处理器实时任务分配方法,其特征在于,包含以下步 骤:

步骤1、获取频率段、电流和电压参数:获取CPU在不同频率段fj(j=1,2… N,N为CPU支持的频率段。本说明书所有的j均表示相同含义。)的工作电流 Ij与电源的额定电压U。

步骤2、计算单一任务在CPU最高频率段的运行时间:通过给定合适的单 线程计算任务,测量该任务在CPU最高频率fH的运行时间tH。

步骤3、计算单一任务在CPU所有频率段的运行时间:通过频率之间的比 例换算出该任务在所有频率段的运行时间tj;

步骤4、计算工作频率与功耗关系表:根据功耗公式:

Q=UIjtj(一)

计算出处理器在不同频率段完成同一工作任务的功耗。不同工作频率完成单 一任务的功耗特征在于:随着工作频率越大,功耗越大的趋势,局部可能会出现 若干功耗极小值点。

上述计算工作频率与功耗关系的方法,步骤2中,一定时间理论上可以是任 意能够被采集到的CPU工作时间,可以任意选择计算任务,CPU不同工作频率 的比例换算是一致的,频率与功耗的变化趋势与计算任务无关。

上述计算工作频率与功耗关系的方法,确定了嵌入式处理器各工作频率段与 功耗之间的对应关系,针对该特性,我们提出了一种任务分配方法:

步骤a、选择执行任务的最佳频率段:设目标任务的限定时间为Tlim,任务运 行在CPU最高频率fH的执行时间为TH。设将计算任务置于低频段运行时的CPU 使用率(纯计算时间在任务周期的占比)为u,则根据公式(二)计算理论最佳 功耗频率fW:

由于CPU工作频率段有限,实际最佳功耗频率应该从CPU频率段中选择大 于fW的频率点fWR,作为理想功耗点。

步骤b,分割并执行计算任务:根据实际最佳功耗频率fWR,将需要在限定 周期Tlim内完成的长任务分配为短任务,设短任务的周期时间为Tsam,短任务的 CPU持续计算时间为TSW,其中TSW=Tsam·u。每个短周期Tsam内,CPU持续计算 时间为TSW,然后释放CPU,等一个Tsam周期结束进入下一Tsam周期。任务分配 方法流程图如附图一,任务分配示意图附图二所示。

本发明的优势在于,根据嵌入式处理器的工作频率与功耗之间对应的关系表, 提出了一种任务分配的方法。可以保证在限定时间内完成计算任务的前提下,单 一任务的功耗开销最小。整个分配方法,简单明了,可实施性强。

附图说明

图1是本发明的方法流程示意图。

图2是本发明的任务分配流程图。

图3是本发明实施例的频率与功耗关系表。

具体实施方式

本发明主要通过计算CPU频率与功耗的关系表,对计算任务进行分配,保 证在任务期限时间内,用最佳功耗频率点完成计算任务。

在本实施例中,以MJPEG格式视频压缩应用为例对本发明的流程进行具体 的阐述。摄像头实时获取的图像为位图格式,将其压缩为JPEG格式。设置MJPEG 每一帧的频率为25Hz,每一帧的限制时间Tlim要求为40ms。根据实际的监测结 果,分配任务前完成MJPEG图像压缩每一帧的总时间为10ms,功耗为15.4*10-3j, 分配任务后,Bitmap图像的压缩总时间为19ms,功耗为19.5*10-3j,节能18.46.%。

实施例使用的设备为NEXUS 5手机,具体参数与实施例中要采集的参数信 息如下:

CPU型号高通骁龙800,同架构四核心

操作系统:Android 5.1

额定电压U:4.2V

实施例需要采集的数据与对应的接口:

A:NEXUS 5的CPU调度算法ondemandgovernor[6](按需模式)的参数文 件路,读取sampling_rate_min与sampling_rate文件可以获得采样CPU使用率 的周期Tsam=10ms,读取up_threshold文件可以获得CPU上调频率的使用率阈值 u=80%。

B:NEXUS 5的CPU频率段文件路径:

/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies

步骤1、提取各频率段工作电流及工作电压:通过Linux系统接口可以读取 预置与安卓手机的power_profile.xml文件,也可按照安卓官方指导文档[8]使用功 耗测量仪测试CPU在不同频段fj对应的电流值ij。

步骤2、计算处理器在最高频率段的功耗:我们选取大质数检测算法进行 CPU功耗测算。通过选取大质数2402203,使CPU处于最高频率2265MHz持续 运算,计算时间Th=200ms。

步骤3、计算处理器在所有频率段的功耗:通过各频率段与最高频率段的频 率比值换算,可以计算质数2402203在各频率段的执行时间tj。

步骤4、计算工作频率与功耗关系表由能量公式(一):Q=UIjtj可以计算出 各频率段对应的能量消耗。由步骤2的各频率段的功耗绘制以CPU频率为横坐 标,计算任务的功耗为纵坐标的表图,如附图三。NEXUS 5手机的功耗大致随 频率的增大而增加,其中有两个“极小值点”,883MHz与1190MHz,其中883MHz 的功耗值优于比它更低的频率,即把任务分配给883MHz不仅可以更快的完成, 而且完成整个任务的总功耗更低。1190MHz的功耗值优于小于它的1036MHz与 960MHz,即把任务分配到1190MHz与分配到1036MHz与960MHz上运行相比 可以完成的更快,而且完成任务的功耗更低。

步骤5、选择执行任务的最佳频率段:实施例选取MJPEG格式视频压缩作 为计算任务,每一帧位图压缩为JPEG的限制时间Tlim=40ms,NEXUS 5手机的的 fH=2265MHz,图像压缩在fH上运行的平均时间TH=10ms,则根据公式(二): 计算理论最佳频率fW=1014.72MHz。由于CPU是按照频率 段进行运行的,实际最佳功耗频率应该从CPU频率段序列中选择大于fW的最小 频率fWR。根据NEXUS 5的频率表(如上述实施例接口B所示),可以得知预判 的实际最近频率为fWR=1190MHz。该公式中的Tsam和u可由上述实施例接口A的 方式获得。1190MHz正好也是频率功耗表图的最佳功耗点,属于功耗比较理想 的频率段。既满足了功耗优先又满足了实时性要求。

步骤6、根据步骤5的实际最佳功耗频率fWR,将需要在限定周期Tlim内完成 的长任务分配为短任务,短任务的CPU持续计算时间为TSW,以周期Tsam为间 隔顺序执行到任务完成。其中TSW=Tsam·u。实施例中TSW=8ms。每个短周期Tsam内,CPU持续计算时间为TSW,然后释放CPU,等一个Tsam周期结束进入下一 Tsam周期。

本发明的优势在于,通过应用开发者对于应用计算任务的优化分配,保证 CPU在限定的时间内用实际最佳功耗频率完成任务,可以有效减少CPU频率频 繁跳变或者长时间保持高频率,操作简单,应用层的程序员也可以做到CPU的 功耗节能优化,可以很好地满足实时要求,可广泛应用于Android,Linux应用 开发。

本文中所阐述的具体实施例仅仅是对本发明的方法作举例说明。本发明所属 技术领域的技术人员可以对所描述的具体实施例做各种符合自己需求的修改或 补充或采用类似的方式替代,但并不会偏离本发明的思想或者超越所附权利要求 书所定义的范围。

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