Jesd UFS21标准学习Word文档格式.docx
- 文档编号:22722623
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:131
- 大小:5.16MB
Jesd UFS21标准学习Word文档格式.docx
《Jesd UFS21标准学习Word文档格式.docx》由会员分享,可在线阅读,更多相关《Jesd UFS21标准学习Word文档格式.docx(131页珍藏版)》请在冰豆网上搜索。
SCSIBlockCommand
SPC
SCSIPrimaryCommand
SDU
ServiceDataUnit
PRMB
ReplayProtectedMemoryBlock
LBA
LogicalBlockAddress
TPRZ
Thinprovisioningreadzeros
MDV
ManufactureDefaultValue
2UFS设备特点
UFS是一种大容量,高性能的存储设备,具有如下的特点
2.1通用特点
1.高性能,必须支持Gear1和Gear2。
Gear3可选。
2.应用范围MP3,MobilePhone,PMP(便携式媒体播放器),UPMC等
3.设备类型:
外接卡,嵌入式等
4.UFS层包括:
UCS(UFScommandsetLayer)基于SBC和SPC的SCSI命令
UTP(UFSTranportLayer)JEDEC定义的协议
UIC(UFSIntercollectLayer)数据链路层的MIPI协议和物理层的
MIPI-M-PHY协议
2.2接口特点
1.三种电压:
VCCQ1.2V
VCCQ21.8V
VCC1.8/3.3v
2.MIPI-M-PHY8b/10b的线路编解码
3.低的误码率BER(BitErrorRate)10-10
4.两种信号模式:
低速模式(PWM信号模式,脉冲调制解调)和高速burst模式
2.3功能特点
支持和eMMC相似的功能
Boot操作模式
LUN可配置
RPMB(RepayProtectedMemoryBlock)存放访问授权的数据
写保护
HW复位
任务管理操作
电源管理操作
3UFS结构概述
3.1顶层结构
1.UAP应用层包括了UFS命令组(UCS),任务管理(TaskManager)和设备管理(deviceManager)。
命令组是简化的SCSI命令包括读,写等;
任务管理包括队列控制,设备管理包括队列请求等。
2.DeviceManager设备管理有两方面的功能
1)设备级的操作比如电源管理,数据传输规则设置等
2)设备级配置,维护的是一套descriptors。
3.UTP层,用UPIU协议信息单元来传递UFSHOST和Device在UTP这一层的数据交换。
4.UIC是UFSHOST和Device之间的底层连接。
3.2UFS系统模型
UFS HOST的应用层通过UFS Driver 来通信,Driver控制着一组Register。
HOST和Device通过MIPI互联。
UFS Device包含了LUN(执行命令的最小单元),DeviceMananger,Descriptors。
3.3系统Boot
UFS设备上电后就会开始boot初始化,boot的代码存放在指定的LUN中,一个device可以包含多个bootLUN,但上电时只有一个BootLU工作。
通过Descriptor可以控制Boot的操作。
3.4UIC互联层省略
3.5UFS传输协议层UTP概述
UTP层完成在互联层传输的帧封装,UTP有两个明显的特点,第一提供灵活的帧结构来封装command,data,status。
第二当受到host的请求,Device能够根据自己内部的状态调整数据传输或状态的步调来完成host的请求,不需要host来询问或者预测。
用户服务器模型
UTP层使用的是Client-Server模型,client发起请求作为Initiatordevice,Sever相应请求作为TargetDevice。
请求被送到LU逻辑单元中处理。
所有的命令被封装进UPIU帧结构中,UPIU包含基本的头和其他域(根据不同UPIU类型而不同)。
每个命令都有相应的命令OPcode。
Task就是一系列的命令处理,Initiator发起任务会携带独一无二的tasktag任务标签。
UFSApplication应用层使用SCSI命令集来,其目的就是为了重用现有的使用SCSI的软件平台代码库。
4UFS电气特性
Vcc:
memory电压
VccQ:
memory内存控制器电压
VccQ2:
PHY接口电压
Vdd:
Vcc的旁路电容调整器
VDDQ:
VccQ的旁路电容调整器
VddQ2:
VccQ2的旁路电容调整器
Vss :
地
Rst_n:
硬件复位信号,低有效
Ref_clk:
参考时钟
Din:
下行数据流,写入操作
Dout:
上行数据流,读出操作
5复位,上电,掉电
5.1复位
●power-onreset上电复位,电压管脚掉电和上电引起。
●hardreset复位信号拉低在拉高
●EndpointResetfeature唤起复位
●LUNResetfeature,UFSHost发起LUNReset,唤起LUN的复位。
●HostUniporWarmReset,Host的Unipro复位间接引起UFSdevice的复位。
5.2UFS设备电源模式和LUN电源
为了适应不同的操作场景,UFS定义了以下几种电源模式:
1.ActivePoweron摸得激活电源模式
该模式下可以响应任何请求命令操作,用bActiveICCLevel属性可以选择功耗级别,上电后用户就可以设置bActiveICCLevel属性。
比如level0是性能最差,level15就是最高性能。
基本的设置参数是“06h”(normal)和“0ch”(高电源操作模式)。
可以通过bInitPowerModeparameter参数配置设备工作在哪种电源模式下。
2.IDLEPowerMode空闲电源模式
不执行任何命令或者后台操作,当收到任何命令时立刻退出IDLE模式
3.Pre-ActiveMode预激活模式
在准备好接收命令之前保持在预激活模式。
可以从预休眠,休眠,预关电和关电模式进入预激活模式。
在这个模式LUN处于准备状态中not_ready,只执行StartStopUnit命令和Requestsense命令。
4.SleepPowerMode休眠模式
从Pre-sleepmode进入的,Vcc电源不提供。
LU处于Notready状态,只完成两个命令:
StartStopUnit和Requestsense
5.Pre-SleepPowerMode预休眠模式
预休眠模式是从预激活模式进入的。
此时LU只完成两个命令:
StartStopUnit和Requestsense,和任务管理
6.PowerdownMode关电模式
所有电压都不提供,所有数据都丢失。
LU只完成两个命令:
StartStopUnit和Requestsense。
7.Pre-PowerDownMode预关电模式
预关电模式下如果收到StartStopCommand命令的PowerCondition域是1h,就会进入预激活模式。
当所有命令和管理活动完成自动进入关电模式。
StartStopUnit和Requestsense,和任务管理。
电源模式状态跳转如下:
a)当VCC电源供电或者hardreset或者endpointreset或者hostuniprowarmreset都会使设备进入Poweronmode
b)上电后就可以进入ActiveMode。
若Actvie模式下没有其他操作就进入IDLE。
c)当Active模式下收到SSU(StartStopUnit)命令的PC域(powercondition)=2h,设备就进入pre-sleep模式。
d)当在pre-sleep模式下收到SSC的PC域=1h,就进入预激活状态。
e)在pre-sleep模式下当所有操作和管理任务结束后自动进入休眠模式。
f)在Active模式下如果收到SSUPc=3h的命令,则进入预关电状态。
g)预关电模式可以自动进入关电模式
h)关电模式下如果收到ssupc=1h,就进入预激活模式。
下表总结了各种电源模式下可以支持的SCSI命令和UPIU交互
下表总结了在当前的电源模式下Well-KnowLU对SSU命令的响应
5.3电源管理命令SSU(StartStopUnit)
SSU命令里的PowerConditon域决定电源的工作模式,当发送给well-knownLU,该域才有效。
LU分为普通LU和well-KnownLU。
well-LU支持特定的命令。
当SSU命令发送给普通LU,那么PowerCondition域无效。
5.4电源模式控制
当前电源工作模式通过bCurrentPowerModeattribute属性获得,任何电源模式下都可以读这个属性。
通过配置device的描述符参数,可以定义设备的上电电源模式和theActiveICClevel
LUpowermode
LU可以工作在两种电源状态,一是激活电源一个停止电源。
上电后LU会进入激活电源状态。
通过控制SSU命令里Start位和PowerCondition位可以改变LU的电源状态。
6UFS互联层MIPI接口
MIPI(MobileIndustryProtocolInterface)是2003年由ARM,Nokia,TI等公司成立的一个联盟,旨在将手机内部众多接口比如摄像头,显示屏,射频基带等标准化,减小手机的设计复杂度,MIPI下有众多WorkGroup定义了一系列接口标准,比如显示接口DSI,摄像头接口CSI,麦克风/喇叭接口,存储系统,电源管理等。
每种接口都有自己的协议。
MIPI的物理层有D-PHY和M-PHY。
Unipro数据链路层,和UTP层通信。
7UTP(UniversalTranslationProtocol)通用传输层
7.1概述
UTP层使用的是Client-Server模型即请求和响应的方式。
Client就是InitiatorDevice,发起请求,请求要等收到Server的响应或者出错通知才会结束。
Server就是TargetDevice即接收处理命令,完成后会发送响应给Client。
Target是一个UFS设备。
每个Target都含有一个或多个LU,执行命令或者任务的最小单元。
对于UFS,所有的交互(命令/响应/数据)都被封装成UPIU协议信息单元,UPIU有许多类型。
1交互阶段
命令的交互包括命令阶段,数据阶段和状态阶段。
●命令阶段发送命令
●数据阶段就是读或者写数据
●状态阶段就是Targetdevice完成命令后发起一个response给Initiator,告诉它命令完成情况,succeed/failed。
UFS还包括Descriptor系统,Atrribute属性系统和Flags标记系统用于管理device的相关特征信息,比如接口模式,LUN数,工作速率等。
2数据定步
Data-OutUPIU是从Initiator到Target,由于targetdevice有存储大小的要求,当有大数据传输时,device就需要发送Ready-to-TransferUIPU给host表示已经准备好接收数据。
Data-inUPIU是从Target到Initiator,由于host可以决定数据的大小,就可以分配合理的存储资源。
所以不需要ReadytoTransferUPIU(RTT).
3Unipro
UFS使用MIPI接口(包括M-PHY和Unipro),那么UPIU会封装进满足Unipro协议的UniproServicedataUnit(T-SDU)中。
这个消息最大支持65600字节,最小32bytes。
7.2UPIU信息单元格式总述
基本帧头
12bytes
交互特征域
20字节
其他域(扩展头,data域,ECC等)
可变
UPIU帧包含一个固定12字节的帧头。
最小的UPIU是32字节包含基本帧头(basicheader)和交互特征域(TransactionspecificField)。
根据TransactionType的不同,UPIU的大小不同,但必须是4byte的整数倍,不足时需要补零。
7.2.1基本头结构(12bytes)
7.2.1.1TransactionType(8bit)
HD
headercrc
1:
头部包含crc校验;
0:
不包含crc。
该标准不支持,是0
DD
datacrc
数据包含crc校验;
type
UPIUtype
UPIU交互码
TransactionCode解释
NOP_OUT/NOP_IN
类似Ping功能,用于检查host和target连接。
Command/Response
Comman是host发起命令,Response是Target响应,携带命令完成的状态和其他信息
Data_out/Data_in
数据阶段里HOST发送Data_outUPIU信息给Target
Target发送Data_inUPIU给Host
TaskManagementRequest/
TaskMangementResonse
ReadytoTransfer(RTT)
Target发送Readytotransfer给Host,Host才能发写数据给Target
QueryRequest/
QueryResponse
Target
Queryrequest
Queryresponse
HOST
Host从Target读descriptor描述符信息的请求和响应
Reject
Host送来的UPIU信息有些域错误导致Target无法执行该UPIU时,Target就会送出Reject
7.2.1.2Flags域
不同类型的UPIU的Flag域不同,域里的值在后面具体的UPIU分类里有说明
7.2.1.3LUN域
一个target包含多个LU,Host请求的LUnumber。
7.2.1.4TaskFlag域
Host发起任务请求时就会产生一个TaskFlag域。
每个Task请求都有唯一的TaskFlag。
如果任务请求包含一系列的命令UPIU,那么他们的Taskflag域都是一样的。
下表我的理解是如果host的一个task需要执行下述命令(InitiatorUPIU),InitiatorUPIU的TaskFlag域都一样。
7.2.1.5InitiatorID和CommandSetType
InitiatorID
【7:
4】
UFS支持最多16个Initiatordevice。
如果只有一个Initiator,该域就是0.该域是Initiator产生。
CommandSetType
【3:
0】
Jedec220c不支持Ufs特定的命令组,大部分时候都是0h
7.2.1.6QueryFunction
这个域只要用在支持询问功能QueryRequestUPIU和QueryResponseUPIU,和任务管理功能的TaskManagementRequestUPIU中。
7.2.1.7
Response
这个域用在Target响应Host的UPIU中,表示请求的完成情况。
从Host发出的CommandUPIU该域无效用默认值。
7.2.1.8status
对应CommandSettype,如果是SCSI命令组,那么这个域包含的是SCSI的状态(ThisfieldcontainstheSCSIstatus这里不懂),如果是其他命令组就是相应的状态。
7.2.1.9TotalEHSLength(ExtraHeaderSegment)
这个域是扩展头的长度,是4字节的整数倍。
最多支持到1024字节。
当前Jedec220c标准不支持扩展头,因此该域是0。
7.2.1.10DeviceInformation
发送ResponseUPIU时标记Targetdevice的设备级信息
7.2.1.11DataSegmentLength
标记的是UPIU里数据部分(datasegment)的长度,这个长度需要是4byte的整数倍,如果数据长度不足4字节,尾部补0.
以上就是BasicHeader的说明
7.2.2其他域
7.2.2.1TransactionSpecificFields
有一些UPIU的交互码需要用到这个域,从12字节到32字节,总共20bytes长。
7.2.2.2datasegment
扩展头部本标准不涉及。
数据部分传递数据,是4字节的整数倍长度。
以上就是UPIU信息单元的基本介绍.
7.3UPIU分类说明
7.3.1CommandUPIU
7.3.2
●TransactionType:
xx000001b
●FLags
R
R=1,且W=0,表示要从Targetdevice读数据到Initiatordevice,若两个bit都是0,那么表示没有数据需要传输,相应的ExpectedDataTransferLength域就忽略。
W
R=0,W=1表示要从Initiator写入数据到Target。
ATTR
SAM定义的任务属性
CP
commandpriority,1个bit。
对于标记了SimpleTaskAttribute的命令,通过CP定义其在任务组里执行顺序的优先级。
1highpriority,0nopriority无优先级。
●datasegmentlength在命令UPIU中填0h
●Expecteddatatransferlength
这个域指示的是Initiator和Target之间期望交互的数据长度。
比如写数据,此时Flag.w必须是1,该域表示Initiator需要发送给Target的数据长度。
当读数据,此时Flag.r必须是1,该域就表示Initiator需要从Target读回的数据长度。
读数据时,Initiator必须分配足够的存储空间来存放这个域指定长度的数据
写数据时,为了保证Target有足够的缓存存放期望的数据,Target会发送ReadytoTransferUPIU来告诉Initiator,他准备好接收数据。
在收到ReadytoTransferUPIU前,Initiator不会发送Data-outUPIU。
当CommandUPIU编码SCSIWIRTE或SCSIREAD,那么这个域就是theLogicalBlockSize大小(bLogicalBlockSize)。
●CDB域CommandDescriptorBlock16bytes
7.3.3ResponseUPIU
7.3.4
Transactiontype
xx100001b
Flag
8bit的flag域
bit[6]O表示数据溢出,即Targe传输的数据超过了Initiator请求的数据
bit[5]U表示数据不足,即Target传输的数据少于Initiator请求的数据
bit[4]D表示Initiator送出的Data-OutUPIU和Target的Rtt期望的数据参数不匹配错误
response
8bit传递命令执行的情况成功或是失败
Status
commandset命令集的特定状态,比如如果命令集类型是SCSI命令,这个域有以下几种值
00h
Good
命令正确完成
02h
CheckCondition
命令正确完成,最后一个命令的响应UPIU要携带Sensedata
08h
Busy
LU忙不能执行命令
28h
Tasksetfull
LU里任务队列满或者存储空间不够无法执行命令
40h
TaskAbort
收到放弃命令时返回
deviceInformation
这个域用bit0,其他bit可以是0。
用这个域指示例外事件上报,比如系统数据空间耗尽或者需要执行后台操作等。
DataSegmentLength
ResponseUPIU里data域是Sensedata,所以这个域sensedata和sensedatalength域之和的长度。
当命令集类型是SCSI,ResponseUPIU的数据域是Sensedata(20bytes)。
Residualtransfercount
这个域指示的是Initiator期望的字节和实际发送或收到的差值。
这个域和前面Flag.o,Flag.u域结合使用。
Flag.o
Flag.u
explain
1
N
Target发送给Initiator期望字节后还有N个字节要发送给Initiator。
超过了Initiator期望。
Target少发送了比Initiator期望的字节少的N个字节。
即Intiator期望的减去Target发送的等于N。
期望和实际相符
x
非法
sensedata
当SCSI命令执行出错或发生意外的情况下发送的额外的信息,包含多级error码。
当命令正确处理通常不需要这个域。
关于sensedata在SPC标准里说明。
18bytes。
sensedatalength(2bytes)
sensedata和sensedatalength域的长度。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Jesd UFS21标准学习 UFS21 标准 学习