目录
五、UFS协议栈
六、UFS技术演进与详解
1、UFS应用层
设备管理器
任务管理器
2、UFS传输层
3、UFS互联层
UFS协议—新手快速入门(一)【1-4】
五、UFS协议栈
UFS(Universal Flash Storage)协议是针对固态存储设备(如UFS存储卡)的接口规范,它由JEDEC(联合电子设备工程委员会)制定。UFS协议的设计初衷是为了提供一种高性能、低功耗的存储解决方案,以满足移动设备对存储速度和容量的需求。
UFS协议之所以被设计为四层结构,主要是为了满足以下几个方面的需求:
-
物理层(Physical Layer):这是UFS协议栈的最顶层,它负责处理如读写命令等存储操作。UFS应用层使用的是简化的SCSI命令集,这些命令由UCS(UFS命令集)生成。负责与存储设备的物理连接和电气特性,确保数据可以正确地在设备之间传输。
-
传输层(Transport Layer):传输层负责将应用层的命令和数据封装成UPIU(UFS Protocol Information Unit),并确保它们在设备和主机之间可靠地传输。处理数据的传输协议,确保数据在物理层之上可靠地传输。
-
协议层(Protocol Layer):在这一层,UFS使用MIPI UniPro规范,它支持数据的传输、错误检测和纠正、流量控制等功能。其定义了UFS设备的操作命令和数据结构,包括读写操作、块管理、错误处理等。
-
应用层(Application Layer):物理层由MIPI M-PHY规范定义,它负责在物理介质上传输电气信号,包括信号编码、速率匹配、电压级别等。与操作系统和应用层软件交互,提供文件系统和存储管理的功能。
这种分层设计使得UFS协议能够灵活地适应不同的硬件平台和应用场景,同时也便于实现标准化和模块化。每一层都有其特定的功能和职责,这有助于简化开发过程,提高系统的可维护性和可扩展性。
UFS协议栈的构建是借鉴和整合了现有的技术规范来实现其功能。这种集成不同组织定义的技术来创建新的标准的做法在技术发展中是相当常见的。
应用层:UFS协议栈的应用层并没有定义自己的原生命令集,而是采用了简化版的SCSI命令集,这些命令集由INCITS T10组织定义。SCSI(Small Computer System Interface)是一种广泛使用的存储设备接口标准,它定义了存储设备如何与计算机系统通信。
传输层:UFS的传输层(UTP,UFS Transport Protocol)是JEDEC(Joint Electron Device Engineering Council)自己定义的。这一层负责将应用层的命令和数据封装成UPIU(UFS Protocol Information Unit),并管理它们在UFS设备和主机之间的传输。
数据链路层:UFS协议栈的数据链路层基于MIPI(Mobile Industry Processor Interface)联盟的UniPro规范。UniPro是一个灵活的互连协议,支持多种通信接口,包括UFS。
物理层:UFS的物理层同样采用了MIPI联盟的M-PHY规范。M-PHY定义了电气和物理特性,如信号传输方式、电压级别等,以支持高速数据传输。
通过整合T10的SCSI命令集、MIPI的UniPro和M-PHY以及JEDEC自己的UTP,UFS能够为移动设备提供一种高性能、高可靠性的存储解决方案。这种集成方式使得UFS能够利用现有技术的优势,加速开发过程,并确保与现有生态系统的兼容性。
JEDEC的这种做法确实体现了一种高效的技术整合能力,它不是从头开始创建所有内容,而是通过集成和适配现有的技术标准来构建新的技术规范。这不仅节省了研发时间和成本,还确保了新技术能够快速融入现有的技术生态系统中。这种策略在快速发展的科技领域中是一种非常实用的方法。
六、UFS技术演进与详解
1、UFS应用层
在UFS协议栈中,应用层扮演着至关重要的角色,其主要功能如下:
-
UFS命令集:应用层定义了一套UFS命令集,这些命令用于控制UFS设备执行各种操作,如读写数据、擦除块、查询设备信息等。
-
设备管理器(Device Manager):设备管理器负责管理UFS设备的生命周期,包括设备的初始化、配置、状态监控和异常处理等。
-
任务管理器(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协议—新手快速入门(三)