基于嵌入式系统功耗模式的选择方法及系统,嵌入式系统的利记博彩app
【技术领域】
[0001]本发明涉及嵌入式系统功耗的问题,特别涉及一种基于嵌入式系统功耗模式的选择方法及系统,嵌入式系统。
【背景技术】
[0002]基于异构多核架构的嵌入式系统的架构即结合两种或多种不同类型的微处理器或微控制器的架构。因其能够提供更高的处理器性能、更有效的电源利用率,并且占用更少的物理空间,近来在嵌入式领域得到了大范围推广,特别是在强调整合功能性和连通性的高性能嵌入式设备方面。
[0003]目前,关于基于异构多核架构的嵌入式系统的功耗的相关文献和专利比较少,从芯片级层次和操作系统层次上论述的,并且能够兼顾性能和功耗的平衡,几乎没有。功耗和性能时候本身的相互矛盾,更是提高了优化的难度。
【发明内容】
[0004]本发明的目的是为了解决性能和功耗平衡不能平衡的问题,提出了一种基于嵌入式系统功耗模式的选择方法及系统,嵌入式系统,在满足性能的要求下,实现了 “能省则省”的目的。
[0005]为实现上述目的,第一方面,本发明提供了一种基于嵌入式系统的功耗模式选择方法,该选择方法包括:
[0006]根据系统资源将嵌入式系统划分成多种目标状态,当嵌入式系统处于空闲状态,并且允许睡眠时,则根据当前系统资源被占用的情况,确定嵌入式系统当前允许进入的目标状态,每种目标状态对应于相应的功耗等级;系统资源包括各个处理器的状态、电源、时钟,内存和总线中的一种或多种系统资源;
[0007]根据唤醒时间点和当前时间点初步确定睡眠时间;唤醒时间点由嵌入式系统的下一次调度的时间来确定;
[0008]将睡眠时间与进入和退出每种目标状态的时延值进行比较,根据比较结果选择进入一种相应的功耗模式,功耗模式对应于相应的功耗等级。
[0009]优选地,根据唤醒时间点和当前时间点确定睡眠时间步骤包括:
[0010]根据嵌入式系统中途被唤醒的概率确定唤醒因子,由唤醒因子对唤醒时间点进行修正;
[0011]根据修正后的唤醒时间点和当前时间点确定实际睡眠时间;其中,唤醒因子对应于相应的功耗等级。
[0012]优选地,进入和退出每种目标状态的时延值是由乘法因子P来量化,当嵌入式系统负载越大时,每种目标状态的时延值为P*Tn,其中P的值取决于嵌入式系统的负载和1负载,Tn为目标状态的时延值。
[0013]优选地,将睡眠时间与进入和退出每种目标状态的时延值进行比较,根据比较结果选择相应的目标状态步骤之前还包括:
[0014]判断嵌入式系统是否对服务质量有要求;
[0015]当嵌入式系统对服务质量有要求时,则指定一个时延值Tqos;将指定的一个时延值Tqos与时延值Tn进行比较。
[0016]优选地,将睡眠时间与进入和退出每种目标状态的时延值进行比较,根据比较结果选择相应的功耗等级的步骤包括:
[0017]将实际睡眠时间m*T与和量化后的时延值p*Tn进行比较,根据比较结果,选择相应的功耗等级。
[0018]第二方面,本发明提供了一种基于嵌入式系统的功耗模式选择系统,该选择系统包括:功耗管理模块、获取时间模块和选择模块;
[0019]功耗管理模块用于根据系统资源将嵌入式系统划分成多种目标状态,当嵌入式系统处于空闲状态,并且允许睡眠时,则根据当前系统资源被占用的情况,确定嵌入式系统当前允许进入的目标状态,每种目标状态对应于相应的功耗等级;系统资源包括各个处理器的状态、电源、时钟,内存和总线中的一种或多种系统资源;
[0020]获取时间模块用于根据唤醒时间点和当前时间点初步确定睡眠时间;唤醒时间点由嵌入式系统的下一次调度的时间来确定;
[0021]选择模块用于将睡眠时间与进入和退出每种目标状态的时延值进行比较,根据比较结果选择相应的目标状态,功耗模式对应于相应的功耗等级。
[0022]优选地,获取时间模块具体用于:
[0023]根据嵌入式系统中途被唤醒的概率确定唤醒因子,由唤醒因子对唤醒时间点进行修正;
[0024]根据修正后的唤醒时间点和当前时间点确定实际睡眠时间;其中,唤醒因子对应于相应的功耗等级。
[0025]优选地,选择系统还包括判断模块;
[0026]判断模块用于判断嵌入式系统是否对服务质量有要求;
[0027]当判断模块的结果为肯定时,则指定一个时延值;将指定的一个时延值与时延值进行比较。
[0028]第三方面,本发明提供了一种嵌入式系统,该嵌入式系统包括如上述描述的基于嵌入式系统功耗模式的选择系统。
[0029]本发明基于嵌入式系统的空闲程度,调度时间,进出不同功耗模式,睡眠中断概率,1调度,性能和功耗要求等指标,使得整个系统在满足性能和实时性要求的基础上,能够最大程度的节省功耗,达到了功耗,性能,实时性的最大平衡。
【附图说明】
[0030]为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0031]图1为本发明实施例提供的一种基于嵌入式系统功耗模式的选择方法的流程图;
[0032]图2为本发明实施例提供的一种基于嵌入式系统功耗模式的选择系统的结构示意图;
[0033]图3为本发明实施例提供的一种嵌入式系统的结构示意图;
[0034]图4为本发明实施例中确定实际睡眠时间的结构示意图;
[0035]图5为本发明实施例中确定量化后的时延值的结构示意图。
【具体实施方式】
[0036]下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。本发明将嵌入式系统的状态根据时钟和供电划分为一种或多种目标状态(依据具体异构多核SOC系统和电路板的设计),每种目标状态对应于相应的功耗等级;当系统处于空闲状态并允许睡眠时,功耗管理模块根据各个处理器状态、电源、时钟,内存,总线等系统资源投票情况,确定该系统当前允许进入的几种低功耗模式。每种功耗模式对应于相应的功耗等级(Cl,c2,c3..);相应的功耗等级,通过实验测量进出各种功耗模式需要的时间作为进入特定功耗模式的时延(Latency),根据比较计算的时间(系统实际的睡眠时间)和功耗模式的时延(Latency)来选择功耗等级。
[0037]图1为本发明实施例提供的一种基于嵌入式系统功耗模式的选择方法的流程图。如图1所示,该选择方法的步骤包括:
[0038]步骤SlOO:根据系统资源将嵌入式系统划分成多种目标状态,当嵌入式系统处于空闲状态,并且允许睡眠时,则根据当前系统资源被占用的情况,确定嵌入式系统当前允许进入的目标状态,每种目标状态对应于相应的功耗等级;系统资源包括各个处理器的状态、电源、时钟,内存和总线中的一种或多种系统资源;
[0039]步骤SI 10:根据唤醒时间点和当前时间点初步确定睡眠时间;唤醒时间点由嵌入式系统的下一次调度的时间来确定;
[0040]步骤S120:判断嵌入式系统是否对服务质量有要求;有要求时,指定一个时延值;将指定的一个时延值与每种目标状态的时延值进行比较;
[0041]步骤S130:将睡眠时间与进入和退出每种目标状态的时延值进行比较,根据比较结果选择相应的目标状态,所述功耗模式对应于相应的功耗等级。
[0042]执行步骤S120是嵌入式系统对服务质量有要求,则需要将指定的一个时延值Tqos与时延值Tn进行比较,以及将实际睡眠时间m*T与和量化后的时延值p*Tn进行比较,根据比较结果选择相应的功耗等级。
[0043]不执行步骤S120直接执行步骤S130是嵌入式系统对服务质量没有要求,将实际睡眠时间m*T与和量化后的时延值ρ*Τη进行比较,根据比较结果选择相应的功耗等级。
[0044]具体地,考虑系统睡眠时,有一定的概率被唤醒,我们可以假设唤醒因子为m,实际的睡眠时间为m*T;这样,以更好的满足系统实时性的要求,不至于因为睡眠导致很多系统的要求(任务)被延时;假设有50%的可能系统被中途唤醒,可以加上0.5(唤醒因子)的修正,实际睡眠时间预估计为0.5T。考虑到500毫秒的空闲时间被打断的概率明显比50us空闲时间被打断的概率要大,m的值随着T的增加而增加,m值可以通过系统压力测试得出。对于Cl,C2,C3,C4.??对应的m值分别为ml,m2,m3,m4...。
[0045]具体地,功耗等级Cl (core state),C2,C3,C4…的数字越大,代表越省电,功耗越低,进出该模式的延时(latency)会越长。对于Cl,C2,C3….的划分,随着SOC核心数量的增加,每个状态可以划分出更深的粒度。然后,通过实验测定进出各种功耗模式需要的时间作为进入特定低功耗模式的Latency,比如Tl,T2,T3,T4。
[0046]具体地,时延值(latency)是指进入和退出一种功耗模式的时间,比如说进入和退出sleep mode、standby mode和stop mode的时间是不一样的;越是省电的功耗模式,进入和退出该功耗模式的时间越长,对系统的性能负面影响越大;对于上述问题,可以使用乘法因子P来来量化,当系统负载越大是,原来的时延(latency )*p变为ρ*Τ1,p*T2,p*T3,p*T4等;P的取值为经验值,取决于两个方面,一个是系统负载,另一个是1负载;系统负载和1(输入输出系统负载)负载越大,P值也越大;这个时候需要先获取系统需要实际睡眠的时间m*T;比较m*T和p*Tn(n为目标状态的种类),如果p*Tn+l>m*T> = p*Tn,则系统允许进入到Cn模式。
[0047]但是针对系统的功能模块对服务质量(Qos)有要求,可以指定一个时延值Tqos,将时延值Tn与指定的一个时延值Tqos进行比较,以及同时将实际睡眠时间m*T与和量化后的时延值P*Tn进行比较,当Tn〈 = Tqos且p*Tn+l>m*T> = p*Tn,贝Ij系统允许进入到Cn模式。
[0048]需要说明的是,一个嵌入式系统可以执行很多的任务,系统在空闲的时间远大于系统高速运行的时间,因此,需要根据系统的空闲程度,资源的投票情况,调度时间,进出不同功耗模式的延时,性能,服务质量(Qos)和功耗要求等指标来安排系统的空闲时间。
[0049]嵌入式系统判断系统是否处于空闲状态,是通过嵌入式系统的任务给睡眠任务(sleep task)投票允许睡眠,睡眠任务(sleep task)会查看所有任务的投票情况,根据投票结