UFS之大结局

原创内容,转载请注明:  [http://www.ssdfans.com]  谢谢!

作者:望月闲人

 
 

不说再见的大结局,致飞鱼。

 

想要和望月闲人还有全世界的大牛讨论SSD及存储相关技术?加nanoarch为微信好友,拉你进ssdfans微信群  

 


今天是25日飞鱼秀的最后一期,在车里听到11点才下车算是对飞鱼的告别。从老大半岁的时候开始到今天老二半岁听了5年,喜欢小飞才华横溢的幽默和喻舟嬉笑怒骂的性情。就像歌里唱的为了拥抱那一个人,笑着哭着拥抱了整个班,这个喜欢小飞而坚持做了这么多年节目的喻舟最后泣不成声的倒计时还有一如既往的笑声给飞鱼画了个最圆满的句号,最完美的人生也不过就是破涕为笑的过程罢了。

 

正题结束了,歌也听完了O(∩_∩)O,下面就是纯技术贴了,大家可以散了,哈哈

 

这篇文章也是闲人羊年UFS大结局,主要把前三篇文章没有讲到的重要概念总结一下,作为我这次学习阶段的收官,并向飞鱼致敬。开始了

 

首先要看一下UFS的接口信号M-PHY接口可以支持多条Lane,我们只拿下图一条Lane的情况举例。

RESET_n:复位信号

REF_CLK: PLL锁相环参考时钟

DIN_t/c:下行Lane差分信道

DOUT_t/c:上行Lane差分信道

 


如果你有仔细看会发现为什么上面的图里会有个小飞鱼,它其实就是下面要介绍的重要概念LU

 

Logical Unit(LU):一个UFS设备中会包含一个或多个Logical Unit(LU)用来存放boot代码、系统文件或者是用户数据等,按照UFS的标准最大可以支持到8LU。每个LU都有它独立的地址空间,并且每个LU都有task manager来各自处理SCSI命令。而且我们给每个LU都起了名字Logical Unit Number (LUN),分别是老大LU0,老二LU1,老三LU2等等。

 

如果我们再往LU的里面看,就会发现每个LU是由Memory AreaDevice ServiceTask ManagerTask Set组成。除了memory area是用来存数据的以外,

Task Set一个或者几个SCSI命令,它们组成一个队列就叫TaskSet

Task Manager来控制命令的执行的顺序起到任务管理的作用;

Device Service是真正解析、执行SCSI命令的模块;

 


 

LU中有一些是执行特殊任务的,比如用来作Boot,或者作RPMB保护的,我们叫它们Well-Known Logical Unit (WLU),并用W-LUN来给它们命名。每个UFS可以配置一个或两个LU用来作boot,给RPMB最多一个。我们需要通过写Configuration Descriptor来配置LU,并且必须执行一次上下电操作才会是使配置生效。需要注意的是,每个LU只能作一次配置,配好后就不能修改。下面是一个典型的UFS配置方案,具有两个用作BootLU,一个RPMB,三个用来作存储数据的普通LU

 


 

UFS Power Mode之前文章提到过为了省电,UFS有多种省电模式。那我们结合下图看看具体有哪些?一共是7power mode,其中4basic power modeActiveIdlesleepPower Down,另外还有3种过渡模式:Pre-ActivePre-sleepPre-PowerDown。过渡模式作为基本模式的临时状态没必要在详细解释,具体说说4种基本Power Mode

Active ModeUFS在执行命令或者作background操作的时候就工作在这种模式下。

Idle ModeUFS空闲下来进入到这种模式,一旦收到命令就会立刻跳转到Active mode

Sleep Mode睡眠模式下可以把VCC1.8V(给memory array供电的电源)关闭,如果想切换到ActivePowerDown模式首先要给VCC上电,然后才能发命令作切换。

Power Down Mode最省电的一种模式,we can remove every power supply(听着就过瘾),但是(别忘了还有但是),所有buffercache中的数据都会丢掉。


 

关于UFS安全的Feature

Secure Mode这种方法可以使数据彻底被擦除,并且不能通过反向工程恢复。具体做法是在作完正常擦除之后,还要在被擦除的区域写随机或者非随机的pattern,起到了把原来数据覆盖的作用。

Device Data ProtectionLU层面的一种保护机制。它有两种:1. Permanent  Write Protection,一旦配置就不能再改回去。2.Power On Write Protection,经过一个上下电周期或者硬件复位之后,保护效果就会失效。

RPMBReplay Protect Memory BlockeMMCRPMB区的工作原理是一样的,都是要通过鉴权的方式才可以访问,该区域的大小是以128KB的倍数来计算的。

Malware Protection防错的一种机制,对于关键的数据如boot代码,总线配置或者设备其他的一些重要参数,我们可以用这种机制把它们保护起来,拒绝被修改。

 

Command Queue

什么是Command Queue?来看下下面这个搬箱子的例子,前两种方式邮寄人必须要顾及接收人的感受,接收人如果没做完工作,发件人是不可以再发箱子的。Command Queue这种方式邮寄人只管往传送带上放箱子,不用顾及接收人是不是完成了工作。即使接收人还在处理上一个箱子,发送人还是可以发其他的箱子。而且别忘了,传送带是双向的,全双工工作方式。对我们的UFS就是这么牛,不需要host管我是不是已经完成了上一个任务,你只要给我发命令就好了。


其实Command Queue并不是什么新鲜事物,早在eMMC5.1已经就有这个feature了。但是UFSCommand Queue要比eMMC的更给力些,强在命令可并发执行,乱序操作而且是全双工的(相比eMMC5.1是半双工的)。

 

下图是个很好的例子,左图的eMMC和右图的UFS都是接到host发送的4条相同的命令,在UFS多任务操作的支持下,完成所有的命令只花费了相当于eMMC一半的时间。

 


具体在操作层面上的不同闲人就不作具体阐述了,大家看下下图就明白了。

 


 

至此,UFS的学习总结就告一段落了,闲人要好好陪家人过年并开始新topic的学习了,期待节后再跟大家分享学习成果,我们不说再见……

 

不想错过望月闲人的后续精彩文章?长按或扫描下面二维码关注ssdfans就可以了!

 


 

 

公司招聘:

深圳大普微电子招聘SSD芯片设计,固件开发,机器学习相关人才!

上海飞斯招聘: 存储开发工程师RAIDUSBSATAAHCINVMEFTL、文件系统的开发及调试

记忆科技上海UFS FW内推机会UFS FW开发

ssdfans帮你内推

ssdfans帮你赚推荐费

分类目录 SSD, 技术文章.
扫一扫二维码或者微信搜索公众号ssdfans关注(添加朋友->点最下面的公众号->搜索ssdfans),可以经常看到SSD技术和产业的文章(SSD Fans只推送干货)。
ssdfans微信群介绍
技术讨论群 覆盖2000多位中国和世界华人圈SSD以及存储技术精英
固件、软件、测试群 固件、软件和测试技术讨论
异构计算群 讨论人工智能和GPU、FPGA、CPU异构计算
ASIC-FPGA群 芯片和FPGA硬件技术讨论群
闪存器件群 NAND、3D XPoint等固态存储介质技术讨论
企业级 企业级SSD、企业级存储
销售群 全国SSD供应商都在这里,砍砍价,会比某东便宜20%
工作求职群 存储行业换工作,发招聘,要关注各大公司招聘信息,赶快来
高管群 各大SSD相关存储公司高管和创始人、投资人

想加入这些群,请微信扫描下面二维码,或搜索nanoarchplus,加阿呆为微信好友,介绍你的昵称-单位-职务,注明群名,拉你进群。SSD业界需要什么帮助,也可以找阿呆聊。