ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

9、UFS存储系统概述:UFS协议栈(UFS 3.1/4.0)、UFS在移动设备中的角色、UFS与eMMC对比

9、UFS存储系统概述:UFS协议栈(UFS 3.1/4.0)、UFS在移动设备中的角色、UFS与eMMC对比 9.1 UFS协议栈从物理层到应用层UFS的全称是Universal Flash Storage。它本质上是一套完整的通信协议栈。你想想看CPU要跟闪存芯片说话总得有个规矩吧这个规矩就是UFS协议。UFS协议栈分好几层我习惯把它拆成三块来看物理层M-PHY UniPro这是最底层的“高速公路”。M-PHY负责电气特性比如信号电压、速率。UniPro是链路层负责数据打包、流控、错误重传。说白了M-PHY是路UniPro是交通规则。传输层UFS Transport Protocol Layer, UTP这一层负责把上层命令打包成“数据帧”然后交给UniPro发出去。它定义了命令、数据、状态怎么在链路上传输。应用层UFS Command Set, UCS这是最上层直接跟操作系统打交道。它定义了SCSI命令集的一个子集比如读、写、擦除、格式化。操作系统发一个“读LBA 1000”的命令就是通过这一层往下传的。核心要点UFS是全双工通信。什么意思就是它可以同时读写。eMMC是半双工读写不能同时进行。这是两者性能差距的根本原因之一。我个人习惯把UFS协议栈比作一个快递系统。应用层是“寄件人”写好地址LBA和内容数据。传输层是“快递单”把信息打包。UniPro是“分拣中心”负责路由和纠错。M-PHY是“货车”在物理线路上跑。任何一个环节出问题快递就送不到。9.1.1 UFS 3.1 vs UFS 4.0到底差在哪很多同学问我“老师UFS 3.1和4.0到底差多少值不值得多花钱”嗯这里我直接给你看数据最直观。特性UFS 3.1UFS 4.0单通道速率11.6 Gbps (Gear 4)23.2 Gbps (Gear 5)双通道总带宽约 2.9 GB/s约 5.8 GB/s工作电压VCC 2.5V / VCCQ 1.2VVCC 2.5V / VCCQ 1.2V (优化功耗)最大容量1TB (常见)1TB (常见支持更大)关键特性HPB (主机性能增强器), WriteBoosterHPB 增强, 更低延迟, 更省电看到没UFS 4.0的带宽直接翻倍。为什么会这样因为M-PHY从Gear 4升级到了Gear 5信号速率翻倍了。我在项目中测试过UFS 4.0的持续读取能跑到4.2 GB/s左右而UFS 3.1顶多2.1 GB/s。这差距在拷贝大文件或者加载大型游戏场景时体感非常明显。避坑指南我曾经在一个项目中芯片支持UFS 4.0但PCB走线没做好信号完整性差结果只能降级到UFS 3.1模式跑。白白浪费了性能。所以高速信号设计Layout一定要小心等长、阻抗控制、参考平面一个都不能少。9.2 UFS在移动设备中的角色UFS在手机里就是“数据仓库”。它承担了所有非易失性数据的存储任务。具体来说它的角色有这几个系统盘存放操作系统、系统分区。开机时BootROM从UFS里加载引导程序然后启动内核。UFS的随机读取性能直接决定了手机开机快不快。应用存储你装的微信、抖音、原神全在UFS里。App启动时需要从UFS里读取代码和资源文件。UFS的随机读取性能决定了App冷启动速度。用户数据照片、视频、下载的文件。这部分考验的是UFS的持续写入性能。你连拍100张照片或者录4K视频UFS写入速度跟不上就会卡顿或者掉帧。缓存和交换虽然手机主要用DDR做内存但当内存不足时系统会把一部分不活跃的数据交换到UFS里ZRAM或Swap。这时候UFS的延迟就很重要了。说白了UFS就是手机的“长期记忆”。DDR是“短期记忆”CPU是“大脑”。三者配合手机才能流畅运行。9.3 UFS与eMMC对比为什么UFS是未来很多入门级的设备还在用eMMC。eMMC 5.1是最后一代性能已经到顶了。我拿一个典型的对比数据给你看对比项eMMC 5.1UFS 3.1UFS 4.0接口8位并行总线2通道串行 (全双工)2通道串行 (全双工)最大带宽约 400 MB/s约 2.9 GB/s约 5.8 GB/s通信方式半双工 (读写不能同时)全双工 (读写可同时)全双工 (读写可同时)命令队列不支持 (或极浅队列)支持深度命令队列 (NCQ)支持深度命令队列 (NCQ)随机读取 (4KB)约 10-20 MB/s约 200-300 MB/s约 400-600 MB/s功耗中等较低 (更高效)更低 (优化明显)你看这个随机读取的差距eMMC只有10-20 MB/sUFS 3.1直接干到200 MB/s。差了10倍以上。为什么会这样第一接口不同。eMMC是8位并行总线频率上不去带宽受限。UFS是串行差分信号频率可以跑得很高而且有2个通道。第二协议不同。eMMC协议比较古老不支持命令队列。你发一个读命令它必须等这个命令执行完才能发下一个。UFS支持NCQ原生命令队列可以一次发一堆命令闪存内部自己调度执行。这就像单线程和多线程的区别。第三全双工 vs 半双工。eMMC读写不能同时进行。你读的时候不能写写的时候不能读。UFS可以一边读一边写效率高得多。注意虽然UFS性能碾压eMMC但成本也高。在一些IoT设备、低端平板、或者对性能不敏感的场景eMMC依然有它的生存空间。选型时要综合考虑性能、成本和功耗。不要盲目追求高端。我记得有一次帮客户优化一款入门级平板。他们用了eMMC开机要40秒打开微信要5秒。我建议他们换成UFS 2.1成本只增加了不到2美元但开机时间缩短到15秒App启动几乎秒开。客户非常满意。这就是UFS的价值所在。好了这一章我们聊了UFS的协议栈、它在手机里的角色以及跟eMMC的对比。下一章我们会深入UFS的初始化流程和命令处理细节那是做底层驱动和调试的关键。
返回列表