中央处理器的休眠控制方法与设备与流程

文档序号:14119650阅读:292来源:国知局
中央处理器的休眠控制方法与设备与流程

本发明涉及计算机领域,特别涉及一种中央处理器的休眠控制方法与设备。



背景技术:

移动终端正常运行的基础,是移动终端操作系统的进程调度,当所有进程都不再运行时,操作系统的中央处理器cpu进入空间状态,随着智能移动终端的发展,操作系统的功耗策略至关重要,一般的芯片平台,都会设计3至5个等级的空闲状态,使得cpu在空闲时,进入相应的空闲状态,当需要处理任务时,再唤醒cpu,cpu进入和退出空闲状态的处理流程,如图1的步骤101至步骤105所示。通常情况下,当系统性能越好时,功耗就会越高,当cpu所处的空闲状态越深时,cpu的功耗就越低,同时,cpu进入和退出空闲状态的延时也会越大,对系统性能损耗也就越大。

然而,在实现发明的过程中,本申请的发明人发现,采用图1所示的处理流程,每当需要唤醒中央处理器处理任务时,都不可避免的造成中央处理器从被唤醒到处理任务期间的性能损耗,又由于中央处理器进入和退出空闲状态的延时越大,对性能损耗就越大,从而导致目前的中央处理器,不敢轻易进入更深的空闲状态。



技术实现要素:

本发明实施方式的目的在于提供一种中央处理器的休眠控制方法与设备,通过提前唤醒cpu,使得cpu可以尽早处理任务,降低了从唤醒cpu到cpu开始处理任务期间的性能损耗,从而减小了cpu各等级的空闲状态对系统性能的影响。

为解决上述技术问题,本发明的实施方式提供了一种中央处理器的休眠控制方法,包括:

在中央处理器cpu准备进入空闲状态时,获取第一定时器的第一到期时间t0;其中,所述第一定时器为距离唤醒时间最短的定时器;

根据所述t0,选择对应等级的空闲状态;

判断是否需要提前唤醒所述cpu;

如果需要提前唤醒所述cpu,则提前唤醒所述cpu。

本发明的实施方式还提供了一种中央处理器的休眠控制设备,包括:第一获取模块、选择模块、第一检测模块与唤醒模块;

所述第一获取模块,用于当中央处理器cpu准备进入空闲状态时,获取第一定时器的第一到期时间t0;其中,所述第一定时器为距离唤醒时间最短的定时器;

所述选择模块,用于根据所述t0,选择对应等级的空闲状态;

所述第一检测模块,用于确定是否需要提前唤醒所述cpu;

所述唤醒模块,用于当所述检测模块确定提前唤醒所述cpu时,提前唤醒所述cpu。

本发明实施方式相对于现有技术而言,在中央处理器cpu准备进入空闲状态时,获取距离唤醒时间最短的第一定时器的第一到期时间t0,并根据t0选择对应等级的空闲状态,使得cpu可以进入一个比较合适的空闲状态,当cpu准备进入选定等级的空闲状态时,进一步判断是否需要提前唤醒cpu,如果需要提前唤醒cpu,则配置为提前唤醒cpu,通过提前唤醒cpu,使得cpu可以尽早处理任务,降低了从唤醒cpu到cpu开始处理任务期间的性能损耗,在不增加额外功耗的情况下,减小cpu各等级的空闲状态对系统性能的影响。

另外,根据设备树配置文件dts的配置,判断是否需要提前唤醒所述cpu。根据操作系统的设备驱动的配置文件,可以更加准确的判断出是否需要提前唤醒cpu。

另外,所述提前唤醒所述cpu具体包括:获取所述空闲状态的退出延时t;根据所述退出延时t,计算第二定时器的第二到期时间t2,其中,t2=t3-t,t3为预设的第二定时器的第三到期时间;当所述第二定时器到达所述t2时,提前唤醒所述cpu。

根据空闲状态的退出延时t,及预设的唤醒cpu的第二定时器的第三到期时间t3,计算提前唤醒cpu的时间t2,其中,t2=t3-t,当第二定时器达到提前唤醒时间t2时,唤醒cpu,使得cpu提前处理任务,减小了预设的唤醒时间到开始处理任务期间的性能损耗,从而减小了cpu各等级的空闲状态对系统性能的影响。

另外,所述计算第二定时器的第二到期时间t2,具体包括:判断所述退出延时t是否大于预设门限;如果所述退出延时t大于预设门限,则计算第二定时器的第二到期时间t2。

进一步检测退出延时是否大于预设门限,当退出延时小于预设门限时,不会提前唤醒cpu,使得用户可以根据需要,决定是否提前唤醒cpu。

附图说明

图1是现有技术中的唤醒中央处理器的处理流程图;

图2是根据本发明第一实施方式的一种中央处理器的休眠控制方法流程图;

图3是根据本发明第二实施方式的一种中央处理器的休眠控制方法流程图;

图4是根据本发明第三实施方式的一种中央处理器的休眠控制设备的结构示意图;

图5是根据本发明第五实施方式的一种中央处理器的休眠控制设备的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。

本发明的第一实施方式涉及一种中央处理器的休眠控制方法。具体流程如图2所示。

在步骤201中,获取第一定时器的第一到期时间。

具体地说,在中央处理器cpu准备进入空闲状态时,获取第一定时器的第一到期时间t0,其中,第一定时器为距离唤醒cpu时间最短的定时器,cpu的低功耗状态与休眠状态统称为空闲状态。

在步骤202中,选择对应等级的空闲状态。

具体地说,cpu空闲状态调度器根据上述t0,选择一个对应等级的空闲状态,使得cpu进入该空闲状态,其中,空闲状态调度器预先配置了3至5个不同等级的空闲状态,使得空闲状态调度器可以根据t0,为cpu选择合适等级的空闲状态。

在步骤203中,判断是否提前唤醒中央处理器,如果提前唤醒中央处理器,则执行步骤206,否则执行步骤204。

具体地说,中央处理器的唤醒源包括定时器的中断唤醒与外部设备的中断唤醒,其中,定时器的中断唤醒是指,定时器达到预设的cpu唤醒时间时,使cpu退出空闲状态,外部设备的中断唤醒是指,外部设备根据任务需要,随时使cpu退出空闲状态,由于外部设备的中断唤醒是无法预知的,所以,系统调度和空闲状态调度器均不考虑这种无法预知的情况,而是采用随时退出空闲状态处理任务的策略,本发明实施方式,也暂不考虑这种外部设备的中断唤醒情况。

进一步地,根据操作系统的设备树配置文件dts,可以准确的判断出是否需要提前唤醒中央处理器cpu,如果需要提前唤醒cpu,则执行步骤206,计算第二定时的第二到期时间,否则执行步骤204,按照预设的唤醒时间,唤醒中央处理器。

在步骤204中,按照预设的唤醒时间,唤醒中央处理器。

具体地说,将本次唤醒中央处理器的定时器记作第二定时器,从而根据预先为第二定时器设置的第三到期时间t3,唤醒cpu,使得cpu退出空闲状态并处理任务,其中,将预先为第二定时器设置好的到期唤醒时间,记作第二定时器的第三到期时间t3。

进一步地,在多核操作系统架构下,每个cpu均有可能调度空间状态进程,从而使得cpu内核进入空闲状态,如果这时候该cpu的本地定时器由于cpu进入空闲状态而被停掉,那么该cpu内核上的所有软件定时器将不能正常运作,为了维持第二定时器的正常唤醒功能,第二定时器采用广播定时器,或应用处理器ap定时器,其中,ap定时器为一个系统级别的硬件定时器,该系统级别的硬件定时器不受cpu空闲状态的影响,自始至终均起作用,也不属于任何一个cpu,从而可以使用ap定时器来唤醒cpu,广播定时器为选定的某个cpu内核的本地定时器,用于唤醒其它处于空闲状态的cpu内核。

在步骤205中,获取空闲状态的退出延时。

具体地说,每个等级的空闲状态都会有对应的退出延时t,当判定提前唤醒中央处理器时,需要根据cpu所处的空闲状态的退出延时t,计算提前唤醒中央处理器的时间提前量。进一步地,空闲状态的退出延时t,是根据实验多次获得的,在不同的实验环境下,会存在不同的退出延时值,选择所有退出延时中的最小值,作为空闲状态的退出延时t即可,这不仅可以提前唤醒cpu,还可以有效避免提前唤醒cpu的时间过长、避免cpu唤醒后无法检测到处理任务所造成的不必要的功耗,其中,不同的实验环境是指电压、频率或温度等,取不同值时的环境,因为电压、频率或温度等的变化均会影响cpu的性能,所以退出延时也会发生变化,

在步骤206中,计算第二定时器的第二到期时间

具体地说,根据上述空闲状态的退出延时t及第二定时器的第三到期时间t3,计算第二定时器的第二到期时间t2,并将第二定时器唤醒cpu的时间更新为t2,其中,t2=t3-t,t2为第二定时器提前唤醒cpu的时间。进一步地,当第二定时器为广播定时器,且在多核操作系统中时,广播定时器为多个cpu内核共用,需要根据其它cpu的需求,更新该广播定时器的第二到期时间t2。

在步骤207中,达到第二到期时间时,唤醒中央处理器。

具体地说,当到达第二定时器的第二到期时间t2时,唤醒cpu,使cpu进入相应的退出空闲状态的过程。

在步骤208中,中央处理器处理任务。

具体地说,当中央处理器退出空闲状态时,进行相应的任务处理,等任务处理完成后,cpu还会根据实际情况决定是否再次进入空闲状态。

与现有技术相比,在本实施方式中,当中央处理器cpu准备进入空闲状态时,获取距离唤醒时间最短的第一定时器的第一到期时间t0,cpu空闲状态调度器根据t0选择对应等级的空闲状态,使得cpu可以进入一个比较合适的空闲状态,当cpu准备进入选定等级的空闲状态时,进一步根据dts,准确判断出是否需要提前唤醒cpu,如果需要提前唤醒cpu,则进一步计算唤醒cpu的第二定时器的第二到期时间t2,根据用户需求决定是否提前唤醒cpu,使得整个流程更加合理,当第二定时器到达t2时,唤醒cpu,通过提前唤醒cpu,使得cpu可以尽早处理任务,降低了从唤醒cpu到cpu开始处理任务期间的性能损耗,从而实现了在不增加额外功耗的情况下,减小cpu各等级的空闲状态对系统性能的影响。

本发明的第二实施方式涉及一种中央处理器的休眠控制方法。第二实施方式在第一实施方式的基础上做了进一步改进,主要改进之处在于:在本发明第二实施方式中,在获取空闲状态的退出延时后,进一步增加了检测退出延时是否大于预设门限的流程,使得整个唤醒中央处理器的流程更加完备,具体流程如图3所示。

在步骤301中,获取第一定时器的第一到期时间。

在步骤302中,选择对应等级的空闲状态。

在步骤303中,判断是否提前唤醒中央处理器。

在步骤304中,按照预设的唤醒时间,唤醒中央处理器。

在步骤305中,获取空闲状态的退出延时。

在步骤306中,退出延时是否大于预设门限,如果退出延时大于预设门限,则执行步骤307,否则执行步骤304。

具体地说,进一步判断退出延时是否大于预设门限,如果退出延时大于预设门限,则执行步骤307,否则执行步骤304,使得退出延时较小的空闲状态,可以通过配置跳过cpu的提前唤醒。

在步骤307中,计算第二定时器的第二到期时间。

在步骤308中,达到第二到期时间时,唤醒中央处理器。

在步骤309中,中央处理器处理任务。

本实施方式,在获取到空闲状态的退出延时后,进一步检测退出延时是否大于预设门限,当退出延时小于预设门限时,不会提前唤醒cpu,使得用户可以根据需要,决定是否提前唤醒cpu,进一步完备了整个唤醒中央处理器的流程。

上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包含相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。

本发明第三实施方式涉及一种中央处理器的休眠控制设备,如图4所示,包括:第一获取模块41、选择模块42、第一检测模块43与唤醒模块44,其中,唤醒模块44具体包括:第一获取子模块441、计算子模块442与第一确定子模块443。

第一获取模块41,用于当中央处理器cpu准备进入空闲状态时,获取第一定时器的第一到期时间t0;其中,第一定时器为距离唤醒时间最短的定时器。

选择模块42,用于根据t0,选择对应等级的空闲状态。

第一检测模块43,用于确定是否需要提前唤醒cpu。

唤醒模块44,用于当检测模块确定提前唤醒cpu时,提前唤醒cpu。

第一获取子模块441,用于获取空闲状态的退出延时t。

计算子模块442,用于根据退出延时t,计算第二定时器的第二到期时间t2,其中,t2=t1-t,t1为预设的第二定时器的第三到期时间。

第一确定子模块443,用于当第二定时器到达t2时,确定提前唤醒cpu。

不难发现,本实施方式为与第一实施方式相对应的系统实施例,本实施方式可与第一实施方式互相配合实施。第一实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第一实施方式中。

值得一提的是,本实施方式中所涉及到的各模块均为逻辑模块,在实际应用中,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本发明的创新部分,本实施方式中并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,但这并不表明本实施方式中不存在其它的单元。

本发明第四实施方式涉及一种中央处理器的休眠控制设备。第四实施方式在第三实施方式的基础上做了进一步改进,主要改进之处在于:在本发明第四实施方式中,不仅包括第一获取模块41、选择模块42、第一检测模块43与唤醒模块44,第一获取子模块441、计算子模块442与第一确定子模块443,而且计算子模块442还包括第一检测子模块4421与第二确定子模块4422,如图5所示。

第一获取模块41,用于当中央处理器cpu准备进入空闲状态时,获取第一定时器的第一到期时间t0;其中,第一定时器为距离唤醒时间最短的定时器。

选择模块42,用于根据t0,选择对应等级的空闲状态。

第一检测模块43,用于确定是否需要提前唤醒cpu。

唤醒模块44,用于当检测模块确定提前唤醒cpu时,提前唤醒cpu。

第一获取子模块441,用于获取空闲状态的退出延时t。

计算子模块442,用于根据退出延时t,计算第二定时器的第二到期时间t2,其中,t2=t1-t,t1为预设的第二定时器的第三到期时间。

第一检测子模块4421,用于检测退出延时是否大于预设门限。

第二确定子模块4422,用于当退出延时大于预设门限时,确定提前唤醒cpu。

第一确定子模块443,用于当第二定时器到达t2时,确定提前唤醒cpu。

由于第二实施方式与本实施方式相互对应,因此本实施方式可与第二实施方式互相配合实施。第二实施方式中提到的相关技术细节在本实施方式中依然有效,在第二实施方式中所能达到的技术效果在本实施方式中也同样可以实现,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第二实施方式中。

本领域技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。

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