UFS协议—新手快速入门(四)【10】

目录

十、UPIU数据包格式详解

1、Transaction Type(类型)

 2、Flags(附加信息)

 其它

3、LUN(逻辑单元号):

4、Task Tag(任务标签):

5、Command Type(命令类型):

6、Initiator ID(发起者ID):

7、Response(响应):

8、Status(状态):

9、Query Function(查询功能)、Task Management Function(任务管理功能)

(1)任务管理功能值及其描述 

(2)设备管理器功能字段值及其描述

(3)函数操作码值及其描述 

10、Device Information(设备信息)


UFS协议—新手快速入门(一)【1-4】

UFS协议—新手快速入门(二)【5-6】

UFS协议—新手快速入门(三)【7-9】

十、UPIU数据包格式详解

UPIU(UFS Protocol Information Unit,UFS协议信息单元)是UFS(Universal Flash Storage,通用闪存存储)协议中用于传输命令、数据和状态信息的数据包。它具有固定的格式,是UFS协议的核心组成部分。每个UPIU都有一个Header,再加上跟每个UPIU相关的域。我们可以了解到以下关于UPIU数据包格式的信息:

  1. Header(头部):每个UPIU都有一个12字节的Header,这是UPIU数据包的开始部分,包含了UPIU的基本信息。
  2. 最小和最大:一个UPIU(包括Header)的最小大小为32字节,最大可以达到65600字节24。
  3. 命令或请求的执行:UFS采用“客户-服务器”架构,主机(Client)发送命令或请求给UFS设备(Target),然后设备执行命令并返回状态信息。命令的执行包括命令阶段、数据阶段和状态阶段3。
  4. 命令类型:UFS主机通过不同类型的UPIU来发送命令请求、传输数据或返回命令状态信息。例如,COMMAND UPIU用于封装UFS命令模块发送的命令,TASK MANAGEMENT REQUEST UPIU用于封装任务管理器的请求,QUERY REQUEST UPIU用于封装设备管理器的请求。

UPIU(UFS Protocol Information Unit)基础头部格式的描述

1、Transaction Type(类型

Transaction Type”字段。这个字段在UPIU(UFS Protocol Information Unit)的Header中用来标识该UPIU的类型。

  • 事务代码的第5位表示UPIU的流向和发起者:当为'0'时,发起者是发起者设备;当为'1'时,发起者是目标设备。

 2、Flags(附加信息

只对命令和其响应的UPIU有用,指定命令的属性。

  • "-" 表示该位是保留的或在该UPIU类型中未使用。
  • "R" 和 "W" 在Command UPIU中分别表示读和写操作。
  • "Cp(2)" 在Command UPIU的Bit 2位置表示命令优先级。
  • "ATTR" 命令属性域。UFS命令有simple ,ordered 和Head of Queue命令。
  • "O", "U", "D" 在Response UPIU中分别表示操作类型、是否为未请求的响应和数据传输方向。
 其它

 1、Simple Command(简单命令)

  • 特点:不需要特别处理,按照接收顺序执行。
  • 执行策略:通常遵循先到先服务(FCFS)的原则。

2、Ordered Command(有序命令)

  • 特点:必须在该命令之前的所有命令完成后才能执行。
  • 执行策略:确保命令的顺序性,类似于“明星出场前清场”,即前面的命令(“观众”)需要先被处理。

3、Head of Queue Command(队列头部命令)

  • 特点:接收到后立即放置于命令队列的头部并执行。
  • 执行策略:具有高优先级,类似于“插队”,打破了常规的排队顺序,需要立即被处理。

4、CP(Command Priority,命令优先级)

  • 含义:表示命令的优先级,1表示高优先级,0表示低优先级。
  • 适用范围:仅适用于简单命令。高优先级的简单命令可能会在命令队列中优先于其他简单命令执行。 

3、LUN(逻辑单元号):

  • 概念来源:UFS协议继承自SCSI,采用了逻辑单元的概念。
  • 作用:将存储设备的物理空间划分为多个逻辑空间,每个逻辑空间都是独立的,并且从LBA(Logical Block Addressing,逻辑块寻址)0开始。
  • 标识:每个逻辑空间通过LUN进行标识。
  • 寻址:主机在发送命令或请求时,通过指定LUN来确定命令的目标逻辑空间。
  • 与NVMe的关系:UFS的LU概念与NVMe中的Namespace概念相似,都是用来标识存储设备的逻辑分区。

4、Task Tag(任务标签):

  • 支持:UFS支持命令队列,允许主机同时发送多个命令给设备。
  • 目的:为了区分不同的命令或请求,主机需要为每个命令分配一个唯一的标签。
  • 关联:与特定命令UPIU相关的数据UPIU和状态UPIU会具有相同的Tag,确保数据和状态信息与原始命令正确关联。
  • 处理:设备使用这个Tag来识别和管理命令的执行顺序,以及与命令相关的数据和状态的匹配。

  • 一致性:在上图读命令的整个过程中,从命令发起到数据传输,再到最终的命令状态响应,所有的UPIU都使用相同的Task Tag,确保整个命令处理过程的连贯性和可追踪性。
  • 命令执行:设备接收到读命令后,执行操作,并将数据通过DATA IN UPIU发送回主机,最后通过RESPONSE UPIU发送命令执行的状态。
  • 错误处理:如果命令执行过程中出现问题,RESPONSE UPIU将携带相应的错误状态信息,主机可以通过Task Tag将此状态与原始命令关联起来。
  • LUN和Task Tag是UFS协议中用于确保命令正确寻址和区分的关键机制。
  • LUN允许对存储设备的逻辑空间进行寻址,而Task Tag则允许在复杂的命令队列中跟踪和管理每个命令的状态

5、Command Type(命令类型):

  • 分类
    • 简化的SCSI命令:UFS目前使用的命令大多来源于SCSI。
    • UFS原生命令:UFS协议特有的命令,目前尚未制定。
    • 用户自定义命令:根据用户需求定制的命令。
  • 默认值:如果没有用户自定义命令,该域通常设置为0,表示使用的是SCSI命令。

6、Initiator ID(发起者ID):

  • 用途:标识发送命令的主机。
  • 常见值:在大多数手机系统中,一个主机连接一个UFS设备,因此主机ID通常为0。

7、Response(响应):

  • 功能:设备使用该字段告知主机命令或请求的执行情况。

8、Status(状态):

  • 功能:设备返回命令执行的状态信息。
  • SCSI命令状态:UFS协议定义了几种状态,用于指示SCSI命令的执行结果。

9、Query Function(查询功能)、Task Management Function(任务管理功能

查询功能(Query Function):

  • 状态报告:提供文件系统的整体状态,包括使用情况、性能指标等。
  • 元数据查询:检索文件的元数据,这可能包括文件的创建者、标签、注释等。
  • 文件属性查看:查看文件的详细信息,如大小、类型、权限、所有者等。
  • 目录列表:列出指定目录下的所有文件和子目录。
  • 文件检索:允许用户根据文件名、扩展名、大小、创建日期、修改日期等属性来搜索文件。

任务管理功能(Task Management Function)

  • 任务调度:允许用户或系统自动安排任务在特定时间执行,例如备份、索引更新等。
  • 任务监控:实时监控正在进行的任务,包括它们的状态、进度和可能的错误。
  • 任务日志:记录任务的执行历史,包括成功、失败和警告信息。
  • 任务优先级管理:设置任务的优先级,以确保关键任务能够优先执行。
  • 任务依赖性管理:管理任务之间的依赖关系,确保任务按正确的顺序执行。
(1)任务管理功能值及其描述 

(2)设备管理器功能字段值及其描述

(3)函数操作码值及其描述 

 

10、Device Information(设备信息)

  • 设备信息域通常与命令或请求无关,它属于设备附带的信息。
  • 在UFS主从架构中,设备不能主动向主机报告其状态,除非主机发出了命令或请求。
  • 如果设备有特殊事件,它可以在返回RESPONSE UPIU时,将这些事件信息顺带通知主机。
  • 设备信息域仅对RESPONSE UPIU有效。 

下期预告:UFS协议—新手快速入门(五)  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/744386.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Ubuntu22 更新内核后终端输入卡顿,最简单的解决方案

在系统升级后相信很多人都遇到了这个问题,系统终端输入卡顿,但是ssh远程进来不卡,使用第三方终端也不卡,…,今天终于忍不了,解决了 现象: 更新Nvidia驱动后,内核进行了自动编译升级。 之后的一段时间使用…

银幕光影交织,红酒香醇流淌,一场电影与红酒的绝美浪漫邂逅

在光影交错的世界里,红酒与电影总能在不经意间碰撞出浪漫的火花。当银幕上的角色轻启瓶盖,那迷人的酒香便如诗如画般弥漫开来,与影片的情节交织在一起,构成了一幅幅动人的画面。今天,就让我们一起走进这个充满酒香的银…

以太网的基本介绍

文章目录 一、以太网(Ethernet)介绍二、协议介绍三、什么是PHY?三、PHY芯片介绍1.标准接口协议:2.寄存器配置:3.自动协商:4.链路检测:5.复位与电源管理:6.中断与状态报告&#xff1a…

Linux(简单概述)

目录 第一章 初识Linux 第四章 文件管理与常用命令 1.文件基础知识 2.文件显示命令 3.文件内容查询 4. 文件和目录基本操作 5. 文件复制、移动、删除 7. 链接 8. 文件访问权限 9. 文件查找命令 10. 压缩和解压缩 第五章用户与用户组 第六章软件包管理RPM和YUM数据库…

数据结构-线性表的链式表示

目录 前言一、线性表的链式表示和实现1.1 线性表的表示1.2 基本操作的实现1.3 线性表的链式表示的优缺点 总结 前言 本篇文章主要介绍线性表的链式表示 一、线性表的链式表示和实现 1.1 线性表的表示 线性表的链式表示又称为链式存储结构或链式映像 链式存储定义&#xff1…

hypernetwork在SD中是怎么工作的

大家在stable diffusion webUI中可能看到过hypernetwork这个词,那么hypernetwork到底是做什么用的呢? 简单点说,hypernetwork模型是用于修改样式的小型神经网络。 什么是 Stable Diffusion 中的hypernetwork? Hypernetwork 是由…

Linux:RAID磁盘阵列

目录 一、RAID(磁盘阵列) 1.1、概念 1.2、RAID 0(条带化存储) 1.3、RAID 1(镜像存储) 1.4、RAID 5 1.5、RAID 6 1.6、RAID 10 (先做镜像,再做条带) 二、创建RAID 2.1、建立RAID 0 …

视频录制软件哪个好用?5款简单好用软件推荐

在我们的日常生活中,都有哪些好用的视频录制软件?在很多场合中我们都会用电脑记录下重要的时刻。比如,在电脑上听老师讲解一道难题的方法时,怕自己会忘记,想要录制下来进行重复的观看。这时,选择一款好用的…

Qt添加Dialog对话框

Qt版本:5.12.12 1.添加【模块】 Base class:可以选择QDialog、QWidget、QMainWindow 会自动生成MyDialog.h和MyDialog.cpp文件以及MyDialog.ui文件, 2.添加代码: (1)TestDialog.h #pragma once#include…

【Matlab 六自由度机器人】机器人动力学之推导拉格朗日方程(附MATLAB机器人动力学拉格朗日方程推导代码)

【Matlab 六自由度机器人】机器人动力学概述 近期更新前言正文一、拉格朗日方程的推导1. 单自由度系统2. 单连杆机械臂系统3. 双连杆机械臂系统 二、MATLAB实例推导1. 机器人模型的建立2. 动力学代码 总结参考文献 近期更新 【汇总】 【Matlab 六自由度机器人】系列文章汇总 …

【代码】python实现一个BP神经网络-原理讲解与代码展示

​ 本文来自《老饼讲解-BP神经网络》https://www.bbbdata.com/ 目录 一、BP神经网络原理回顾1.1 BP神经网络的结构简单回顾1.2.BP神经网络的训练算法流程 二、python实现BP神经网络代码2.1.数据介绍2.2.pytorch实现BP神经网络代码 在python中要如何使用代码实现一个BP神经网络呢…

excel实现下拉筛选(超简单)

excel实现下拉筛选 引言1、需求:预警状态下的列 实现下拉筛选2、实现2.1、数据验证2.2、下拉筛选内容2.3、去掉预警状态单元格的下拉筛选 引言 通常,我们会单独新建一张sheet表 专门存每个列的下拉内容。下面我将专门建立一张名为代码表的sheet表来存放…

Nginx调度器

Nginx反向代理 反向代理架构 部署后端Web1服务器 部署后端Web2服务器 配置Nginx服务器,添加服务器池,实现反向代理功能 proxy主机安装nginx 修改/usr/local/nginx/conf/nginx.conf配置文件 重新加载配置 客户端使用火狐浏览器或curl多次访问p…

阿尔兹海默症-图像分类数据集

阿尔兹海默症-图像分类数据集 数据集: 链接:https://pan.baidu.com/s/1gSUT74XrnHmg2Z11oZNd6A?pwdwphh 提取码:wphh 数据集信息介绍: 文件夹 健康 中的图片数量: 8000 文件夹 早期轻度认知障碍 中的图片数量: 10000 文件夹 …

https基础概念

目录 1.什么是https 1.1.https概念 1.2.一些术语 2.https如何加密 2.1.使用对称加密 2.2.使用非对称加密 1.什么是https 首先,https不是http的复数形式 1.1.https概念 (1)产生背景 为什么会出现https,是因为http协议在传…

Java 面试笔记 | Java 基础:线程池

前言 在日常的工作学习生活中,用一种好的方法去学习,可以更加有效,比如费曼学习法:将学到的知识用自己的组织的语言表达出来,如果能够清晰明白的向别人解释清楚,那么就说明你是真的懂了,学会了…

DataStructure.包装类简单认识泛型

包装类&简单认识泛型 【本节目标】1 包装类1.1 基本数据类型和对应的包装类1.2 装箱和拆箱1.3 自动装箱和自动拆箱 2 什么是泛型3 引出泛型3.1 语法 4 泛型类的使用4.1 语法4.2 示例4.3 类型推导(Type Inference) 5. 裸类型(Raw Type) (了解)5.1 说明…

C++初学者指南-2.输入和输出---文件输入和输出

C初学者指南-2.输入和输出—文件输入和输出 文章目录 C初学者指南-2.输入和输出---文件输入和输出1.写文本文件2.读文本文件3.打开关闭文件4.文件打开的模式 1.写文本文件 使用&#xff1a; std::ofstream&#xff08;输出文件流&#xff09; #include <fstream> // 文…

昂科烧录器支持KIOXIA铠侠的可编程只读存储器TH58NVG4S0HTAK0

芯片烧录行业领导者-昂科技术近日发布最新的烧录软件更新及新增支持的芯片型号列表&#xff0c;其中KIOXIA铠侠的电可擦除可编程只读存储器TH58NVG4S0HTAK0已经被昂科的通用烧录平台AP8000所支持。 TH58NVG4S0HTAK0是一个单一的3.3V 16Gbit&#xff08;18253611008位&#xff…

如何在Paperspace中使用 H100 单 GPU 和多 GPU 机器

本文将介绍如何在 DigitalOcean 的 Paperspace 平台上运行 NVIDIA H100 单卡 GPU 和 8 卡 GPU 。使用低成本的 GPU 云服务构建和扩展你的人工智能模型&#xff0c;即刻简化并加速你的机器学习工作。 如果需要了解 DigitalOcean 的 H100 GPU 云主机&#xff0c;请查看我们在 Dig…