当前位置: 首页 > news >正文

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

目录

五、UFS协议栈

六、UFS技术演进与详解

1、UFS应用层

设备管理器

任务管理器

2、UFS传输层

3、UFS互联层


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

五、UFS协议栈

UFS(Universal Flash Storage)协议是针对固态存储设备(如UFS存储卡)的接口规范,它由JEDEC(联合电子设备工程委员会)制定。UFS协议的设计初衷是为了提供一种高性能、低功耗的存储解决方案,以满足移动设备对存储速度和容量的需求。

UFS协议之所以被设计为四层结构,主要是为了满足以下几个方面的需求:

  1. 物理层(Physical Layer):这是UFS协议栈的最顶层,它负责处理如读写命令等存储操作。UFS应用层使用的是简化的SCSI命令集,这些命令由UCS(UFS命令集)生成。负责与存储设备的物理连接和电气特性,确保数据可以正确地在设备之间传输。

  2. 传输层(Transport Layer)传输层负责将应用层的命令和数据封装成UPIU(UFS Protocol Information Unit),并确保它们在设备和主机之间可靠地传输。处理数据的传输协议,确保数据在物理层之上可靠地传输。

  3. 协议层(Protocol Layer):在这一层,UFS使用MIPI UniPro规范,它支持数据的传输、错误检测和纠正、流量控制等功能。其定义了UFS设备的操作命令和数据结构,包括读写操作、块管理、错误处理等。

  4. 应用层(Application Layer)物理层由MIPI M-PHY规范定义,它负责在物理介质上传输电气信号,包括信号编码、速率匹配、电压级别等。与操作系统和应用层软件交互,提供文件系统和存储管理的功能。

这种分层设计使得UFS协议能够灵活地适应不同的硬件平台和应用场景,同时也便于实现标准化和模块化。每一层都有其特定的功能和职责,这有助于简化开发过程,提高系统的可维护性和可扩展性。

UFS协议栈的构建是借鉴和整合了现有的技术规范来实现其功能。这种集成不同组织定义的技术来创建新的标准的做法在技术发展中是相当常见的。

  1. 应用层:UFS协议栈的应用层并没有定义自己的原生命令集,而是采用了简化版的SCSI命令集,这些命令集由INCITS T10组织定义。SCSI(Small Computer System Interface)是一种广泛使用的存储设备接口标准,它定义了存储设备如何与计算机系统通信。

  2. 传输层:UFS的传输层(UTP,UFS Transport Protocol)是JEDEC(Joint Electron Device Engineering Council)自己定义的。这一层负责将应用层的命令和数据封装成UPIU(UFS Protocol Information Unit),并管理它们在UFS设备和主机之间的传输。

  3. 数据链路层:UFS协议栈的数据链路层基于MIPI(Mobile Industry Processor Interface)联盟的UniPro规范。UniPro是一个灵活的互连协议,支持多种通信接口,包括UFS。

  4. 物理层:UFS的物理层同样采用了MIPI联盟的M-PHY规范。M-PHY定义了电气和物理特性,如信号传输方式、电压级别等,以支持高速数据传输。

通过整合T10的SCSI命令集、MIPI的UniPro和M-PHY以及JEDEC自己的UTP,UFS能够为移动设备提供一种高性能、高可靠性的存储解决方案。这种集成方式使得UFS能够利用现有技术的优势,加速开发过程,并确保与现有生态系统的兼容性。

JEDEC的这种做法确实体现了一种高效的技术整合能力,它不是从头开始创建所有内容,而是通过集成和适配现有的技术标准来构建新的技术规范。这不仅节省了研发时间和成本,还确保了新技术能够快速融入现有的技术生态系统中。这种策略在快速发展的科技领域中是一种非常实用的方法。

六、UFS技术演进与详解

1、UFS应用层

在UFS协议栈中,应用层扮演着至关重要的角色,其主要功能如下:

  1. UFS命令集:应用层定义了一套UFS命令集,这些命令用于控制UFS设备执行各种操作,如读写数据、擦除块、查询设备信息等。

  2. 设备管理器(Device Manager):设备管理器负责管理UFS设备的生命周期,包括设备的初始化、配置、状态监控和异常处理等。

  3. 任务管理器(Task Manager):任务管理器负责调度和管理UFS设备上的任务,确保命令的执行顺序和优先级符合要求。

应用层作为协议栈的最高层,它充当用户与UFS设备之间的桥梁,将用户的命令或请求转化为具体的UFS命令,并通过网络层、传输层和内联层等下层协议进行处理和执行。应用层的决策和命令对于整个UFS系统的运作至关重要,它决定了如何高效地管理UFS设备,以及如何优化数据的存取和传输。

设备管理器

UFS(Universal Flash Storage)协议栈中,设备管理器(Device Manager)是核心组件之一,它负责管理和控制UFS设备的各种操作和配置。

设备级操作:设备管理器负责执行和管理与UFS设备相关的各种操作。这包括但不限于:

  • 功耗管理:控制设备的功耗,以优化电池寿命或系统性能。
  • 数据传输参数设置:配置数据传输的速率、模式等参数,以确保数据传输的效率和可靠性。
  • 后台操作(Background Operation):使能或禁止设备在后台执行的操作,如垃圾回收、块擦除等。
  • 其他设备相关操作:例如设备重置、健康状态监测等。

1、设备级配置管理:

设备管理器还负责维护和存储设备的配置信息。这通常通过一系列的描述符(Descriptor)来实现,这些描述符包含了设备的详细信息和配置参数。设备管理器可以通过Query请求来修改或获取这些配置信息。

2、与传输层的交互:

设备管理器通过传输层为其提供服务,这种交互通常是通过特定的服务访问点(Service Access Point,简称SAP)来实现的。例如,UDM_SAP(Universal Device Management Service Access Point)是设备管理器与传输层之间通信的接口。

3、描述符:

描述符是UFS协议中用于描述设备属性和配置的一组数据结构。它们可以包含设备的制造商信息、产品信息、序列号、固件版本、容量、性能参数等。通过Query命令,设备管理器可以查询或修改这些描述符中的信息。

4、命令集:

除了基本的读写命令和TRIM(UNMAP)命令外,UFS还定义了其他命令,用于执行更复杂的操作,如安全擦除、固件升级等。

从UFS(Universal Flash Storage)的层次架构图来看,设备管理器(Device Manager)与传输层(Transport Layer)之间的交互是通过服务访问点(Service Access Point,简称SAP)来实现的。UDM_SAP(Universal Device Management Service Access Point)是设备管理器与传输层之间通信的接口,它允许设备管理器发送命令和接收响应,以及执行各种设备管理任务。 

在UFS协议栈中,设备管理器(Device Manager)除了可以通过传输层(Transport Layer)进行操作外,还可以通过用户空间直接输入输出(User-space I/O,简称UIO)服务访问点(UIO_SAP)直接管理与控制互联层(Interconnect Layer)。UIO_SAP提供了一种机制,允许设备管理器在用户空间直接与硬件设备交互,绕过内核空间的某些层。 

任务管理器 

当系统中某个命令执行超时,即该命令没有在预定时间内完成,系统可能会采取一些措施来确保系统的稳定性和响应性。在许多系统中,"Abort"命令就是用来中断或终止一个超时的命令或进程的。执行Abort命令后,系统会尝试停止该命令的执行,释放它占用的资源,并可能返回一个错误信息或状态码,以便用户或系统管理员了解发生了什么。

2、UFS传输层

在UFS架构中,传输层起着至关重要的作用,它位于协议层和物理层之间,负责将应用层的命令和请求转换为可以发送到接收端的数据包。

想象一下,UFS传输层就像是一位忙碌的将军,它站在战场(也就是数据传输的前线)上,指挥着千军万马——也就是那些数据包。

应用层的统帅下达命令时,传输层这位将军就会迅速行动起来,把命令翻译成敌军(也就是接收端)能够理解的语言——也就是UPIU。

将军(传输层)不仅需要确保命令被正确传达,还要确保它们以最高效的方式被执行。这就像是在战场上,将军需要确保每支箭都射中目标,每匹马都跑到正确的位置。而且,如果命令在战场上迷失了方向或者遇到了障碍,将军还得迅速做出反应,可能是重新组织队伍,或者调整战术。

在这个过程中,将军还得时刻关注敌情——也就是接收端的反馈。如果接收端传来了“一切顺利”的消息,那么将军就可以松一口气,继续执行下一个命令。但如果接收端传来了“遇到问题”的消息,那么将军就得立刻采取行动,可能是重新发送命令,或者调整策略。

所以,虽然UFS传输层的工作听起来很复杂,但其实它就像是一位在战场上运筹帷幄的将军,既要保证命令的传达,又要确保数据的安全和效率。在这个数字化的战场上,传输层这位将军可是至关重要的角色。

3、UFS互联层 

在UFS互联层中,UniPro和M-PHY共同工作,以实现主机和存储设备之间的高效通信。UniPro在数据链路层上处理数据包的组织、传输和错误控制,而M-PHY则在物理层上确保这些数据包能够准确地在物理介质上被传输。这种分层的方法使得UFS能够提供高性能的数据传输能力,同时保持对不同设备和应用场景的兼容性。

MIPI UniPro 是一种高性能的串行通信协议,它在UFS互联层中扮演数据链路层的角色。UniPro的设计旨在提供高效的数据传输速率和强大的错误检测与纠正机制。它不仅定义了数据链路层的功能,还包含了一整套协议栈,这使得UniPro能够支持复杂的通信需求,如数据包的路由、流量控制、以及服务质量管理等。UniPro的这些特性使其成为UFS高速数据传输的理想选择。

M-PHY 是一种物理层接口,负责在物理介质上传输电信号。M-PHY的设计允许它支持多种不同的数据传输速率,并且能够适应不同的信号完整性要求。作为物理层的一部分,M-PHY确保了信号在传输过程中的完整性和可靠性,无论数据传输速率如何变化。M-PHY的灵活性和鲁棒性使其成为实现UFS物理连接的关键技术。

UniPro和OSI七层模型的对比:

看来我们要聊聊UFS互联层的两位大明星——MIPI UniPro和M-PHY,它们就像是UFS世界的超级英雄组合。

首先,让我们来认识一下UniPro,这位数据链路层的超级英雄。UniPro不仅仅是一个简单的数据链路层,它其实是一个全能型的协议栈。想象一下,UniPro就像是一个多才多艺的特工,不仅能够确保主机和设备之间的链接,还能够处理数据的打包、传输、错误检测和恢复等一系列任务。UniPro的超能力包括但不限于:高效的数据传输、灵活的链路管理、以及强大的错误处理机制。

然后,我们有M-PHY,这位物理层的超级英雄。M-PHY的职责是传输那些实实在在的物理信号,就像是在幕后默默工作的特技演员,虽然不常出现在聚光灯下,但其作用至关重要。M-PHY确保了电信号在物理介质上的准确传输,无论是高速的还是低速的,都能够保证信号的完整性和稳定性。

这两位英雄的合作,就像是一场精彩的舞台剧,UniPro在前台指挥着数据的流动,而M-PHY在幕后确保信号的传输。他们共同确保了UFS设备能够以最高的效率和最佳的性能运行。

所以,下次当你听到UFS互联层时,不妨想象一下UniPro和M-PHY这两位超级英雄,他们正在一起努力,确保你的数据传输既快速又安全。这就像是一场精彩的动作大片,只不过这一次,场景换成了你的设备内部!

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

相关文章:

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

目录 五、UFS协议栈 六、UFS技术演进与详解 1、UFS应用层 设备管理器 任务管理器 2、UFS传输层 3、UFS互联层 UFS协议—新手快速入门(一)【1-4】 五、UFS协议栈 UFS(Universal Flash Storage)协议是针对固态存储设备&…...

手机建站介绍

随着科技的不断进步和移动互联网的普及,手机应用已经成为人们生活中最不可或缺的一部分。而手机建站作为一种新兴技术,在这一领域也有着广泛的应用。本文将为大家介绍手机建站的概念、优势和应用。 什么是手机建站? 手机建站是指将传统的网络…...

windows11 安装cnpm 报错 Error: EPERM: operation not permitted 没权限

全部试过: 您遇到的错误是EPERM: operation not permitted,这意味着npm在尝试重命名文件或目录时缺少必要的权限。这通常与操作系统的权限设置有关。为了解决这个问题,您可以尝试以下几个步骤: 以管理员身份运行命令行&#xff1…...

SQL 如何获取A列相同但是B列不同的数据项

用户表里有两个字段:部门和职位。一个部门可能对应多个职位,多个部门也可能都有同一职位。比如: 部门 职位 财务 部长 财务 副部长 财务 会计 财务 职员 编辑 部长 编辑 副部长 编辑 主编 编辑 副主编 现在想通过筛选,获取职位名称…...

如何在QGIS中加载高清卫星影像?

我们在《如何在GlobalMapper中加载高清卫星影像》一文中,分享了在GlobalMapper中加载卫星影像的方法。 这里再为你分享如何在QGIS中加载高清卫星影像的方法,并可以在文末查看领取软件安装包和图源的方法。 如何加载高清图源? 要在QGIS中在…...

后端返回图片格式乱码

try {const response await request.get(checkCodeUrl.value,{responseType:"arraybuffer"});console.log("验证码请求成功:", response);checkCodeUrl.value data: image/jpeg;base64,${btoa(new Uint8Array(response).reduce((data, byte) > data …...

C++基础编程100题-025 OpenJudge-1.4-05 整数大小比较

更多资源请关注纽扣编程微信公众号 http://noi.openjudge.cn/ch0104/05/ 描述 输入两个整数&#xff0c;比较它们的大小。 输入 一行&#xff0c;包含两个整数x和y&#xff0c;中间用单个空格隔开。 0 < x < 2^32, -2^31 < y < 2^31。 输出 一个字符。 若x &…...

[office] 16种常见的COUNTIF函数公式设置 #笔记#职场发展

16种常见的COUNTIF函数公式设置 1、返回包含值12的单元格数量 COUNTIF(A:A,12) 2、返回包含负值的单元格数量 COUNTIF(A:A,"<0") 3、返回不等于0的单元格数量 COUNTIF(A:A,"<>0") 4、返回大于5的单元格数量 COUNTIF(A:A,">5"…...

spring boot2.7.x遇到问题

validation报错 高版本已移除了validation以来&#xff0c;需手动添加 <dependency><groupId>jakarta.validation</groupId><artifactId>jakarta.validation-api</artifactId> </dependency>mybatis报错 升级版本 <dependency>&…...

Webpack 开发快速入门

WebPack详细入门教程&#xff08;一&#xff09;之简介 Webpack详细入门教程&#xff08;二&#xff09;之安装配置 WebPack详细入门教程&#xff08;三&#xff09;之loader加载器 Webpack详细入门教程&#xff08;四&#xff09;之Source Maps调试 Webpack详细入门教程&#…...

AI时代的多维探索

随着人工智能&#xff08;AI&#xff09;技术的迅猛发展&#xff0c;我们的生活正在经历一场深刻的变革。从智能家居到自动驾驶&#xff0c;从医疗诊断到金融投资&#xff0c;AI技术正逐渐渗透到社会的各个角落。为了更全面地了解AI时代的发展趋势&#xff0c;我们将通过十个具…...

您的游戏端被攻击了怎么办,德迅云安全的应用加速来帮您

游戏行业DDoS攻击的主要原因是因为游戏产品生命周期偏短&#xff0c;而DDoS供给成本又不高&#xff0c;只要发起攻击&#xff0c;企业为确保游戏稳定运营而不得不快速做出让步&#xff0c;致使敲诈勒索的成功率相对更高。在遭受DDoS攻击后&#xff0c;游戏公司的日损失甚至多达…...

关于利用hashcat破解WiFi数据包的操作记录

准备数据包相关转换工具 ┌──(kali㉿kali)-[~/cap/3204] └─$ sudo apt-cache search hc | grep ^hc hcloud-cli - command-line interface for Hetzner Cloud hcxdumptool - Small tool to capture packets from wlan devices hcxkeys - Tools to generate plainmasterkey…...

伯克希尔·哈撒韦:“股神”的“登神长阶”

股价跳水大家见过不少&#xff0c;但一秒跌掉62万美元的你见过吗&#xff1f; 今天我们来聊聊“股市”巴菲特的公司——伯克希尔哈撒韦 最近&#xff0c;由于纽交所技术故障&#xff0c;伯克希尔哈撒韦A类股股价上演一秒归“零”&#xff0c;从超过62万美元跌成185.1美元&…...

f1c100s 荔枝派 系统移植

一。交叉编译环境配置 1.1下载交叉工具链&#xff1a;https://releases.linaro.org/components/toolchain/binaries/7.2-2017.11/arm-linux-gnueabi/ 1.2解压安装 在home目录下新建 工程目录&#xff1a;mkdir f1c100s_project 将windows下的gcc-linaro-7.2.1-2017.11-x86…...

EtherCAT 和 UDP 通讯的实时性 区别

EtherCAT 和 UDP 是两种不同的通信协议&#xff0c;它们在实时性方面有着本质的区别&#xff0c;主要体现在以下几个方面&#xff1a; 实时性设计目的&#xff1a; EtherCAT 是专为工业自动化设计的实时以太网协议&#xff0c;它通过独特的数据通信机制实现了极高的实时性能。E…...

山东大学软件学院项目实训-创新实训-基于大模型的旅游平台(二十八)- 微服务(8)

目录 11.4 SpringAMQP 11.4.2 Work Queue工作队列 11.4.3 发布订阅模型 11.4.4 FanoutExchange(广播交换机) 11.4.5 DirectExchange(路由模式交换机) 11.4.6 TopicExchange 11.5 消息转换器 11.4 SpringAMQP 父工程引入AMQP依赖 <!--AMQP依赖&#xff0c;包含RabbitMQ…...

如何将 MySQL 数据库共享给他人?

文章目录 共享所有数据库给他人1. 连接到 MySQL 数据库2. 选择要使用的数据库3. 修改连接所需的 host4. 刷新权限 共享部分数据库给他人1. 创建用户2. 授权3. 刷新权限 结语 &#x1f389;欢迎来到Java学习路线专栏~探索Java中的静态变量与实例变量 ☆* o(≧▽≦)o *☆嗨~我是I…...

netty-学习

Netty Netty 的核心概念Netty 的主要特性Netty 的应用场景Netty 的基本使用服务器端处理器 总结 代码分析1.心跳检测代码解析类和成员变量userEventTriggered方法总结 4.参数详解ChannelHandlerContext ctxObject evt 事件来源示例&#xff1a;配置 IdleStateHandler事件处理示…...

无线和移动网络

背景 两个重要的挑战 无线&#xff1a;通过无线链路通信移动&#xff1a;需要网络处理移动&#xff08;不同变换所接入的网络&#xff09;用户 无线网络中的组件 无线主机&#xff08;无线并不总是意味着移动的&#xff09;基站&#xff08;base station 或者叫AP&#xff0…...

Day131 | 灵神 | 回溯算法 | 子集型 子集

Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a; 笔者写过很多次这道题了&#xff0c;不想写题解了&#xff0c;大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...

P3 QT项目----记事本(3.8)

3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...

【论文笔记】若干矿井粉尘检测算法概述

总的来说&#xff0c;传统机器学习、传统机器学习与深度学习的结合、LSTM等算法所需要的数据集来源于矿井传感器测量的粉尘浓度&#xff0c;通过建立回归模型来预测未来矿井的粉尘浓度。传统机器学习算法性能易受数据中极端值的影响。YOLO等计算机视觉算法所需要的数据集来源于…...

工业自动化时代的精准装配革新:迁移科技3D视觉系统如何重塑机器人定位装配

AI3D视觉的工业赋能者 迁移科技成立于2017年&#xff0c;作为行业领先的3D工业相机及视觉系统供应商&#xff0c;累计完成数亿元融资。其核心技术覆盖硬件设计、算法优化及软件集成&#xff0c;通过稳定、易用、高回报的AI3D视觉系统&#xff0c;为汽车、新能源、金属制造等行…...

06 Deep learning神经网络编程基础 激活函数 --吴恩达

深度学习激活函数详解 一、核心作用 引入非线性:使神经网络可学习复杂模式控制输出范围:如Sigmoid将输出限制在(0,1)梯度传递:影响反向传播的稳定性二、常见类型及数学表达 Sigmoid σ ( x ) = 1 1 +...

SpringTask-03.入门案例

一.入门案例 启动类&#xff1a; package com.sky;import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCach…...

【开发技术】.Net使用FFmpeg视频特定帧上绘制内容

目录 一、目的 二、解决方案 2.1 什么是FFmpeg 2.2 FFmpeg主要功能 2.3 使用Xabe.FFmpeg调用FFmpeg功能 2.4 使用 FFmpeg 的 drawbox 滤镜来绘制 ROI 三、总结 一、目的 当前市场上有很多目标检测智能识别的相关算法&#xff0c;当前调用一个医疗行业的AI识别算法后返回…...

【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统

目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索&#xff08;基于物理空间 广播范围&#xff09;2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...

HashMap中的put方法执行流程(流程图)

1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中&#xff0c;其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下&#xff1a; 初始判断与哈希计算&#xff1a; 首先&#xff0c;putVal 方法会检查当前的 table&#xff08;也就…...

网站指纹识别

网站指纹识别 网站的最基本组成&#xff1a;服务器&#xff08;操作系统&#xff09;、中间件&#xff08;web容器&#xff09;、脚本语言、数据厍 为什么要了解这些&#xff1f;举个例子&#xff1a;发现了一个文件读取漏洞&#xff0c;我们需要读/etc/passwd&#xff0c;如…...