利用实时时钟降低嵌入式系统功耗
嵌入式CPU低功耗模式
低功耗已经是衡量一个嵌入式系统的重要指标。作为嵌入式系统的核心,嵌入式CPU的功耗则对整个系统起着重要的作用。一般而言,嵌入式CPU都有工作模式与低功耗模式,而低功耗模式又可进一步分为空闲模式、休眠模式、睡眠模式等。进入低功耗模式后,CPU的功耗会降低很多。外部中断发生时,又可以将CPU唤醒。
一个嵌入式系统开始运行后,当系统进入IDLE状态,就可以让CPU进入低功耗模式。让CPU尽可能多地处于低功耗模式,可以大大降低系统的功耗。
然而,即使系统处于IDLE而且没有别的工作要做,系统实时时钟的中断也会不停地唤醒CPU,从而增加系统功耗。因此,可以考虑对系统实时时钟的中断进行修改,从而减少对系统功耗的影响。
系统实时时钟与功耗的关系分析
系统实时时钟是现代多任务嵌入式操作系统的重要组成部分,因此我们需要先讨论一下嵌入式操作系统与系统实时时钟的关系。在目前的嵌入式系统中,系统实时时钟一般是一个硬件循环计数器。当硬件计数器计到一定数值时会向CPU发出中断。
嵌入式操作系统一般都支持多任务、优先级和时间片调度。
当嵌入式操作系统运行起来后,一般都有一个IDLE任务,它的优先级最低,而其他任务的优先级都应该比它高。在优先级调度机制中,只有当系统中其他高优先级任务都处于阻塞状态时,它才有机会运行。时间片调度机制只对同优先级的任务有效。也就是说,不同优先级的任务之间是不会按时间片调度轮转的,而是按优先级来调度的。因此当系统进入IDLE任务时,可以认为系统中没有工作需要CPU来做,系统为IDLE状态。
当时间片调度机制开启后,嵌入式操作系统就会根据时间片来调度任务。也就是当一个时间片用完后,要运行调度器来决定下一个时间片的归属。时间片的基本单位是系统tick,以系统实时时钟为基础。当系统实时时钟中断产生时,CPU会将系统tick加1。每当系统tick增加n(一个时间片)时,嵌入式操作系统将启用调度器进行时间片调度。因此,当时间片调度机制开启后,就需要系统tick的实时更新和调度器的定时运行,也就需要实时时钟中断以很高的频率定时产生。
如果关闭时间片调度机制,则任务之间只需要按照优先级来调度,这样就不需要计算时间片,也就是系统tick不用实时更新,实时时钟的中断也不必以很高的频率产生,从而降低系统在空闲时的功耗。调度器不用定时运行,也可以节省系统开销。这样就有可能考虑延长实时时钟的中断间隔。关闭时间片调度后,系统就只有优先级调度。这就要求系统的所有任务要主动阻塞,而不要期待调度器把同优先级的其他任务调度出CPU而让自己运行。在目前流行的嵌入式操作系统中,一般都提供了很多主动阻塞的机制。
相关文章
- 2022-04-27监控摄像机日夜及彩色黑白转换两用简析
- 2024-07-09多CCD拼接相机中图像传感器不均匀性校正
- 2023-03-02智能化色谱分析软件的研究与应用探讨
- 2024-02-26实现同一分析周期内两流路并行分析的技术改造
- 2024-07-31铁路客车提速轴承外圈非基准端面挡边平行度测量仪的研制



请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。