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协议—新手快速入门(三) 

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【UE5教程】使用蓝图显示鼠标

首先,在您的项目中创建一个新的蓝图类,继承自PlayerController。在蓝图编辑器中,找到Event BeginPlay节点,并从它引出一条线。添加Set Show Mouse Cursor节点,勾选Visible,以确保鼠标在游戏开始时可见。 鼠…

SpringCloud Consul基础入门与使用实践总结

【1】Consul简介 官网地址:https://www.consul.io/intro/index.html 下载地址:https://www.consul.io/downloads.html 中文文档:https://www.springcloud.cc/spring-cloud-consul.html ① 基础概念 Consul 是一套开源的分布式服务发现和…

AI网络爬虫:对网页指定区域批量截图

对网页指定区域批量截图,可以在deepseek的代码助手中输入提示词: 你是一个Python编程专家,一步一步的思考,完成一个对网页指定区域截图的python脚本的任务,具体步骤如下: 设置User-Agent: Mozilla/5.0 (…

Visual C++2010学习版详细安装教程(超详细图文)

Visual C 介绍 Visual C(简称VC)是微软公司推出的一种集成开发环境(IDE),主要用于开发C和C语言的应用程序。它提供了强大的编辑器、编译器、调试器、库和框架支持,以及丰富的工具和选项,使得开…

Android约束布局ConstraintLayout的使用

Android引入约束布局的目的是为了减少布局层级的嵌套,从而提升渲染性能。约束布局综合线性布局、相对布局、帧布局的部分功能,缺点也很明显,就是可能要多写几行代码。所以约束布局使用时,还得综合考虑代码量。提升性能也并不一定非…

CTFHUB-技能树-web-web前置技能-HTTP协议全

目录 1.请求方式 2.302跳转 3.Cookie 4.基础认证 5.响应包源码 1.请求方式 curl -v -X http://challenge-3022c877a8dcedeb.sandbox.ctfhub.com:10800/index.php 2.302跳转 参考链接:http://t.csdnimg.cn/aqdNG 301——永久性重定向。该状态码表示请求的资源已…

LangChain知识库构建与RAG设计

RAG:检索增强生成是什么? RAG的主要流程 Retrieval-Augmented Generation: 检索增强生成 能够根据问题的特点还有上下文, 生成更加个性化和精确的回答 为LLM提供来自外部知识源的额外信息的概念。这允许它们生成更准确和有上下文的答案,同时减少幻觉(1)检索&…

初识C++ · 模拟实现stack和Queue

目录 前言: 1 Stack 1.1 双端队列 2 Queue 前言: 经历了list三个自定义类型的洗礼,来个简单的放松放松,即栈和队列: 文档记录的,栈和队列是一种容器适配器,它们不属于stl,但是它…

平板显示LED背光芯片OC6700,输入3.6V~60V,升压型 LED 恒流驱动器

概述 OC6700是一款内置60V功率NMOS高效率、高精度的升压型大功率LED恒流驱动芯片。OC6700采用固定关断时间的控制方式,关断时间可通过外部电容进行调节,工作频率可根据用户要求而改变。OC6700通过调节外置的电流采样电阻,能控制高亮度LED灯的…

LangChain v0.2介绍

LangChain v0.2介绍 LangSmith:一个开发者平台,可调试、测试、评估和监控LLM应用程序。 LangServe:用于将 LangChain 链部署为 REST API 的包。可以轻松启动并运行生产就绪的 API。 LangChain:包含构成认知架构的链、代理和检索策…

香橙派Orange AI Pro / 华为昇腾310芯片 部署自己训练的yolov8模型进行中国象棋识别

香橙派Orange AI Pro / 华为昇腾310芯片 部署自己训练的yolov8模型进行中国象棋识别 一、香橙派简介1.1、香橙派 AI Pro 硬件资源介绍1.2、华为昇腾310(Ascend310) 简介1.3、 昇腾310AI能力和CANN 简介昇腾310 NPU简介 二、远程环境配置2.1、ssh2.2、vnc…

springboot管理的各依赖版本查看

找一个springboot相关的依赖,比如这里我找mybatis 鼠标点击artifactId名称,图中蓝色字段,跳转到springboot依赖(鼠标悬停在上面变成蓝色表示可点击跳转), 点击spring-boot-dependencites,跳转到…

list(二)和_stack_queue

嗨喽大家好,时隔许久阿鑫又给大家带来了新的博客,list的模拟实现(二)以及_stack_queue,下面让我们开始今天的学习吧! list(二)和_stack_queue 1.list的构造函数 2.设计模式之适配器和迭代器 3.新容器de…

产品人生(9):从“波士顿矩阵”看“个人职业规划”

波士顿矩阵(简称BCG矩阵)是一种战略规划工具,由波士顿咨询公司的创始人布鲁斯亨德森(Bruce Henderson)于1970年代初提出的,它以两个关键指标作为分析维度:市场增长率和相对市场份额,…

k8s牛客面经篇

k8s的pod版块: k8s的网络版块: k8s的deployment版块: k8s的service版块: k8s的探针板块: k8s的控制调度板块: k8s的日志监控板块: k8s的流量转发板块: k8s的宏观版块:

【InternLM实战营第二期笔记】04:XTuner 微调 LLM:1.8B、多模态、Agent

文章目录 笔记微调基础知识Xtuner8G显存微调模型InternLM2 1.8B多模态实践环节数据微调过拟合WebUI 交互 多模态微调 作业 这回学乖了,打开本节课第一件事先不看教程而是装环境~ 笔记 微调基础知识 这里感慨一下,垂直领域的训练还是挺困难的,…

docker安装redis以及持久化

为了避免当虚拟机关机后redis数据丢失的情况,redis需要持久化。所以要挂载数据卷 创建数据和配置存放的目录 [root192 data]# pwd /root/data [root192 data]# mkdir -p /root/data/redis/conf && chmod 777 /root/data/redis/conf [root192 data]# mkdir …

php反序列化中的pop链

目录 一、什么是POP 二、成员属性赋值对象 例题: 方法一 方法二 三、魔术方法的触发规则 例题: 四、POC的编写 例题1: 例题2 [NISACTF 2022]babyserialize 今日总结: 一、什么是POP 在反序列化中,我们…

项目资源管理

目录 1.概述 2.六个过程 2.1. 规划资源管理 2.2. 估算活动资源 2.3. 获取资源 2.4. 建设团队 2.5. 管理团队 2.6. 控制资源 3.应用场景 3.1.十个应用场景 3.2.软件开发项目 3.2.1. 资源规划 3.2.2. 资源分配 3.2.3. 资源获取 3.2.4. 资源优化 3.2.5. 资源监控与…

【AI基础】第二步:安装AI运行环境

开局一张图: 接下来按照从下往上的顺序来安装部署。 规则1 注意每个层级的安装版本,上层的版本由下层版本决定 比如CUDA的版本,需要看显卡安装了什么版本的驱动,然后CUDA的版本不能高于这个驱动的版本。 这个比较好理解&#xff…