RTOS中降低功耗的策略

Saving Power with an RTOS

介绍

随着绿色节能产品需求的增加,快速增长的移动设备,其电池寿命最受关注,设计者必须要考虑在其设计中如何最大限度的降低功耗。这可以通过选择耗电更低的组件,以及更合理的软件架构去实现。

RTOS调度效率

一个普遍的常识,在嵌入式设计中加入RTOS会产生额外的处理开销,从而导致更高的功耗。对于简单的设计,轮询超循环架构可能是更合适的,但对于更高级、更复杂的设计,使用基于事件机制的调度算法部署RTOS可以显著减少应用程序的处理时间,从而允许选择更小的处理器或增加更多的功能。

在一个基于优先级抢占式RTOS的软件工程中,任务是按照优先级执行的,高优先级任务只要就绪总能获得处理器。在没有任务运行时,如任务等待事件而阻塞,RTOS就会运行后台任务即空闲任务,空闲任务可以做一些后台处理工作。但通常情况下,系统只是保持在空闲任务运行直到某个事件产生以使其阻塞的任务激活。软件设计越高效的利用RTOS,空闲任务消耗处理器的时间就越长。

空闲任务睡眠模式

降低功耗首先要做的就是在系统进入空闲任务后,RTOS使处理器进入低功耗模式。为了保证快速响应,处理器将在中断来临时唤醒,如果没有外部中断触发,则将在下一个RTOS tick中断时唤醒。

在OPENRTOS和SAFERTOS系统中,降低功耗的方式是在空闲任务钩子函数中使处理器进入低功耗模式,见图Figure 1。

SAFERTOS系统的超低功耗模式

tickless睡眠模式进一步扩展了之前提出的降低功耗的策略,通过在空闲期间完全停止RTOS tick中断使系统处于省电模式以达到节省电能,停止tick中断将使处理器保持深度省电模式,直到一个中断发生,或是RTOS重新激活任务的时候,如图Figure 2。

使用SAFERTOS,可以在下述情况进入tickless睡眠模式

  • 只有空闲任务在运行的时候,所有的应用任务均被阻塞或挂起
  • 在内核将应用任务激活时,至少需要N个完整的tick周期,这样做可避免在每次tick时计算和重新配置时钟

在tickless睡眠模式处理器将处于睡眠模式,直到下一个任务阻塞时间到达,或是下一个软件定时器被触发。在下述条件满足时,SAFERTOS将使处理器处于深度睡眠模式直到下一个外部中断到来

  • 软件定时器未被使用,或是定时未到,SAFERTOS在任何时候均不执行定时器的回调函数
  • 所有的应用任务均处于挂起状态或无限超时阻塞状态(超时被设置为portMAX_DELAY),SAFERTOS在任何时候均不激活任务

SAFERTOS知道最长的睡眠时间,没有错过任务阻塞时间超时的风险,或软件定时器的执行。但无法预测何时退出低功耗模式,因为无法预测异步中断何时发生,因此在SAFERTOS退出低功耗模式时,无法假定睡了多久,故无法在调整系统时间前计算出睡眠时长。

freertos低功耗机制

freertos是在系统进入空闲任务时,将处理器设置为低功耗状态,当然rtos节拍时钟频率过高,将会使处理器频繁的进入和退出低功耗状态,这带来的电量损耗可能比正常运行模式时还高,为解决这个问题,freertos引入了tickless低功耗模式,即在系统执行空闲任务时停止系统时钟,在tick中断被激活时重新计算并调整rtos的tick计数值,tickless低功耗模式可使处理器保持在深度省电状态,直到中断发生。

【RTOS】基于RTOS的降低功耗的策略的更多相关文章

  1. 基于 普通及Lambda方式实现策略模式

    什么是策略模式 策略模式代表了解决一类算法的通用解决方案,你可以在运行时选择使用哪种方案.比如如何使用不同的条件(比如苹果的重量,或者颜色 )来筛选库存中的苹果.你可以将这一模式应用到更广泛的领域 , ...

  2. 基于KMeans的指数择时策略

    [导语]:聚类分析是指将物理或者抽象对象的结合分组为由类似对象组成的多个类的分析过程.简单来讲,聚类就是通过一些特征去自动识别一个大群体中的多个子群体,这些子群体中的对象彼此之间相似度高,而子群体之间 ...

  3. 【RTOS】RTOS汇编入门 (1)

    引言 为了提高效率,进行更为底层的操作,RTOS常采用汇编语句,因此了解常用的汇编语句,很有必要 汇编指令 1..equ:类似于c中的#define,表声明常量 例如:.equ PSW 0x10000 ...

  4. winform降低功耗总结

    这里整理了一些网上关于Winform如何降低系统内存占用的资料,供参考: 1.使用性能测试工具dotTrace 3.0,它能够计算出你程序中那些代码占用内存较多2.强制垃圾回收3.多dispose,c ...

  5. 【原/转】ios指令集以及基于指令集的app包压缩策略

    iPhone指令集   本文所讲的内容都是围绕iPhone的CPU指令集(想了解ARM指令集的同学请点击这里),现在先说说不同型号的iPhone都使用的是什么指令集: ARMv8/ARM64 = iP ...

  6. 基于CORS的geoserver同源访问策略

    这个问题理顺整个2天.终于攻克.记录下来. 1.下载文件 首先下载cors压缩包,解压,得到的是org/mortbay/servlets/CrossOriginFilter.class文件,把此文件拷 ...

  7. 90-95年CPU功耗感知调度研究

    最近读了三篇1990-1995年的通过调度来降低cpu能耗的文章[1] [2] [3],简单总结一下该年代单核CPU功耗感知的调度策略. Motivation 随着便携式设备逐渐兴起,人们对降低其功耗 ...

  8. FPGA设计中的电源管理(转载)

    过去,FPGA设计者主要关心时序和面积使用率问题.但随着FPGA不断取代ASSP和ASIC器件,设计者们现正期望能够开发低功耗设计,在设计流程早期就能对功耗进行正确估算,以及管理和对与FPGA相关的各 ...

  9. uC/OS-II内核架构解析(1)---嵌入式RTOS(转)

    uC/OS-II内核架构解析(1)---嵌入式RTOS 1. 嵌入式系统基本模型 2. RTOS设计原则 采用各种算法和策略,始终保持系统行为的可预测性.即在任何情况下,在系统运行的任何时刻,OS的资 ...

  10. Linux之RTOS学习

    Linux之RTOS学习 RTOS: Real time operating system 系统选型 可选方案 RTLinux - FSMLabs, WindRiver Systems - http: ...

随机推荐

  1. 如何对U盘的使用权限进行管控

    对U盘的使用权限进行管控是保护企业信息安全的一项重要措施.以下是一些常见的方法,可帮助您有效管理和控制U盘的使用权限: 禁用U盘端口: 在公司计算机上禁用或限制USB端口的使用,特别是那些不需要使用U ...

  2. Python趣味入门10:推倒繁琐化烦为简的推导式

    前言 <西部世界>的德洛丽丝进入了MAZE迷宫,假设她需要列出一系列的平方数作为密码,来进入迷宫.在以往的代码生成类似的数列需要使用循环语句,写多行语句.Python有了推导式,只需要1句 ...

  3. 解决方案 | VS2022 + AutoCAD2024 + ObjectARX2024环境搭建过程

    一.准备工具 1.vs2022 自行网络搜索,各种版本均可(比如专业版.社区版),注意使用社区版必须使用最新版,目前是17.8版本,否则最终会无法使用样板. 2.cad2024 自行网络搜索 3.Ob ...

  4. ElasticSearch的简单api介绍

    1:ElasticSearch是什么? Elasticsearch 是一个分布式的免费开源搜索和分析引擎 适用于包括文本.数字.地理空间.结构化和非结构化数据等在内的所有类型的数据 Elasticse ...

  5. java框架Mybatis的第一个程序

    1:什么是MyBatis MyBatis 是一款优秀的持久层框架 MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集的过程 MyBatis 可以使用简单的 XML 或注解来配 ...

  6. 5分钟就能实现的API监控,有什么理由不做呢?基调听云

    API深度影响着你的应用 今天的数字应用世界其实是一个以API为中心的世界,我们只是没有意识到这些API的重要性.比如在电子商务交易.社交媒体等对交互高度依赖的领域,可以说API决定了应用的质量一点也 ...

  7. CNCF首个云原生多云容器编排项目Karmada正式晋级孵化

    文分享自华为云社区<CNCF首个云原生多云容器编排项目Karmada正式晋级孵化]>,作者:云容器大未来. 近日,云原生计算基金会(CNCF)宣布,CNCF技术监督委员会(TOC)已投票通 ...

  8. 共探AI大模型时代下的挑战与机遇,华为云HCDE与大模型专家面对面

    摘要:近日,华为开发者大会2023(cloud)"开发者生态创新发展圆桌会议"在东莞华为溪流背坡村成功举办. 2023年7月8日,华为开发者大会2023(cloud)"开 ...

  9. 论文解读丨无参数的注意力模块SimAm

    摘要:本文提出了一个概念简单但对卷积神经网络非常有效的注意力模块. 本文分享自华为云社区<论文解读系列三十:无参数的注意力模块SimAm论文解读>,作者:谷雨润一麦. 摘要 本文提出了一个 ...

  10. 一文带你从零认识什么是XLA

    摘要:简要介绍XLA的工作原理以及它在 Pytorch下的使用. 本文分享自华为云社区<XLA优化原理简介>,作者: 拓荒者01. 初识XLA XLA的全称是Accelerated Lin ...