UFS 之M-PHY,UniPro

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

作者:望月闲人

 
 

霓凰郡主是琅琊榜唯一上榜前十的女高手,那谁是UFS里面的郡主呢?

 

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


 

十载边关浸风霜,

寒光铁衣诉年华,

豪阔宏量非关爱,

霁月光风是柔肠。

 

霓凰郡主琅琊榜唯一上榜前十的女高手,佑护一方百姓的藩王将帅,大梁皇室的高贵郡主,除去这些光环她还是林殊才貌双全、柔情似水的未婚妻。可谓是琅琊榜里德智体美劳发展的最全面的首席大飒蜜(话说这样的人物在琅琊榜里的戏份确实太单薄了些?),那么在UFS里面也有这样的多面手,M-PHYUniPro。看看下面这张图就知道为什么说他是多面手了。

 


 

DSI Display Serial Interface)支持屏,CSICamera Serial Interface)支持CameraLLILow  Latency Interface)负责BaseBandAP通信(个人理解LLI应该是APBB交换PSCS域的数据的模块,有知道的还请@闲人一下),还有我们要介绍的UFS,都是靠M-PHYUniPro来支持的。在介绍M-PHYUniPro之前,我们还需要先了解下面这个UFSTop Level Architecture

 


 

这个Top Level Architecture主要分两大部分,最上面Application LayerUTP组成符合SCSI规范的部分,下面的M-PHYUniPro组成下面遵守MIPI标准的部分。今天我们就主要介绍MIPI这部分—UIC(UFS InterConnect Layer)。(前方枯燥高能预警,讲协议的东西实在没有什么好办法L,以前给别人培训SD卡协议的时候,下面也是睡倒一片,要不也不会刚开始请出琅琊榜首席大飒蜜霓凰郡主)

 

L1M-PHY3.0专为移动设备开发的一种串行接口技术,时钟频率能够达到5.8Gbps(高performance),每个Upstream Lane或者Downstream Lane只需要两根差分信号线(pin脚少,方便PCB布线),并且具有多种省电模式。从下面的图看,M-PHY是全双工的,并且不要求上行Lane和下行Lane成对出现,下图就是两个下行Lane配一个上行Lane的例子。但是针对目前的UFS,上行下行Lane还都是成对出现的。

 


 

UniPro v1.6:也是针对mobile设备开发的,广泛用于移动设备AP,协处理器和modem之前的通信协议,我通常把这层看作是对硬件接口的抽象,管理和负责通信的的软件层来帮助自己理解。

 


 

L1.5 PHY Adapter:
物理适配层,用于检测双向Lane通路的个数,并提供软件支持。允许访问对端L1.5层的控制参数和状态,并可以通过原子操作改变对端Power Mode。下图显示了L1.5层的数据以Symbol为单位的,每个symbol17bits,包含有两个Byte和一个control bit (bit16)Control bit1的时候,表明后面跟着的两个bytes是控制命令;如果是0,说明后面的两个bytesdata payload

 


 

L2 Data Link: 数据链路层,主要保证数据通信过程中的可靠性。其中采用ECC保证接收数据的准确性,接收端也要留有足够的buffer来缓存接收到的数据。一旦接收失败,发送端必须重新发送一次。L2层的数据单位是Frame,在原有L1层的基础上,把独立的symbol打包。每个Frame最多可以打包144symbol,并在Frame的头尾处各添加上HeaderTrailer之后,附上16bits ECC来侦查纠错。

 


 

这层有个比较重要的概念是TCTraffic Class),UFS支持两种优先级的Data Frame TC0TC1TC1的优先级高于TC0,绝大多数的数据都是在TC0这个级别传递的,紧急的数据通过TC1来传递。TC1可以中断、抢占正在发送的TC0的数据发送。

 

L3 Network: 网络层,负责数据route到正确的目标设备,比如下图的AP#3这个设备,它不仅能与设备125通信,那么通过UniPro L3也允许其与设备46进行通信。

 



L3
的数据的单位是package,在层2Frame的基础上增加了7bitsshorter-header,用来标识数据route的目标地址。

 


 

L4 Transport传输层。由于基本通信服务已经在底层处理的差不多了,所以传输层是相对比较简单的一层,它提供对多device和多client的支持。L4层的数据的单位是segment,在package的基础上增加了5bit“Cport” identifier,我们在这里可以把它看做是UFSsub-address

 



DME
Device Management EntityUniPro的每层都留有SAP接口(Service Access Point),通过SAP DME可以访问每个layer的控制和状态参数,管理他们的power模式,并且可以访问、控制对端设备的UniPro模块。

 

UniPro的上面就是UTPSCSI命令集,由于涉及的SCSI命令是很大一块需要单独来讲,所以这里只简单两笔。正如最开始提到的,UTPSCSI是属于SCSI这部分,在JEDEC的标准里能找到它们的具体说明。

 

UTPUFS Transport Protocol):这层软件主要有两个目的,一是把UniProsegment打包成UFS直接可以识别的命令格式;二是通过这层可以让UFS自己来掌握发送数据的节奏、控制自身的状态等,这样既可以免去host端持续的查询UFS的状态所带来的系统消耗,也是因为只有UFS本身最了解自己的内部状态,能够选择以最佳的方式在最佳时间把数据传递出去。

 

UFS Application Command Layer:这层是UFS命令集,分为UFS的独有内建命令集和SCSISmall Computer System Interface)的命令集

 


SCSI命令分为SBCSPC
分别是SCSI Block CommandsSCSI Primary Command

 

到此,UFS之霓凰郡主篇就到这儿了,后续还会就UFS的一些重要的概念和如何初始化UFS进行讲解,大家辛苦了O(∩_∩)O

 


  
 

 

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

 


 

 

公司招聘:

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

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

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

ssdfans帮你内推

ssdfans帮你赚推荐费

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

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