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

news2024/11/26 18:45:24

目录

五、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.coloradmin.cn/o/1795342.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

德国西门子论未来质量管理 - 如何与明天相遇?

未来制造业的质量 -- 如何用软件方案满足质量要求 作者:Bill Butcher 翻译&编辑:数字化营销工兵 【前言】在Frost&Sullivan最近发表的一份白皮书中,他们讨论了制造业的质量投资。质量是制造过程的关键要素,但似乎比其他…

Ubuntu部署开源网关Apache APISIX

说明 系统:Ubuntu 24.04 LTSDocker版本:v26.1.3Docker Compose版本:v2.26.1 下载和配置 Ubuntu需要安装Docker和Docker Compose 下载apisix-docker仓库 git clone https://github.com/apache/apisix-docker.git修改docker-compose 配置e…

嵌入式学习记录6.6(拷贝构造/友元函数/常成员函数)

一.拷贝构造函数和拷贝赋值函数 1.1拷贝构造函数功能,格式 拷贝构造函数是一种特殊的构造函数,用来将一个类对象给另一个类对象初始化使用的。 1> 用一个类对象给另一个类对象初始化时,会自动调用拷贝构造函数。 2> 当一个类对作为函数的实参&…

【Linux】Linux环境基础开发工具_5

文章目录 四、Linux环境基础开发工具Linux小程序---进度条git 未完待续 四、Linux环境基础开发工具 Linux小程序—进度条 上篇我们实现了一个简易的进度条,不过那仅仅是测试,接下来我们真正的正式实现一个进度条。 接着编写 processbar.c 文件 然…

前端面试项目细节重难点(已工作|做分享)想(八)

面试官:请你讲讲你在该项目中遇到的印象深刻的问题是什么? 答:我的回答:该项目的实现过程中我确实遇到了问题:【我会给大家整理回答思路和角度,那那么遇到这样的问题也可借鉴这种思路进行阐述】 第一层面…

Docker 基础使用(2) 镜像与容器

文章目录 镜像的含义镜像的构成镜像的作用镜像的指令容器的含义容器的状态容器的指令 Docker 基础使用(0)基础认识 Docker 基础使用 (1) 使用流程概览 Docker 基础使用(2) 镜像与容器 Docker 基础使用(3) 存…

达梦8 并行查询

达梦数据库可以通过在查询语句加/* parallel */ HINT并行执行。下面以一个排序语句为例 我们通过一条监控语句查询排序区的使用情况。 最初没有查询结果(no rows) 伴随着语句insert /* parallel(4) */ into d select * from a order by 2执行&#xff…

Redis系列之淘汰策略介绍

Redis系列之淘汰策略介绍 文章目录 为什么需要Redis淘汰策略?Redis淘汰策略分类Redis数据淘汰流程源码验证淘汰流程Redis中的LRU算法Redis中的LFU算法 为什么需要Redis淘汰策略? 由于Redis内存是有大小的,当内存快满的时候,又没有…

解决CSDN 导入Markdown图片失效不显示问题

每次将MarkDown文件导入CSDN的时候,有些图片总是由于防盗链的问题导致图片加载不出来,还得手动再导一遍,极其不方便。所以我们能不能建立一个属于自己的图片服务器或者说在线图库呢,而且每次使用Typora插入图片的时候都会自动的上…

【ARFoundation自学05】人脸追踪(AR Face manager)实现

1. 修改摄像机朝向渲染方式-选中user 这个方式就会调用前置摄像头 2 创建 AR Session、XR Origin,然后在XR Origin上面添加组件 注意:XR Origin 老版本仍然叫 AR Session Origin 接下来在XR Origin上面添加AR Face Manager组件,如下图&am…

差分原理+练习

差分的原理和前缀和相似,我们先联想一下前缀和。 前缀和计算下标从0到n的和,记为sum[n1];如果想要求出[l,r]区间的和,可以快速的通过sum[r1]-sum[l]来得到 。 前缀和适用于需要多次获取指定连续区间和的情景 而差分即计算相邻两个元素的差…

【Text2SQL 论文】How to prompt LLMs for Text2SQL

论文:How to Prompt LLMs for Text-to-SQL: A Study in Zero-shot, Single-domain, and Cross-domain Settings ⭐⭐⭐⭐ arXiv:2305.11853, NeurlPS 2023 Code: GitHub 一、论文速读 本文主要是在三种常见的 Text2SQL ICL settings 评估不同的 prompt constructio…

Mybatis编写SQL

文章目录 一、用注解编写1.1 增普通增加获取自增ID 1.2 删和改1.3 查单表查询多表查询 二、用xml编写2.1 使用xml的流程2.2 增普通增加获取自增ID 2.3 删 和 改2.4 查 三、#{} 和 ${}3.1 #{} 、${}3.1 预编译 SQL 、即时编译SQL 两种写法是可以同时存在的 一、用注解编写 1.1 …

正点原子[第二期]Linux之ARM(MX6U)裸机篇学习笔记-24.5,6 SPI驱动实验-ICM20608 ADC采样值

前言: 本文是根据哔哩哔哩网站上“正点原子[第二期]Linux之ARM(MX6U)裸机篇”视频的学习笔记,在这里会记录下正点原子 I.MX6ULL 开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了正点原子教学视频和链接中的内容。…

【高校科研前沿】新疆生地所陈亚宁研究员团队在GeoSus发文:在1.5°C和2°C全球升温情景下,中亚地区暴露于极端降水的人口增加

目录 文章简介 1.研究内容 2.相关图件 3.文章引用 文章简介 论文名称:Increased population exposures to extreme precipitation in Central Asia under 1.5 ◦C and 2 ◦C global warming scenarios(在1.5C和2C全球变暖情景下,中亚地区…

数学建模 —— 灰色系统(4)

目录 什么是灰色系统? 一、灰色关联分析 1.1 灰色关联分析模型 1.2 灰色关联因素和关联算子集 1.2.1 灰色关联因素 1.2.2 关联算子集 1.3 灰色关联公理与灰色关联度 1.3.1 灰色关联度 1.3.2 灰色关联度计算步骤 1.4 广义关联度 1.4.1 灰色绝对关联…

[AI]大模型训练成本到底有多大?

大模型成本到底有多大,大到太平洋装不下。 上图是早前统计的,目前比较流行的大模型的厂家、模型名称、参数级别和类型。 大模型的成本主要有三块,分别是训练成本、推理成本、储存成本。 大模型的成本确实主要涉及训练成本、推理成本和储存成…

Python 包安装及常用命令【python 入门】

背景: 近期看到一个项目,做微信只能机器人,服务是使用python搭建的,于是拷贝下来自己打算跑一跑,部署一下,可是自己又没有python的经验,于是各种查资料学习,跟着敲一敲,顺…

Signac|成年小鼠大脑 单细胞ATAC分析(1)

引言 在本教程中,我们将探讨由10x Genomics公司提供的成年小鼠大脑细胞的单细胞ATAC-seq数据集。本教程中使用的所有相关文件均可在10x Genomics官方网站上获取。 本教程复现了之前在人类外周血单核细胞(PBMC)的Signac入门教程中执行的命令。…

【机器学习】使用Stable Diffusion实现潜在空间搜索

1、引言 1.1 潜在空间的概念 潜在空间(Latent Space)是在机器学习和深度学习中一个重要的概念,它指的是用于表示数据的一种低维空间。这个空间编码了数据中包含的所有有用信息的压缩表示,通常比原始数据空间的维数更低&#xff…