社区导航

 

搜索
查看: 3479|回复: 12

关于系统深度睡眠(Deep Sleep)的理解?

[复制链接]

107

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2010-6-13 11:55 | 显示全部楼层 |阅读模式
大多微处理器芯片都提供深度睡眠的功能,可以减少功耗。比如S3C2440。
那么在什么时候才应该进入深度睡眠呢?
我们知道,一般的操作系统提供了TIMER功能。
这个功能需要使用硬件定时器来进行计数,比如周期为5ms。
那么如果当前有TASK在使用Timer,是否可以进入深度睡眠?
比较困扰我的一个问题,大家都是怎样理解和设计这个feature的呢?

76

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2010-6-13 12:00 | 显示全部楼层
呵呵 这个不太清楚,学习下!

回复

使用道具 举报

118

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2010-6-13 13:04 | 显示全部楼层
学习...........

回复

使用道具 举报

134

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2010-6-13 14:23 | 显示全部楼层
常见的有sleep、hibernate,不知道你指的深度睡眠是否指hibernate,在使用过程中,hibernate确实能达到省电的要求。
在进入hibernate后,除了电源管理芯片、内存进入自刷新模式外,其他包括CPU核心和外设都断电,通过重新上电来唤醒。
当然,也有深度睡眠是指把内存的内容保存在硬盘后都断电,不过这种还没做过。

回复

使用道具 举报

105

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2010-6-13 14:38 | 显示全部楼层
引用 3 楼 zjyu88 的回复:

常见的有sleep、hibernate,不知道你指的深度睡眠是否指hibernate,在使用过程中,hibernate确实能达到省电的要求。
在进入hibernate后,除了电源管理芯片、内存进入自刷新模式外,其他包括CPU核心和外设都断电,通过重新上电来唤醒。
当然,也有深度睡眠是指把内存的内容保存在硬盘后都断电,不过这种还没做过。


hibernate, 对,就是这个东东
一般在什么情况下进入?都需要考虑哪些方面?hibernate以后,系统的Tick就完全停止了,唤醒以后应该如何处理?有TASK在使用Timer的情况下,是否还会hibernate呢?

回复

使用道具 举报

106

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2010-6-13 17:07 | 显示全部楼层
不懂,up

回复

使用道具 举报

104

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2010-6-13 19:22 | 显示全部楼层
学习~~~~~

回复

使用道具 举报

99

TA的帖子

0

TA的资源

禁止访问

发表于 2010-6-13 19:32 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

回复

使用道具 举报

102

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2010-6-13 20:40 | 显示全部楼层
引用 7 楼 liukun321 的回复:
从hibernate醒过来后,进入了一个叫解冻模式的过渡模式(不能从hibernate直接回到普通模式),此时(在这个模式下)需要重新配置系统时钟设置新的处理器状态。然后就可以进入正常模式了。过程大体就这样,另外有TASK在使用Timer的情况下,应该不会hibernate。 本人菜鸟仅供参考


这部分功能很多做产品的都会遇到,就是所谓的电源管理模块。就算你在使用Timer也是可以休眠的,这个由你的控制函数来决定的。

回复

使用道具 举报

100

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2010-6-22 11:11 | 显示全部楼层
引用 8 楼 yihua0001 的回复:

引用 7 楼 liukun321 的回复:
从hibernate醒过来后,进入了一个叫解冻模式的过渡模式(不能从hibernate直接回到普通模式),此时(在这个模式下)需要重新配置系统时钟设置新的处理器状态。然后就可以进入正常模式了。过程大体就这样,另外有TASK在使用Timer的情况下,应该不会hibernate。 本人菜鸟仅供参考


这部分功能很多做产品的都会遇到,就是所谓的电源……


在有TASK使用TIMER时也可以进入休眠,那么TIMER如何触发?

回复

使用道具 举报

115

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2010-6-23 11:25 | 显示全部楼层
有的處理器可以設置 wake-up resource, 如 usb 裝置插入或計時器喚醒(我們稱之為 alarm), 所以你 task 有使用 timer 時一樣可以進入 suspend(D3 mode, 也就是你所謂的 deep sleep) 狀態, 然後透過 alarm 來 wake-up.

回复

使用道具 举报

93

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2010-6-23 18:24 | 显示全部楼层
这栋楼很高啊!凑凑热闹。

不同的系统设计方案不一样。

如果系统需要Timer来唤醒系统,那么休眠的时候保持Timer模块继续运行,关闭其他模块来实现节电就好了。

如果系统不需要Timer来唤醒系统,通过外部触发来Resume系统,那么系统在Hibernate时,停用该Timer就好了。在系统Resume之后,该Timer可以被系统Active继续计时。

回复

使用道具 举报

93

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2010-6-27 11:39 | 显示全部楼层
深度睡眠应该是除了MCU和DDR,其他的设备包括CPU都要断电的,恢复的时候把睡眠前的数据再恢复回去。这个部分属于Power management了。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

关闭

站长推荐上一条 /6 下一条

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2019-10-17 08:06 , Processed in 0.408704 second(s), 16 queries , Gzip On, MemCache On.

快速回复 返回顶部 返回列表