问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

UFS电源管理详解:从供电电压到功耗模式

创作时间:
作者:
@小白创作中心

UFS电源管理详解:从供电电压到功耗模式

引用
CSDN
1.
https://blog.csdn.net/don_chiang709/article/details/89314552

UFS(Universal Flash Storage)作为手机存储设备,其功耗管理直接关系到手机的整体性能和续航能力。本文将深入探讨UFS的电源管理机制,包括供电电压、M-PHY的工作状态以及UFS的功耗模式,帮助读者理解UFS如何在保证性能的同时实现节能。

UFS设备主要包括三部分:前端UFS接口(M-PHY)、UFS控制器和闪存介质(图中的Memory模块)。其供电电压分为三个:VCC、VCCQ和VCCQ2。其中,VCC 给 闪存介质供电,VCCQ 一般给闪存输入输出接口 和 UFS控制器供电,VCCQ2一般给M-PHY或其它一些低电压模块供电。

UFS2.1中,三者电压值为:

  • VCC:1.8V
  • VCCQ:1.8V
  • VCCQ2:0.9V

UFS协议采用MIPI的M-PHY作为物理层和UniPro作为其数据链路层。M-PHY有高速模式(High Speed Mode, HS-MODE)和低速模式(Low Speed Mode, LS-MODE)。其中,高速模式下,M-PHY有两种状态:STALL 和 HS-BURST。低速模式下,M-PHY有三种状态:LINE-CFG,SLEEP 和 PWM-BURST。当链路上没有数据传输时,M-PHY会自动切换到STALL或者SLEEP状态下,这两种状态为省电状态。

除此之外,M-PHY还有一种更加省电的状态,那就是HIBERN8(Hibernate,休眠状态),这种状态下,M-PHY极为省电。UFS主机和UFS设备不可能一直交互数据,总有闲下来的时候。当UFS主机没有读写UFS设备,它会让彼此链路进入休眠状态,即HIBERN8。那UFS主机如何通知M-PHY切换到休眠状态呢?

主机设备管理器可以通过原语(Primitive)直接与UFS互联层(UIC,即MIPI的UniPro和M-PHY)通信。除了上图中所示的reset原语,UFS还包括让UIC进入和退出休眠的原语:DME_HIBERNATE_ENTER和DME_HIBERNATE_EXIT。

这是UFS主机和设备之间链路的省电模式,对UFS设备来说,链路只是整个UFS设备的一部分。一个UFS设备是否省电,除了看其链路,还需要考虑UFS控制器、存储介质等是否省电,即看整个UFS设备是否有好的电源管理。

UFS定义了4种基本功耗模式:Active,Idle,Power Down和Sleep(简称AIDS),外加3个过渡功耗模式:Pre-Active, Pre-Sleep和Pre-PowerDown,一共是7种功耗模式。非常4+3!

  • Active模式:UFS设备在执行命令或者做后台任务(Background Operation)时处于这种状态;
  • Idle模式:UFS设备空闲时,即既没有来自UFS主机的命令,自身也没有后台任务需要处理,设备就处于该状态;
  • Sleep模式:闲得瞌睡了。睡眠模式下,VCC电源可能被切断(取决UFS设备设计)。VCC一般给闪存供电,即切断闪存供电。
  • Power Down模式:掉电模式下,所有电源供电VCC, VCCQ和VCCQ2都可能被掐断(取决UFS设备设计),该模式是最省电的功耗模式了。

这些模式之间的转换如下图:

触发模式之间转换的很多是SSU,那么什么是SSU? SSU是Start Stop Unit的缩写,它是UFS协议中的一个基本命令,主机用它来切换UFS设备的功耗模式。

具体命令可以参看UFS spec。注意,UFS设备的这些功耗状态,和前面说的M-PHY接口的STALL,SLEEP或者HIBERN8状态是独立的,两者没有必然联系。比如,当前M-PHY处于HIBERN8状态,UFS设备可以处于以上状态中的任何一种,比如UFS设备可以是处于Active状态,没有要求说你休眠了我也得跟着休眠。

一个优秀的UFS设备,不是等着主机发功耗切换命令来进入省电模式,而是自己能主动做一些事情来省电。比如,UFS刚上电时,UFS进入Active状态,一段时间如果没有来自主机的命令,自己内部也没有后台任务要处理,UFS设备将进入Idle状态。Idle意味着无事可做,这时候主机也没有发任何SSU命令要求UFS设备进入指定的状态,好的UFS设备,这个时候就要想想怎么去省电。举例来说,如果当前M-PHY处于HIBERN8状态,说明主机目前不会访问UFS设备,因此,UFS设备可以做一些节能设计:比如把当前UFS设备的软硬件上下文保存到闪存,然后切断所有电源以达到省电目的。待M-PHY接口退出HIBERN8状态,UFS设备上电,然后把软硬件上下文加载运行。

省电和用户体验(命令响应快慢)其实是个矛盾。因为如果UFS设备休眠了,它就不能及时的响应主机的命令,因为它需要先退出休眠(比如需要把休眠之前保存的上下文重新加载,这往往比较花时间),然后再响应主机命令。睡觉是个技术活,在追求最大节能的同时,还要兼顾用户体验。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号