蛋蛋读UFS之四:UPIU数据包格式

UPIU是命令、数据和状态信息传输的载体,是UFS协议栈的灵魂。UPIU是有固定格式的数据包,我们分析数据包格式,有助于我们更深的理解UPIU以及整个UFS协议。这一章我们看看UPIU数据包的格式。
每个UPIU都有一个12字节的Header,再加上跟每个UPIU相关的域。一个UPIU(包括Header)最小为32字节,最大为65600字节。

我们看通用的Header,具体如下:

我们看看其中的一些域。

1.  Transaction Type:就是指定该UPIU是前面12个UPIU中的哪一个,具体如下:

2. Flags:只对命令和其响应的UPIU有用,指定命令的属性。[……]

阅读全文

每个孩子都值得一个彩色童年!

查看源图像

2018年,在“六一”儿童节来临之际,我们以modder&SSDFans的名义将modder在SSDFans微信公众号发表的著作《固态硬盘选购.维修及数据恢复专题》总计3200元稿酬捐赠给由中国扶贫基金会发起的爱心包裹项目(交易记录见附图)。

每个孩子都值得一个彩色童年!

image

蛋蛋读UFS之三:UFS数据包UPIU

UFS中流淌的数据包叫做UPIU(UFS Protocol Information Unit,UFS协议信息单元),它是固定格式的数据结构,用以传输应用层发来的命令或者请求,以及跟它们相关的数据或者状态信息。它就是SATA中的FIS,PCIe中的TLP。
我们看看UFS中命令或请求是怎么执行的。

UFS采用“客户-服务器”或者说主从的命令架构,UFS主机(Client,命令发起者,Initiator,他们都是一个意思)发送命令或者请求(Request)给UFS设备(服务器,Target),然后UFS设备执行命令并返回命令状态(Response)。
一个命令或者请求的执行包含下面几个阶段[……]

阅读全文

蛋蛋读UFS之二:UFS协议栈

任何一种接口或者协议,都是由一个完整的协议栈组成的。UFS也不例外。

UFS定义了一个完整的协议栈。从上到下,依次为应用层、传输层、数据链路层和物理层。UFS使用MIPI(Mobile Industry Processor Interface ,移动产业处理器接口)联盟的UniPro作为数据链路层和MIPI的M-PHY作为物理层,两者合起来称之为互连层(UFS InterConnect Layer)。与之相比,PCIe接口只定义了下三层(如下图),没有应用层。只有加上上层NVMe,才构成一个完整的SSD通讯协议。

目前UFS没有定义自己的命令(没有UFS Native Comm[……]

阅读全文

蛋蛋读UFS之一:UFS简介

我们知道,我们电脑由三大件组成:CPU,内存和硬盘。CPU用以计算和控制,内存用以临时存储程序运行时所需的数据(掉电数据丢失),而硬盘用以长久保存数据(掉电数据不丢失)。

我们每天使用的手机,其本质是一个移动的小型计算机,同样由三大件组成:CPU,内存和存储设备。其中的存储设备相当于电脑的硬盘,用以长久保存手机上的数据,比如视频、照片、音乐、系统等数据。

电脑的硬盘有机械硬盘(HDD)和固态硬盘(SSD),前者是机械存储设备,存储介质是磁盘;而后者是电子存储设备,存储介质是闪存。我们不可能在小小的手机中塞入一个机械设备,所以手机上的存储设备只能是电子存储设备,存储介质也都是闪存。

现在是[……]

阅读全文