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

news2024/11/25 18:51:17

本篇旨在为初学者提供关于通用闪存存储(UFS)的快速入门指南。

目录

一、背景介绍

二、UFS

三、半双工和全双工

(1)半双工(Half-Duplex)

(2)全双工(Full-Duplex)

 四、芯片内部结构


一、背景介绍

UFS(Universal Flash Storage)的发展历史可以概括如下:

  1. 起源:UFS标准的起源可以追溯到2011年,由固态存储协会(JEDEC)制定,最初设计是为了替代eMMC(embedded Multimedia Card)标准1011。

  2. UFS 1.0:UFS 1.0在2011年诞生,但相较于eMMC并没有实质上的优势,因此并没有得到大规模的使用10。

  3. UFS 2.0:2013年9月,JEDEC发布了UFS 2.0,该版本提供了更高的链路带宽以提高性能,并扩展了安全功能10。

  4. UFS 2.1:2016年,JEDEC发布了UFS 2.1的通用闪存标准,UFS 2.1开始向UFS 2.0标准升级,其可选的HS-G3通道也逐渐成为了“必选”10。

  5. UFS 3.0:2018年1月30日,JEDEC发布了UFS 3.0版,该版本是为需要高性能、低功耗的移动应用和计算系统而开发的,使用了MIPI M-PHY v4.1和UniPro v1.8,具有更高的每通道11.6 Gbit/s数据速率10。

  6. UFS 3.1:2020年1月30日,JEDEC发布了UFS 3.1标准,相比于之前的版本,UFS 3.1更新了三个部分,包括Write Booster、DeepSleep和Performance Throttling Notifications10。

  7. UFS 4.0:UFS 4.0是该标准的最新迭代,于2023年正式发布,标志着存储技术的又一次重大飞跃。UFS 4.0在性能、能效和安全性方面均有显著提升,整合了MIPI M-PHY 5.0和UniPro 2.0技术,理论接口速度提升至每通道23.2Gb/s11。

UFS协议,由固态技术协会JEDEC制定,其发展始于2011年UFS 1.0版本的发布,旨在解决eMMC 5.1协议在传输速度提升上的局限性。尽管UFS 1.0在初始阶段并未对eMMC构成明显优势,但其架构的先进性为后续升级提供了广阔空间。随着UFS 2.1的推出,其在传输速率、数据吞吐量以及能效比等方面对eMMC形成了压倒性优势,确立了UFS作为未来存储技术主流的发展方向。

我们知道计算机系统的核心组件包括中央处理器(CPU)、随机存取存储器(RAM)和存储设备。CPU负责执行计算和控制操作,RAM提供临时数据存储,而存储设备则用于持久化数据存储。在移动设备领域,如智能手机,同样存在类似的三大组件:中央处理单元(CPU)、动态随机存取存储器(DRAM)和非易失性存储设备。

由于移动设备的紧凑性,其存储设备必须为电子存储介质,即闪存,以适应其空间限制,而无法采用机械硬盘(HDD)这类机械存储设备。固态硬盘(SSD)作为电子存储设备,使用闪存作为存储介质,与移动设备中的存储设备在技术上是一致的。

目前,智能手机已成为人们不可或缺的个人设备,对手机性能的期望也随之提高,包括处理速度、存储容量和系统流畅性。为了满足这些需求,手机制造商不断提升中央处理单元(CPU)的性能,增加动态随机存取存储器(DRAM)的容量,并采用更快速的非易失性存储解决方案。在CPU、DRAM和存储设备这三大核心组件中,存储设备往往是性能瓶颈。随着CPU和DRAM性能的显著提升,存储设备的性能提升也变得至关重要,以避免成为整体系统性能的限制因素。

随着闪存技术的不断进步,无论是个人电脑还是智能手机,其存储设备的速度都在显著提高。在个人电脑领域,硬盘从机械硬盘(HDD)向固态硬盘(SSD)转变,进一步从SATA接口的SSD发展到使用PCIe接口的NVMe SSD,实现了存储速度的飞跃。在智能手机领域,存储介质也经历了从Secure Digital(SD)卡到嵌入式多媒体卡(eMMC)再到通用闪存存储(UFS)的演进,其中UFS因其高速性能已成为高端旗舰手机的标准配置。

闪存(Flash Memory),作为一种非易失性电子存储介质,以其芯片形态存在,具有体积小、重量轻、功耗低等优点,非常适合用于便携式设备如智能手机和USB闪存驱动器。闪存的读写速度在性能优化后远超传统的永久性存储介质,如磁性硬盘和光刻光盘。基于闪存技术的固态硬盘(SSD)因其快速的读写性能,已成为消费级市场中速度最快的存储解决方案之一。

在智能手机领域,闪存通常被错误地称为ROM(Read-Only Memory,只读存储器),尽管实际上它们是可读写的。这种误称源于历史习惯,类似于个人计算机领域将所有永久性存储器统称为磁盘。智能手机中的闪存是集成了主控制器和存储颗粒的嵌入式芯片,根据其协议和接口的不同,主要分为两类:嵌入式多媒体卡(eMMC)和嵌入式通用闪存(eUFS),后者通常简称为UFS。这些闪存产品通常带有数字后缀,表示其遵循的协议版本号。对于普通消费者而言,只需了解UFS在性能上普遍优于eMMC,且在相同类型的闪存中,数字后缀越大,性能越优。

二、UFS

UFS,这位存储界的超级马拉松选手,自从它在2011年的起跑线上亮相以来,就一直在以闪电般的速度刷新着记录。不仅拥有高速串行接口这样的"超跑"引擎,还搭载了全双工操作的"双涡轮加速器",让读写操作可以同时进行,比起那些还在半双工道路上慢慢悠悠的eMMC来说,UFS简直就是在高速公路上飙车。

而UFS标准,更是集成了高级命令队列多线程技术这样的"智能导航系统",让数据处理速度和存储效率得到了质的飞跃。这就像是给UFS装上了一台超级大脑,让它在数据赛道上能够精准超车,轻松应对各种复杂的路况。

到了UFS 4.0这一代,它就像是穿上了喷气背包,直接在存储技术的宇宙中来了个"星际穿越"。2023年的发布,不仅仅是一个新版本的推出,更像是一场科技界的"大爆炸"。UFS 4.0整合了MIPI M-PHY 5.0和UniPro 2.0技术,速度提升到了每秒46.4Gb/s,这几乎让UFS 3.1看起来像是在跑步机上慢跑。这样的速度,让5G时代的高速数据传输和低延迟应用就像是在玩"过家家"。

UFS 4.0就像是存储界的"超级英雄",不仅速度快得让人眼花缭乱,而且还能效高、安全性强,简直是科技界的"全能战士"。未来的移动设备,如果搭载了UFS 4.0,那就是装备了最先进的"科技武器",无论是在数据赛道上,还是在性能战场上,都将所向披靡。

UFS之所以能够成为存储界的"速度之王",主要得益于以下几个关键因素:

  1. 差分串行传输:UFS采用了差分信号传输方式,这种传输方式就像是高速公路上的"双车道",可以大大提高数据传输的稳定性和抗干扰能力。相比之下,eMMC的并行传输就像是"单车道",一旦遇到干扰,就容易发生"交通堵塞"。

  2. 串行传输:UFS的串行传输方式允许使用更快的时钟频率,这就像是给数据传输装上了"涡轮增压器",让数据传输速度得到了极大的提升。而时钟信息嵌入数据流中的设计,更是让UFS在高速传输时能够保持信号的完整性和准确性。

  3. 多通道数据传输:UFS支持多通道数据传输,最多可以支持两个通道。这种设计就像是给UFS提供了"多任务处理"的能力,可以在成本、功耗和性能之间做出灵活的取舍,满足不同设备的需求。

  4. 全双工操作:UFS的全双工操作模式,意味着读写操作可以同时进行,这就像是给UFS装上了"并行处理器",大大提高了数据的处理速度和效率。而eMMC的半双工模式,就像是单核处理器,读写操作需要排队等待,效率自然不如UFS。

这些数据表明,随着UFS版本的升级,其单通道最大带宽和最大有效带宽都有显著提升,这反映了UFS技术在数据传输速度上的持续进步。

三、半双工和全双工

(1)半双工(Half-Duplex)

  • 定义:半双工是一种通信模式,其中设备可以发送和接收信号,但不能同时进行发送和接收。通信是交替进行的,要么是发送要么是接收。
  • 例子:传统的对讲机就是半双工通信的例子,用户可以按下一个按钮来发送消息,松开按钮则可以接收消息。
  • 特点
    • 成本较低:实现半双工通信的设备通常成本较低。
    • 简单:技术实现相对简单。
    • 效率问题:由于不能同时发送和接收,通信效率可能较低。

(2)全双工(Full-Duplex)

  • 定义:全双工是一种通信模式,其中设备可以同时发送和接收信号,无需等待当前操作完成。
  • 例子:现代电话系统就是全双工通信的例子,通话双方可以同时说话和听对方讲话。
  • 特点
    • 效率:全双工通信可以提高通信效率,因为数据可以连续不断地双向流动。
    • 复杂性:技术实现相对复杂,可能需要更高级的硬件和软件支持。
    • 带宽要求:全双工通信通常需要专用的发送和接收通道,因此对带宽有更高的要求。

在UFS(Universal Flash Storage)和eMMC(embedded MultiMediaCard)的上下文中,UFS支持全双工操作,这意味着它可以同时进行读写操作,从而提高数据传输的效率和速度。相比之下,eMMC通常支持半双工操作,读写操作不能同时进行,这限制了数据传输的效率。

想象一下你和你的朋友在公园里聊天:

半双工就像你们俩聊天时,一次只能有一个人说话。如果你想说点什么,你的朋友就得停下来听你说。同样,如果你朋友想说,你就得安静下来听。你们不能同时说话,因为这样谁也听不清谁。这就像是走一条单行道,每次只能有一个方向的交通流动。

全双工则像你们俩可以同时说话,而且都能听到对方在说什么。这就像是有两条并行的道路,一条用于去程,另一条用于返程,所以交通可以双向同时流动,没有干扰。

在技术领域,半双工和全双工描述的是设备如何发送和接收数据:

  • 半双工:设备一次只能发送数据或者接收数据。就像你们轮流说话,设备必须等待当前操作完成后才能开始另一个操作。
  • 全双工:设备可以同时发送和接收数据。就像你们可以同时说话并听到对方,设备可以同时进行数据的读写操作,大大提高了效率。

 四、芯片内部结构

上图展示了一个简化的系统架构,其中包括了CPU(中央处理器)、SRAM(静态随机存取存储器)、UFS(通用闪存存储)接口以及闪存控制器。

1、CPU(中央处理器):

  • CPU是整个系统的大脑,负责执行程序指令和处理数据。
  • 它通过各种接口与系统中的其他组件进行通信。

2、SRAM(静态随机存取存储器):

  • SRAM是一种高速缓存存储器,通常用作CPU的一级或二级缓存。
  • 它为CPU提供快速的数据访问,以提高系统的整体性能。

3、UFS接口:

  • UFS接口是连接CPU和UFS存储设备的桥梁。
  • 它允许数据在CPU和UFS存储器之间传输,支持全双工通信,即同时进行读写操作。

4、闪存控制器:

  • 闪存控制器是管理UFS闪存存储器的组件,负责处理来自CPU的数据读写请求。
  • 它控制数据流,确保数据正确地存储到闪存中,或者从闪存中读取到CPU。

5、闪存:

  • 闪存是非易失性存储介质,即使在断电的情况下也能保持数据不丢失。
  • 在UFS系统中,闪存是主要的存储设备,用于存储操作系统、应用程序和用户数据。

整个系统的工作原理是:CPU执行程序并处理数据,需要读写数据时,通过UFS接口发送请求到闪存控制器,然后由闪存控制器管理数据在CPU和闪存之间的传输。SRAM在这个过程中起到快速缓存的作用,以减少CPU的等待时间,提高数据处理速度。

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

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

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

相关文章

走向图对比学习:综述与展望

【摘要】近年来,图的深度学习在各个领域取得了显著的成功。然而,对带注释的图形数据的依赖仍然是一个很大的瓶颈,因为它的成本过高且耗费时间。为了应对这一挑战,图的自监督学习(SSL)得到了越来越多的关注,并取得了重大…

[Linux] 进程概念

目录 1.冯诺依曼硬件体系结构 2.操作系统(OS) 3.系统接口 4.进程的概念 5.进程状态 6.四个其他概念 7.环境变量 8.进程地址空间 1.冯诺依曼硬件体系结构 在冯诺依曼体系结构中,计算机是由输入、输出、存储设备和中央处理器cpu组成的。图中体结…

CSS【常用CSS样式、盒子模型、定位、浮动 、扩展样式】--学习JavaEE的day46

day46 CSS 练习 页面实现&#xff1a; 分析&#xff1a; 未优化&#xff1a; 优化&#xff1a; 参考代码&#xff1a;&#xff08;包含样式优化–选择器CSS属性&#xff09; 先写上table方便实现&#xff0c;之后再去除即可 name没有服务器&#xff0c;可暂时不写 <!…

适合做应用的算法-鲸鱼优化算法(WOA)详细原理-附matlab代码

鲸鱼优化算法 (Whale optimization Algorithm, WOA)是 2016 年由 Mirjalili 等提出的一种新型启发式搜索算法,该算法通过模仿座头鲸在海洋中的捕食行为, 对鲸鱼群体搜索、包围和攻击过程模拟实现来寻找最优解. 与传统的元启发式优化算法相比, 鲸鱼优化算法具有操作简单, 需要设…

3D透视图模型转模型变形?---模大狮模型网

3D建模是数字艺术和设计领域中的重要技术&#xff0c;它可以为我们带来丰富多彩的视觉体验和创意表达。在本文中&#xff0c;我们将探讨一个引人注目的话题&#xff1a;3D透视图中模型转换是否会导致变形?通过深入探讨这个问题&#xff0c;我们希望能够帮助您更好地理解在3D建…

Docker安装文档

Docker安装文档 小有所得&#xff0c;生活便充满希望的微光&#xff1b;小有所望&#xff0c;未来便值得期待。小有知足&#xff0c;幸福便如影随形&#xff1b;小有可期&#xff0c;每一天都充满希望。在今日小满之际&#xff0c;感受这小小确幸&#xff0c;心中满是爱意&…

跟TED演讲学英文:Do schools kill creativity by Sir Ken Robinson

Do schools kill creativity? Link: https://www.ted.com/talks/sir_ken_robinson_do_schools_kill_creativity Speaker: Sir Ken Robinson Date: February 2006 文章目录 Do schools kill creativity?IntroductionVocabularySummaryTranscriptAfterword Introduction Sir…

FTP介绍

FTP 1、FTP—文件传输协议 文件传输协议&#xff08;File Transfer Protocol&#xff0c;FTP&#xff09;是用于在网络上进行文件传输的一套标准协议&#xff0c;它工作在 OSI 模型的第七层&#xff0c; TCP 模型的第四层&#xff0c; 即应用层&#xff0c; 使用 TCP 传输&…

攻防世界-mobile-easy-app详解

序言 这道题网上很多分析&#xff0c;但是分析的都是arm版本的&#xff0c;我选了arm64的来分析&#xff0c;arm64相比arm难度高一些&#xff0c;因为arm64编译器搞了inline优化&#xff0c;看起来略抽象 分析 这道题逻辑很简单&#xff0c;输入flag然后一个check函数验证&a…

av_dump_format经验分析,FFmpeg获取媒体文件总时长(FLV获取总时长的误区)

播放器有个功能&#xff0c;当用户打开视频时&#xff0c;需要读取媒体文件的总时长等信息&#xff0c;不巧的时&#xff0c;获取FLV时总失败&#xff0c;下面来具体分析下FLV和MP4获取总时长的原因和区别&#xff1a; 播放器有个获取MediaInfo的接口&#xff0c;功能如下&am…

9.5 Go语言入门(条件语句和循环语句)

Go语言入门&#xff08;条件语句和循环语句&#xff09; 目录四、条件语句和循环语句1. 条件语句1.1 if 语句1.2 if-else 语句1.3 if-else if-else 语句1.4 带初始化语句的 if1.5 switch 语句1.6 带条件的 switch1.7 多个条件的 case 2. 循环语句2.1 基本 for 循环2.2 省略初始…

C语言简要(四)

有没有好心师傅教教孩子逆向和pwn啊꒰๑ꀾ๑꒱ 数组 <类型> 变量名称[元素数量]; int grades[100]; double weight[20]; 元素数量必须是整数 C99之前&#xff1a;元素数量必须是编译时刻确定的字面量 是一种容器&#xff0c;特点是&#xff1a; 其中所以的元素具有相同的…

debian nginx upsync consul 实现动态负载

1. consul 安装 wget -O- https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg echo "deb [signed-by/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_r…

sh控制台输入文字多行 按“# ꧂ ꧁”结束

如果在Unix shell中输入多行文字&#xff0c;那么这样操作&#xff1a; 1. 打开您的终端&#xff08;Terminal&#xff09;。 2. 输入您的文字&#xff0c;每行文字后按回车键。 3. 当您完成输入所有文字后&#xff0c;输入“# ꧂ ꧁”然后按回车键&#xff0c;表示输入结束。…

人脸识别:基于卷积神经网络(CNN)分类思想的人脸识别系统

本文来自公众号 “AI大道理” —————— 项目配套视频课程&#xff1a; 平台&#xff1a;荔枝微课 链接&#xff1a;十方教育 项目地址&#xff1a;https://github.com/AIBigTruth/CNN_faces_recognition 之前很多人来询问这个项目怎么做&#xff0c;代码跑不起来&#…

Window GDI+ API有BUG?GetBounds测不准?

文章目录 GraphicsPath的GetBounds测不准&#xff1f;方法一&#xff1a;GetBounds ()实战 方法二&#xff1a;GetBounds(Matrix)实战 GraphicsPath的GetBounds测不准?实战 .NET 版本的问题&#xff1f;C也一样&#xff0c;不是.NET的问题怀疑人生MiterLimit惹得祸完美结果结束…

【Vue】Vue2中的Vuex

目录 Vuex介绍Vuex 中的核心概念 在vue2中使用Vuex安装 Vuex创建一个 Vuex Store在 Vue 实例中使用 Vuex编写 Vuex 的 state、mutations 和 actions在组件中使用 Vuex Vuex的核心State组件中获取 Vuex 的状态mapState 辅助函数对象展开运算符 Getter基本使用示例 通过属性访问通…

[协议]stm32读取AHT20程序示例

AHT20温度传感器使用程序&#xff1a; 使用i2c读取温度传感器数据很简单&#xff0c;但市面上有至少两个手册&#xff0c;我这个对应的手册贴出来&#xff1a; main: #include "stm32f10x.h" // Device header #include <stdint.h> #includ…

MQTT到串口的转发(node.js)

本文针对以下应用场景&#xff1a;已有通过串口通信的设备或软件&#xff0c;想要实现跨网的远程控制。 node.js安装 从 Node.js — Run JavaScript Everywhere下载LTS版本安装包&#xff0c;运行安装程序。&#xff08;傻瓜安装&#xff0c;按提示点击即可&#xff09; 设置环…

RabbitMQ - SimpleMessageListenerContainer的实现逻辑

RabbitMQ - SimpleMessageListenerContainer的实现逻辑 Queue&#xff08;队列&#xff09;&#xff1a;在 RabbitMQ 中用于存储消息的数据结构。生产者将消息发送到队列中&#xff0c;而消费者从队列中接收消息。 Connection&#xff08;连接&#xff09;&#xff1a;连接是应…