55

蛋蛋读UFS之十:UFS电源管理

 5 years ago
source link: http://www.10tiao.com/html/609/201807/2652241313/1.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

FS是手机存储设备,因此对功耗要求很高。我们来看看UFS的电源管理。



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


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



我们知道,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状态,没有要求说你休眠了我也得跟着休眠。


一个优秀的员工,不是老板push一下,然后才往前走一步,而是能主动的去承担一些任务。一个好的UFS设备,不是等着主机发功耗切换命令来进入省电模式,而是自己能主动做一些事情来省电。


下面就是一个优秀UFS设备需要具备的素质。


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


老板没有叫你去干活,你主动的去把活干了,这样的员工哪个老板不喜欢?



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

懂闪存,得未来

闪存技术革命,奠定未来10年存储大势


四年磨一剑,授之以渔,而不是授之以鱼

一本销量和好评快速增长的畅销书

请长按下面指纹购买纸书

京东、淘宝、亚马逊、Kindle也同时在售《深入浅出SSD》

www.ssdfans.com

闪存、AI、区块链、物联网

 

高端微信群介绍

闪存群

覆盖5000多位全球华人闪存、存储芯片精英

存储群

全闪存、软件定义存储SDS、超融合

AI芯片群

讨论人工智能和GPU、FPGA、CPU异构计算

高管群 AI、IOT、存储公司高管和创始人、投资人

物联网芯片群

联网、5G技术与产业讨论

悬赏问答群 专家帮你回答棘手问题,红包打赏

ASIC-FPGA群

芯片和FPGA硬件技术讨论群

存储芯片群

DRAM、NAND、3D XPoint等各类存储介质讨论

固件测试群

固件和测试技术讨论

渠道群

存储产品报价、行情、渠道分享

招聘群

AI、IOT、存储各大公司HR、猎头、求职者

区块链群

IPFS、EOS、矿机等区块链技术与产业讨论

各地分群

江浙沪、北京、深圳、成都、武汉、西安、台湾、硅谷等


想加入这些群,长按或扫描下面二维码加nanoarchplus为微信好友,介绍你的 姓名-单位-职务 注明群名 ,拉你进群。




About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK