实时操作系统CPU软件降温研究报告

原创 2003年10月21日 00:04:00

实时操作系统

CPU软件降温研究报告

 

 

问题描述

随着

CPU主频的不断提高,在嵌入式领域,在iRmxpsosvxworks等实时操作系统下工作的高主频CPU往往需要考虑CPU降温的问题。通常采用的方法是通过风扇或散热片等硬件措施进行降温,但由于嵌入式系统的特殊性,某些嵌入式设备考虑到体积,外壳密闭等因素的限制不适合使用风扇或散热片进行降温,在这种情况下,我们不得不考虑软件降温的可行性。当然软件降温是在万不得已时采取的权宜之计,有条件的情况下当然是硬件降温效果最好。

目前网上有很多降温软件如

CPUIdle等,但这些软件都是在win9x等非实时操作系统上运行的,实时操作系统如果用类似方法给CPU降温会不会影响操作系统的效率和操作系统的实时性?本文将着重阐述本人对上述问题的研究结果。

 

研究环境

硬件环境

Intel P 233 ,Intel PIII 700

软件环境 iRmx 实时操作系统

 

工作原理

Intel power state

上图是

Intel Cpu 的电源管理部分状态迁移图,Intel 提供以下几种电源管理模式,Auto Halt,Stop Grant,Sleep,Deep Sleep ,Deeper Sleep 。除Auto Halt 外其它模式都会导致时钟停止。在时钟停止状态下,处理器将关闭对SMI#,INIT#LINT[1:0]的侦听,只有在回到Normal状态时才重新开启,这会对系统特别是实时系统产生一定的影响,所以本文不讨论这些模式。

本文着重讨论的是

Auto Halt 模式,这也是大多数的降温软件通常采用的方式。

 

Auto Halt

模式的特性

Intel Cpu

通过在Normal状态下执行 HLT 指令将状态迁移到Auto Halt 模式。此时CpuHLT指令插入指令序列,并停止处理指令序列,直到发生SMI#,INIT#,LINIT[1:0](NMI,INTR)PSB 中断消息为止。当发生上述消息后Cpu重新回到Normal状态处理指令,并在处理完中断代码后继续从HLT指令的下一条指令执行。处理器在进入Auto Halt 模式后功耗将有所下降。

 

软件如何实现降温

由于软硬件系统在正常情况下大部分时间

CPU利用率都较低,所以只要在CPU空闲时对CPU下一条HLT指令,就可以大大降低CPU的功耗,从而达到降温的目的。

在实时操作系统中,通常我们会设计一个最低优先级的任务做死循环处理,系统在空闲时都会走到该任务中。我们只要在这个任务的循环中加入一条

HLT指令就可以达到上述目的。

 

相关研究

CPU

占用率的计算

CPU

占用时间的计算方法: 通过获得上面所提到的最低优先级任务在一段时间T内的CPU占用时间t0, 来推算CPU的占用率,计算公式为 CpuRate = (T-t0) /T 。下面所有实验的CPU占用率计算方法都同该方法。

实验方法

实验编号

1

实验环境 Intel P233 ,iRmx

目的 验证不Halt Halt 情况下CPU占用率的计算结果有没有偏差。

实验内容

100毫秒由高优先级任务 Task1 低优先级任务Task2 发送100 长度为900的消息,低优先级任务收到该消息后做 Times 次循环,通过改变Times的值来控制CPU占用率。分别测试不Halt Halt 情况下,相同Times 时根据上述方法计算处理的CPU占用率数值。

CPU Rate

Times

No Halt

Halt

100

6%

6%

1000

12%

12%

5000

35%

35%

10000

64%

64%

13000

82%

82%

15000

95%

95%

     

结论

Halt Halt 情况下CPU占用率的计算结果没有偏差

实验总结

我在做这个测试之前一直想当然的认为这个问题是

HALT和不HALT在软件上的最大变化。我的理由是当HLT指令被执行,最低优先级任务按说应该不占用CPU时间,这样通过得它的CPU占用时间来计算CPU占用率就会有很大偏差。

然而当我做过测试以后,惊讶地发现

HALT和不HALT CPU占用率的计算没有什么变化。经过反思后,我恍然大悟,原来操作系统在计算任务的CPU占用时间时是以任务的上下文切换作为统计的触发条件,当任务在执行HLT指令时操作系统并没有进行任务上下文切换,操作系统自然 认为CPU 进入AUTO HALT 状态的这段时间依然是被该任务占用的。

 

CPU

的降温幅度

实验方法

实验编号

2

实验环境Intel PIII 700 CPU 带小散热片 ,iRmx

目的 验证不Halt Halt 情况下不同CPU占用率条件下对CPU温度的影响。

实验内容

测出两种情况下不同CPU占用率对应的CPU温度。

CPU

占用率

温度(

No Halt)摄氏度

温度(

Halt)摄氏度

100%

54

54

80%

54

51

60%

54

47

40%

54

45

20%

54

42

10%

54

40

3%

54

38

从上面测得的数据来看

CPU在执行HLT指令后,温度确实有了很明显的下降。下面我们看看上面测得的值和从温度理论推导出来的结果是否吻合。

根据温度理论,

CPU的功耗E,热阻R 温度T 三者之间的关系是

T-T0 = E

×R ,T0 为初始温度

CPU 占用率r在通常情况下和功耗E成正比,CPUHALT以后还有部分在工作,以及环境温度的影响,所以CPU肯定存在一个初始温度,即r=0时的温度。

在热阻一定的情况下,根据上面所述我们可以设

r = K(T-T0),或T = r/K + T0

其中R=1/K

r=100 ,T=54 r= 10 ,T=40 带入上面公式,得K=6.4 ,T0 = 38.4

理论值对应的温度表为

CPU

占用率

温度(

Halt)摄氏度

误差

100%

54.0

0

80%

50.9

+0.1

60%

47.8

-0.8

40%

44.6

+0.4

20%

41.5

+0.5

10%

40.0

0

3%

38.8

-0.8

0%

38.4

-

由于我使用的温度计的误差范围在正负

1摄氏度范围内,所以上面的测试结果符合理论推导的结果。

结论

CPU

在执行HLT指令后,CPU温度和CPU占用率成正比,和CPU热阻成反比,相同散热条件下,CPU占用率越高,CPU温度越高;相同CPU占用率条件下,热阻越大,即散热越不好,CPU 温升幅度越大。

对系统实时性的影响

实验方法

实验编号

3

实验环境 Intel P233 ,iRmx

目的

验证不Halt Halt 情况下不同CPU占用率条件下软件实时性是否受到影响。

实验内容

CPU 占用率的计算和获得方法同实验1。通过Pentium CPU的一个扩展指令RDTSC(Read Time Stamp Counter) 获得计算机启动以后累计的系统时钟数 sysclkcounter。在实验的软件系统的高最优先级任务CMOSTIMETASK 中断任务中计算每次进入该中断时sysclkcounter 和上次中断时的差值,得到两次中断任务的时间间隔。CMOS 中断每十毫秒发生一次。计算不同CPU占用率下 No Halt Halt CMOS 中断间隔的系统时钟数。

因为

CMOS 中断本身有一定误差,sysclkcounter interval 的有效数字我们只精确到十万位,即时间精确到1毫秒左右。

sysclkcounter

interval

Cpu Rate

No Halt

Halt

3%

1100000

1100000

10%

1100000

1100000

30%

1100000

1100000

50%

1100000

1100000

80%

1100000

1100000

90%

1100000

1100000

     

实验编号

4

实验环境 Intel P233 ,iRmx

目的 验证不Halt Halt 情况下不同中断频度条件下软件实时性是否受到影响。

实验内容

通过向系统不停发送UDP数据包来触发网卡中断,测试不同数据流量下CMOS 中断间隔的系统时钟数。

因为 CMOS 中断本身有一定误差,sysclkcounter interval 的有效数字我们只精确到十万位,即时间精确到1毫秒左右。

 

每百毫秒发送的

UDP包数

包大小

(UDP包长度)

CPU

占用率(No Halt)

CPU

占用率(Halt)

10

毫秒系统时钟次数,精确到10万次(No Halt)

10

毫秒系统时钟次数,精确到10万次(Halt)

每秒钟网卡中断数

0

-

3%

3%

1100000

1100000

20

1

10

4%

4%

1100000

1100000

110

50

10

27%

27%

1300000

1300000

200

100

10

56%

56%

1800000

1800000

320

150

10

90%

90%

2300000

2300000

370

实验分析

如果读者细心的话,会发现当网卡中断数增加以后,

CMOS中断间隔时间有很大的变化,我在最初看到这个结果时一时无法理解,因为CMOS中断的优先级是我所做实验的系统中最高的(高于网卡中断),网卡中断怎么会对比自己优先级高的CMOS中断产生这么大的影响呢?后来我发现,我所做实验的软件系统中,在响应网卡中断时关闭了所有的中断包括比它优先级高的CMOS中断,这样做的目的是为了防止中断重入时造成堆栈不足,导致系统崩溃。那么这样就不难理解为什么网卡中断会对CMOS中断有如此的影响了。

不过在相同影响的情况下

no halt halt 没有什么差别。

结论

HLT 指令的执行对软件系统实时性没有影响。

 

研究总结

通过上述实验,我们可以下结论,

CPU 在执行HLT指令后,CPU温度和CPU占用率成正比,和CPU热阻成反比,相同散热条件下,CPU占用率越高,CPU温度越高;相同CPU占用率条件下,热阻越大,即散热越不好,CPU 温升幅度越大。

CPU 执行HLT指令对于实时操作系统的实时性没有影响。

 

android之cpu使用率曲线效果的实现!

android中,在很多地方看到cpu使用率曲线模拟的效果,今天来看看我是如何实现的吧!...
  • Green_shing
  • Green_shing
  • 2014年12月20日 18:15
  • 2189

实时操作系统任务调度

最近看了一些实时操作系统的源码,关于任务调度是实时操作系统的重要组成部分,但是何时发生调度,怎样才能发生调度却不是非常的清晰,书中一本而言所说的都是“如果有更高优先级任务就绪,就会发生调度”,这会让很...
  • liyaoyao_yy
  • liyaoyao_yy
  • 2014年11月18日 18:55
  • 2329

操作系统复习笔记 06 CPU Scheduling CPU调度

CPU的三级调度: 1.高级调度(Long-term):作业调度,从外存进内存 2.低级调度(Short-term):进程调度,分配处理机 3.中级调度(Medium-term):对换 通过多...
  • weixin_37517391
  • weixin_37517391
  • 2017年12月25日 12:12
  • 61

软件工程之— 项目开发文档(可行性研究报告的编写)

 可行性研究报告的编写1. 引言1.1 编写目的[编写本可行性研究报告的目的,指出预期的读者。]1.2 背景a.[所建议开发的软件系统的名称;]b.[本项目的任务提出者、开发者、用户及实现该软件的计算...
  • CONLONG
  • CONLONG
  • 2008年08月07日 16:55
  • 752

RTX:keil中使用RTX实时操作系统方法及配置

在新工程中使用RTX内核及RTX内核的配置 【RTX内核在新工程中使用】 1. 在keil开发环境搭建好的情况下,设置在工程中使用RTX内核,选择 Project —> Options for T...
  • sinat_36184075
  • sinat_36184075
  • 2017年04月22日 16:20
  • 567

发动机太热 请不要用冷水降温

   对于发动机的保养,上海陪驾已经讲过很多了。发动机最重要的是保持其性能,虽然发动机是耐热的,但是夏季高温特别多,发动机的性能仍然会受到高温的影响,这时上海陪驾建议新手开车朋友们要保持发动机温...
  • shunfeng365
  • shunfeng365
  • 2014年07月29日 09:54
  • 765

这两天,全国普遍降温。

走在路上,风吹得,快成冰棍了。好寒啊。穿上了毛衣,觉得动起来不太利索了。抓紧时间,还能洗个衣服。只有两个人。各进各屋。各忙各的。...
  • longaway
  • longaway
  • 2005年12月05日 20:58
  • 817

图解实时操作系统和非实时操作系统的区别

对于实时操作系统(RTOS)和非实时操作系统,你能分别列举出来多少? 实时操作系统:uCOS/VxWorks/RTLinux 非实时操作系统:Linux/Windows/OSX 我也只能列举出来...
  • u013752202
  • u013752202
  • 2016年12月14日 23:19
  • 3113

什么叫实时操作系统,什么叫非实时操作系统,两者有什么区别?

嵌入式实时系统中采用的操作系统我们称为嵌入式实时操作系统,它既是嵌入式操作系统,又是实时操作系统。作为一种嵌入式操作系统,它具有嵌入式软件共有的 可裁剪、低资源占用、低功耗等特点;而作为一种实时操作...
  • deyili
  • deyili
  • 2011年05月15日 14:46
  • 10474

如何选择可靠的实时操作系统

转发一篇关于 RTOS 的可靠性和认证问题的文章。大型的 RTOS 比较重视这个问题,比如 VxWorks、 Greenhill , 而小型的 RTOS 讨论的比较少,随着汽车、医疗电子等关键应用越来...
  • luckydarcy
  • luckydarcy
  • 2017年03月06日 17:25
  • 825
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:实时操作系统CPU软件降温研究报告
举报原因:
原因补充:

(最多只允许输入30个字)