只读分享解决方案文档原理方案设计📅 2026-10-14🔖 Rev 1.0⏳ 还有3日到期
🔧解决方案&应用市场分析 -> 原理方案设计 -> 电子设计&技术探讨 -> eMMC与UFS选型对比_技术探讨

eMMC与UFS选型对比_技术探讨

同系列 · 原理方案设计
扫码打开本页
微信扫码

eMMC 与 UFS 选型对比

接口级选型的判据、迁移代价与场景落点 —— 补齐介质选型之外的那一半决策 | 编制日期 2026-10-14 | 版本号 Rev 1.0

2 个接口
同为 eMMC NAND 介质,可装的接口不同
eMMC 8 位并行 / UFS 多 Lane 差分
6 个问题
接口选型真正要回答的东西
性能 / 功耗 / 成本 / 硬件 / 软件 / 供应链
多数项目
接口级选型的正确答案仍然是
eMMC:成本、功耗、软件、供应链四项占优
1 条主线
全文反复服务的那一个判断
瓶颈落在哪一项,接口就选哪一项
报告总结

介质层选型已经有一份《新兴存储技术对比与选型》讲清楚了:存进NOR、NAND 还是 DRAM,参数区要不要换成 FRAM。但那只回答了一半问题。同样是 eMMC NAND 介质,装在 eMMC 接口上和装在 UFS 接口上,成本结构、功耗表现、并发能力、软件投入与供应链风险完全不同——介质一样,系统的样子不一样。

这份文档只做接口级这一个决策:什么时候该继续用 eMMC,什么时候真的需要 UFS,以及「需要 UFS」这个结论是怎么被证明的。它不重复介质层的机制讨论,也不重复 eMMC 内部架构与 UFS 协议栈的细节,只在需要用到时给出结论并指回对应文档。核心命题只有一句:接口选型不是「UFS 更快所以选 UFS」,而是「这个项目的瓶颈和约束落在哪一项上」。

结论: eMMC 与 UFS 的选型,不是一个速度比较题,而是一个约束匹配题。 把项目需求拆成六项——性能、功耗、成本、硬件设计难度、软件投入、供应链—— 逐项看谁占优、哪一项是真正的瓶颈,答案就自己出来了: 多数项目的瓶颈不在带宽上,因此多数项目的正确答案仍然是 eMMC。 只有当「多队列并发」或「高带宽」确实被主控与业务同时需要、且软件投入与供应链能兜住时,UFS 才是更合适的选择。 文中所有量级描述仅用于建立相对概念,具体数值一律以正式 datasheet、JEDEC 规范与实测为准。

读者路径

  • 只想快速拿到结论:直接看第 12 章(十条结论 + 一页纸速查 + 十条误判)与附录 C(自查表),比通读全文更快。
  • 正在做选型评审:第 10 章(六步选型法)+ 第 9.7 节(场景决策矩阵)是最直接的两处工具。
  • 担心迁移代价:第 11 章(迁移与退路设计)+ 第 7.7 节(已有 eMMC 代码能否复用),这是决定「敢不敢选 UFS」的关键。
  • 硬件与 SI 负责人:第 6 章全章(原理图与 PCB 难度)+ 第 5.3 节(PCB 成本)。
  • 软件与 BSP 负责人:第 7 章全章(软件与系统集成成本)+ 第 11.2 节(迁移易错点)。
  • 想理解「为什么差这么多」:第 2 章(架构差异)+ 第 3 章(带宽的三个乘数),后续所有章节都建立在这两章之上。

1. 为什么还要再做一次接口级选型

这一章不比较 eMMC 与 UFS 的好坏,只解释一件事:介质选型已经做完之后,为什么接口这一层仍然需要单独做一次决策,以及它在项目流程里到底发生在哪一步。

1.1 介质选型解决不了的问题

介质选型回答的是「数据存进哪种存储器」。它的输入输出都很明确:输入是容量、寿命、写入强度、单位成本,输出是介质类型。介质选型一旦定下来,结论通常是稳定的——需要大容量就 NAND,需要频繁改写的参数区就换一种介质。

但介质选型的输出没有回答「主控用什么方式访问这块介质」。而访问方式并不是介质的一个属性,它是独立的一个设计决策。举个具体的对照:

  • 同一份系统设计,把大容量分区放在 eMMC 上、把高频小分区放在 eMMC 上,是可行的;换成大容量在 UFS、高频小分区也在 UFS,也是可行的。
  • 但这两者的主控选型、原理图复杂度、PCB 层数、软件工作量、认证范围全都不同,而且这些差异往往比介质本身的差异更大。
  • 更关键的是:介质选型的结论不随接口变化而变化,接口选型的结论却随约束变化而变化。介质选型是「一次定死」,接口选型是「必须随项目约束走」。
同样是这块 NAND,接口不同之后发生的变化eMMC 接口上的表现UFS 接口上的表现对项目的影响
可达带宽单通道串行传输,量级较低多 Lane 差分叠加高 Gear 档位,量级高出一个台阶决定大文件读写与多摄并发是否跟得上
并发模型以单任务串行为主,CMDQ 可部分缓解多队列并发,读写可并行、可乱序返回决定多线程负载下是否互相排队
主控侧硬件成本单路 PHY,SI 约束相对宽松多 Lane 差分 PHY,阻抗与长度匹配要求高决定主控选型与原理图难度
软件投入命令家族精简,驱动模型清晰协议栈分层多,需处理队列、流控与错误恢复决定 BSP 与驱动的工时
PCB 成本布线密度低,层数与面积友好差分对密集,需更多层数与更严格的 SI 仿真决定板级成本与改板概率
可获得性与二供可选料号多,普遍容易采购料号集中在少数平台,可获得性需逐项确认决定长期供货风险
认证与合规路径成熟,资料现成认证项更多,需逐项评估决定量产时间与费用
介质选型做对,不等于方案就成立

最常见的失败模式是:介质选型讨论得很充分,接口部分只用一句「UFS 更快,用 UFS」带过。到了原理图阶段才发现 PHY 不好布线,或者到了软件阶段才发现整套驱动都要重写。接口选型不是一个可以推迟到后期决定的细节,它和介质选型是同一次决策的两个侧面——只不过大家习惯先想介质,因为介质更熟悉。

1.2 接口选型在项目里的真实位置

接口选型发生在项目流程的哪一步,直接决定了它有多少调整余地。下面的时序表按「决定的时间点」排列,越靠上的阶段改动代价越小。

项目阶段此时关于接口能做什么决定改动代价为什么是这个代价
需求定义只能提出带宽、容量、功耗的量级要求几乎为零此时还没有任何器件被锁定
介质选型决定存储介质与容量档次低介质可换,同接口换料较容易
接口选型决定接口类型,进而约束主控与软件架构高它同时锁定了主控、原理图与软件三层
主控选型确认主控是否带对应控制器、是否满足并发需求很高换主控等于重做硬件与软件两套
原理图与 PCB只能在既定接口下做布线与SI 设计极高改接口等于改板
样机与软件调试只能就现有接口做优化极高软件已成型,改接口等于重写驱动

关键结论是:接口选型必须发生在主控选型之前。而实际上它常常被放到主控选型之后,因为很多项目的起点是「先定主控,再看存储」。这种顺序在介质层面没问题,在接口层面几乎必然导致返工——主控的存储控制器是它选型时就已经定死的。

反过来看这件事

如果接口选型先行,会得到一条更严的约束链:先由业务定接口 → 再由接口定主控 → 再由主控定其余外设。这条链的好处是每一步都在做加法;反过来做,每一步都在做减法。这条顺序上的差异,是本文全部方法论的起点。

1.3 本文要回答的六个问题

接口选型要落到具体决策,需要六个问题有答案。下面六个问题对应本文第 3 章到第 8 章的六段分析,也是第 10 章六步选型法的六个步骤。

接口级选型的六个问题:每一条都要有答案① 性能瓶颈落在哪一项带宽、并发、延迟② 功耗预算约束在哪待机、负载、唤醒③ 成本能承受多少投入物料、软件、认证④ 硬件设计难度能否兜住引脚、SI、层数⑤ 软件团队能力够不够驱动、协议栈、调试⑥ 供应链长期供货有没有底料号、周期、二供六个问题里,只要有一个问题的答案是「不确定」,就不该进入器件选型——先把它变成确定值。其中第①项最容易被高估:项目标称的峰值带宽需求,通常远高于真实业务的持续带宽需求。真正决定接口选型的往往是第③、⑤、⑥项——它们是硬约束,而性能多数时候只是偏好。
图 1 · 接口级选型的六个问题总览

这六个问题的顺序不是随意的:性能与功耗是「想要什么」,成本与软件是「能付出什么」,供应链是「能不能长期做下去」。三个「能」是硬约束,两个「想」是偏好。在硬约束面前,偏好必须让步——这是全文贯穿的判断原则。

1.4 本文与已有文档的分工

这个系列已经有几份文档覆盖了存储的介质层与架构层。本文严格限定在接口层,不重复它们的内容。下面这张表把三层分工写清楚,也说明本文在哪些地方会引用兄弟文档的结论。

层次回答的问题代表文档与本文的关系
介质层数据存进哪种存储器:NOR / NAND / DRAM / 新兴介质《新兴存储技术对比与选型》本文不重复介质机制,只说明介质相同是接口比较的前提
架构层(eMMC 侧)器件内部怎么组织:分区模型、可靠性机制、启动链《eMMC 内部架构与分区模型》本文第 7.3、7.4 节引用其分区与启动结论,不复述细节
架构层(UFS 侧)协议栈怎么分层:UTP、UniPro、M-PHY《UFS 协议栈与 UniPro / M-PHY》本文第 2、3、6 章引用其物理层与带宽结论,不复述细节
接口层(本文)主控与器件之间怎么传:选 eMMC 还是 UFS本文本文的独占范围:成本、功耗、软件、供应链、迁移代价的横向比较

把这个分工说清楚之后,本文的内容边界也就清楚了:凡是「为什么 eMMC 有六个硬件分区」「为什么 UFS 的 Gear 切换要重新训练」这类问题,本文一律只给结论并指回对应章节。本文真正花力气的地方,是那些两份文档都没有覆盖的东西——把两种接口放在同一张成本表、同一张功耗表、同一张软件工作量表上逐项比较。

如果你的问题是……应该去看不要在本文里找
eMMC 的硬件分区怎么划分、RPMB 怎么用《eMMC 内部架构与分区模型》接口层的成本与功耗对比
UFS 的 UPIU 有哪几种、队列怎么排队《UFS 协议栈与 UniPro / M-PHY》介质层的机制讨论
参数区该不该换成 FRAM 或 MRAM《新兴存储技术对比与选型》eMMC 与 UFS 的取舍判据
我的项目该选 eMMC 还是 UFS本文第 10 章 + 附录 C具体料号的推荐与报价
为什么我的带宽没跑满本文第 3.2、3.5 节 + 对应架构文档具体器件的规格参数

1.5 一张决策全景图

最后用一张图把全文的结构交代清楚:需求进来之后,先经过四层过滤,每一层都会淘汰掉一部分方案;能活到最后的才是真正的候选。图的最后给出本文的默认立场——在约束没有被证明之前,起点应该是 eMMC。

决策全景:四层过滤之后剩下的才是候选① 需求与约束带宽、功耗成本、软件② 介质层选型存进哪种存储器③ 接口层选型eMMC 还是UFS(本文)④ 落地校验主控、布线驱动、认证多数项目的起点eMMC 在成本、功耗、软件与供应链四项上占优需要 UFS 的少数场景并发与带宽被证明是瓶颈,且软件与供货能兜住四层里任何一层淘汰掉的方案都不会回来:介质层否决的,主控再好也救不回来;成本否决的,性能再好也上不了线。本文的重点在第③层——它是唯一一个「必须逐项论证、不能凭直觉」的层。
图 2 · 接口级选型的四层过滤与决策全景

这张图最该记住的是它的默认位置:多数项目在第③层应该落在左边的eMMC 上。右边的 UFS 需要走完一整套论证才配得上——不是因为 UFS 不好,而是因为它在多数项目的约束条件下并没有优势。

2. 回顾:eMMC 与 UFS 的架构差异

这一章只回顾两者架构上最影响选型的差异,不展开细节。所有机制层面的展开都在兄弟文档里,这里只保留做选型判断所必需的那一层结论。

2.1 物理层:单路 vs 多 Lane 差分

物理层是两者差异最大、也最直接决定硬件难度的地方。eMMC 在单路上跑一组信号,时钟与数据同向;UFS 在多条 Lane 上跑差分信号,每条 Lane 都是双向的。

  • eMMC 侧:单组时钟加数据线,通常还有一组供器件使用的高速信号。设计难点集中在时序裕量上——走线长度、时钟抖动、信号完整性都要照顾,但线路数量有限,逐条可控。
  • UFS 侧:多条差分对并行,每条都是双向传输,需要长度匹配与阻抗一致性控制。设计难点从「时序」扩展到「多组差分的对称性」,板级约束明显变严。

物理层的差异直接传导到 PCB:差分对数量多、需要参考平面连续、层数与面积都可能上升。第 6 章会把这些要求逐条拆开。

物理层维度eMMCUFS对硬件设计的后果
信号类型单端为主,含时钟与数据线差分对,双向传输UFS 的等长与阻抗一致性要求更严
并行度单路多条 Lane 并行UFS 布线密度高,层数与面积约束更紧
速率提升方式提高时钟频率增加 Lane 数并提高 Gear 档位UFS 的带宽扩展路径不依赖单纯提频
训练与校准初始化阶段的时序与电压校准链路建立阶段的时钟恢复、均衡与失真补偿UFS 初始化流程更长,启动阶段失败点更多
参考时钟器件提供或主控提供,按模式而定由主机侧提供,需与参考源一致UFS 对参考源质量更敏感
信号完整性关注点时序裕量、串扰差分阻抗、共模噪声、串扰、损耗UFS 需要更完整的 SI 仿真

2.2 协议层:CMD 家族 vs UTP + SCSI 命令集

物理层之上,两者的协议结构完全不同。eMMC 走的是一条相对直接的路:主机发命令,器件回响应,命令语义由一组固定的命令码定义。UFS 走的是分层路线:请求被封装成统一的任务单元,经互联层传输,命令语义借用成熟的 SCSI 命令集。

对选型而言,协议层的差异意味着三件事:

  • 命令数量与覆盖面:eMMC 的命令家族覆盖了从识别、配置到块读写、擦除、缓存的完整流程,命令数有限且语义固定。UFS 的命令集继承 SCSI 语义,命令类型更多,组合更灵活,但理解成本也更高。
  • 错误模型的复杂度:eMMC 的错误处理围绕响应状态展开,相对线性。UFS 需要分层处理:链路层错误、协议层错误、逻辑单元级错误,每一层有不同的恢复路径与超时策略。
  • 传输的封装方式:eMMC 的命令与数据直接对应;UFS 把请求、数据、响应都封装成统一格式的任务单元,由 Tag 标识并允许乱序返回。这是并发能力的来源,也是软件复杂度的来源。
协议层维度eMMCUFS
协议结构命令 / 响应模型,命令码直接定义操作任务单元封装 + 互联层 + SCSI 命令集
命令覆盖面识别、配置、块读写、擦除、缓存、认证,命令数有限读写、缓存、同步、查询、格式化,命令类型更多
任务标识以命令序号跟踪执行与响应以 Tag 标识任务,支持乱序返回
错误模型围绕响应状态展开,路径相对线性链路层、协议层、逻辑单元三级,路径分层
流控机制基于响应与状态位的简单流控门控、凭据与速率调节构成的完整流控
软件侧影响驱动模型清晰,移植工作量小协议栈分层多,需理解队列与流控

2.3 并发模型:单任务串行 vs 多队列并发

这是两者在架构上最本质的差异,也是本文最看重的一项。它不是「快一点」的差异,而是「能不能同时做几件事」的差异。

eMMC 的基本模型是单任务串行:主机发一条命令,等它完成,再发下一条。设备侧的 CMDQ 机制可以在一定程度上缓解这一点——它允许把命令拆成任务并入队,让多个任务在设备内部并行处理。但即便如此,主机与设备之间的交互本质上仍围绕命令与响应的往返展开。

UFS 的模型从设计目标上就支持多队列并发:请求被放进不同的队列,设备可以并行处理不同队列中的请求,并按完成顺序返回。多个读请求不再互相排队,写请求也不再阻塞读请求。

并发维度eMMCUFS在什么场景下才被感知
基本模型单任务串行:命令与响应往返多队列并发:请求按队列提交任何有多线程负载的系统
读写能否并行受限于单任务模型,基本串行读写可同时下发到不同队列读写混合负载、数据库类负载
多个读能否并行需借助 CMDQ 才能部分实现天然支持多队列并行读并发查询、小文件随机读
完成顺序无 CMDQ 时按序完成;启用 CMDQ(5.1)后允许乱序返回允许乱序返回有超时与重试逻辑的系统
队列隔离能力有限,优先级手段较少可按请求源做优先级与服务质量配置多业务共存、需要 QoS 保障的系统
典型收益场景顺序读写、单线程负载多线程随机访问、多摄并发写入这一行是选型的关键判据
并发能力为什么比峰值带宽更重要

峰值带宽是一个「上限」指标,描述的是最好的情况能跑多快;而并发能力是一个「结构」指标,描述的是多个请求同时来的时候系统会怎样。对一个真实系统来说,后者更接近日常体验:一个顺序读一个大文件能跑到峰值带宽,而日常场景往往是很多小请求、读写混合、多个线程同时在动。

换句话说,如果你的负载本来就是单线程顺序读写,UFS 的并发优势你根本用不上,那你买到的只是更高的上限和一个更贵的 BOM。这是本文反复强调「瓶颈决定接口」的原因之一。

2.4 设备内部:控制器 + FTL 两者都有,差异在哪里

有一点必须澄清:eMMC 与 UFS 的器件内部都有控制器,也都有 FTL(闪存转换层)。两者都负责把逻辑块地址翻译成物理位置,都负责坏块管理、磨损均衡与 ECC,都有自己的缓存。所以「UFS 有控制器、eMMC 没有」是一个常见的错误认知。

真正需要区分的是内部资源与策略的量级:

  • 缓存与并发资源:UFS 器件侧通常配置更大的缓存与更多的内部并行单元,才能配合主机侧的多队列并发把带宽跑满;eMMC 器件的内部资源相对紧凑,收益主要来自主机侧的一次发对多。
  • 多逻辑单元:UFS 的一个设备可以包含多个逻辑单元,主机可以把它们当作独立的并行通道使用。eMMC 的分区模型是地址空间上的划分,不提供这种「独立并行单元」语义。
  • 主机与设备的分工:两者的可靠性责任都在器件内部的 FTL 上,主机侧不需要自己管坏块与磨损均衡。这一点两者相同,是「都需要 eMMC / UFS 级别的软件栈」这一事实的根源。
器件内部职责eMMCUFS说明
逻辑到物理地址转换器件内 FTL 负责器件内 FTL 负责两者相同,主机侧都不需要做磨损均衡
坏块管理器件内负责器件内负责两者相同,主机侧只看到逻辑地址
ECC 与纠错器件内负责器件内负责两者相同,错误以逻辑层结果上报
内部缓存规模相对紧凑规模较大,配合主机多队列这是并发能力差异的一部分来源
内部并行单元较少较多决定器件侧能否吃满主机侧并发
逻辑单元划分分区是地址空间划分,无独立语义多个逻辑单元,可作独立并行通道UFS 可以把存储拆成两条并行路径
健康度可观测性有设备内部状态寄存器可读有对应的健康度查询手段两者都有,字段语义不同

2.5 差异带来的能力边界对照

把前面四节的差异汇总成一张对照图,横轴是六个选型维度,纵向是两种接口的典型表现。这张图的用途只有一个:让「UFS 更强」这句话落到具体维度上,而不是停在印象里。

架构差异落到选型维度上的能力边界对照对照维度eMMC 侧的能力边界UFS 侧的能力边界物理层并行度单路,线路少优势在成本、功耗与软件多 Lane 差分,可扩展优势在并发、带宽与扩展并发模型单任务串行为主优势在成本、功耗与软件多队列并发,可乱序返回优势在并发、带宽与扩展命令语义命令码固定,范围有限优势在成本、功耗与软件SCSI 语义,类型更多优势在并发、带宽与扩展错误处理单层路径,线性恢复优势在成本、功耗与软件三级分层,路径较多优势在并发、带宽与扩展可获得性料号多,容易采购优势在成本、功耗与软件集中在少数平台优势在并发、带宽与扩展没有一行是「全面领先」:UFS 领先的是中间三行,eMMC 领先的是最后两行,而最下面那行往往最难绕开。本表描述的是架构带来的能力边界,不是器件规格;具体量级以正式 datasheet、JEDEC 规范与实测为准。
图 3 · 架构差异在六个选型维度上的能力边界对照

2.6 本章只讲结论,细节指向兄弟文档

这一章的每个结论背后都有一份完整的展开文档。这里把「结论 → 该去哪读」列成一张索引,方便按需跳转,避免在本文里重复一遍机制细节。

本章的结论背后的机制细节在哪一节文档
物理层多 Lane 差分带来并行与布线约束M-PHY 的物理层构成、Lane 与 Gear、训练与校准《UFS 协议栈与 UniPro / M-PHY》
带宽的三个乘数如何作用带宽计算的物理基础、Gear 切换的代价《UFS 协议栈与 UniPro / M-PHY》
UTP 任务单元与 Tag 机制任务单元模型、UPIU 种类、排队与调度《UFS 协议栈与 UniPro / M-PHY》
SCSI 命令集的语义差异为什么用SCSI 命令集、与 CMD 家族的语义映射表《UFS 协议栈与 UniPro / M-PHY》
CMDQ 能部分缓解单任务串行的局限CMDQ 的核心思想、队列深度取舍、收益条件《eMMC 内部架构与分区模型》
eMMC 的分区模型与启动链六类硬件区域、Boot 与 User 的地址映射《eMMC 内部架构与分区模型》
两者都有器件内控制器与 FTL内部控制器构成、NAND 数据通路、可靠性机制《eMMC 内部架构与分区模型》
本章真正要带走的一句话

UFS 的优势集中在并发与带宽扩展上,eMMC 的优势集中在成本、功耗、可获得性与软件成熟度上。这两组优势没有交集,所以「哪个更好」这个问题本身是错的——正确的问题是「我的约束落在哪一组优势上」。第 3 章到第 8 章,就是把这六项逐一展开。

3. 带宽与性能:量级差异从哪里来

这一章回答第一个问题:UFS 比 eMMC 快,究竟快在哪里。本章的结论是——差异来自三个可以分别计算的乘数,而不是来自「UFS 本身更快」这种笼统判断。

3.1 带宽的三个乘数

无论是哪一种接口,带宽都可以拆成三个乘数相乘:Lane 数(或通道数)× 每 Lane 的速率档位 × 能同时在途的请求数。eMMC 与 UFS 的差别,是这三个乘数分别取不同值的结果,而不是某一个「更快」的属性。

  • Lane 数:eMMC 是单路,本质上只有一条通道。UFS 是多条 Lane 并行,可以按需要配置。这是最直接的扩展维度——加 Lane 比提高单Lane 速率更容易,也更省功耗。
  • 速率档位:两者都有各自的档位体系。UFS 的档位称为 Gear,每一档对应一组速率参数;eMMC 也有对应的速率模式。Gear 越高,Lane 内的传输越快,但信号完整性要求也越高。
  • 并发度:这是最容易被忽略、却往往最关键的一个乘数。eMMC 的基本模型是单任务串行,能同时在途的请求数很小;UFS 允许多个请求同时在途,并且可以乱序返回。

把三者放在一起看,结论就清楚了:eMMC 的并发度上限是结构性的,短期无法靠器件升级改善;UFS 的带宽上限则是一个可以在同一接口上逐档提升的量。这意味着「要不要 UFS」这个问题,很大程度上等价于「我要不要并发」。

乘数eMMC 侧的情况UFS 侧的情况能否在项目上后期调整
通道数单路,结构上就是一条多条 Lane 并行,可配置不能,取决于接口选型
速率档位有速率模式,但档位数量有限Gear 档位体系,档位更多部分可调,但需重新验证时序与 SI
并发度基本模型为单任务串行,CMDQ 可部分缓解多队列并发,天然支持多请求在途不能,是架构层面的固有差异
器件内部并行度内部资源相对紧凑内部缓存与并行单元规模较大不能,取决于器件内部实现
有效带宽折扣折扣来自协议往返与命令开销占比高折扣较小,但受队列配置影响可通过调优改善,但有上限

3.2 有效带宽与峰值带宽的差距

器件标称的是峰值带宽——在最理想的访问模式下、忽略所有开销的理论上限。业务实际拿到的是有效带宽。两者的差距来自几个固定开销:

  • 协议往返开销:每一次请求都要经过封装、排队、传输、解封装的过程。请求越小,这一比例越高。
  • 命令与元数据开销:即便数据本身连续传输,命令与状态仍然要单独占用通道。
  • 设备内部处理:数据到了器件之后还要经过内部缓存与FTL 的处理才能落到NAND,这段延迟不算在接口带宽里。
  • 主控侧处理:主控的控制器、DMA、内存带宽都是共享资源,接口带宽跑满时它们可能先成为瓶颈。

这里有一个重要的工程结论:差距的比例与请求大小强相关,小请求场景下协议开销占比急剧上升。所以用大文件顺序读写测出来的带宽,不能代表小请求随机访问场景的真实体验。

带宽口径怎么测出来的偏乐观还是偏保守适合用来回答什么问题
峰值带宽忽略协议与设备开销的理论上限明显偏乐观两种接口的能力天花板在哪
顺序大块带宽连续大块读写,摊薄协议开销偏乐观拷贝类、顺序类负载的上限
随机小块带宽小块随机读写,协议开销占比高接近真实小文件与随机访问类负载
混合负载带宽读写混合、多线程并发最接近真实真实业务体验的近似
并发饱和带宽逐步提高并发直到性能不再提升偏乐观接口的并发能力上限
最容易被拿来误导决策的那个数字

几乎所有对比都会用「大文件顺序读写」的带宽来说事。问题是:大文件顺序读写恰好是两种接口差距最小、也最不需要 UFS 的场景。eMMC 在这个场景下已经能跑到它峰值的大部分,UFS 剩下的优势在总成本面前往往不值得。

反过来,小文件随机读写与多线程混合负载才是差距最大的场景,也是真正体现 UFS 价值的场景。所以看任何对比之前先问一句:这个数字是在什么访问模式下测的?测完之后再问:我的负载像不像这个模式?

3.3 小数据块场景下的实际表现

小数据块是接口差异被放大到最大的地方。原因有三层叠加:

  1. 协议往返的固定成本按请求计。一个请求无论带多少数据,都要完整走一遍封装、排队、响应流程。数据只有几 KB 时,这套固定流程的占比就很高。
  2. 并发能力决定固定成本能否被摊薄。eMMC 的单任务串行模型意味着这些固定开销无法重叠——一个请求的往返没结束,下一个请求只能等着。UFS 的多队列模型让多个请求的固定开销可以重叠。
  3. 队列深度决定延迟抖动。eMMC 在 CMDQ 深度不足时,队列一满就必须等待;UFS 可以通过队列配置让更多请求同时在途,抖动更小。

结果就是:在几 KB 到几十 KB 这个区间,两种接口的实际表现差距往往大于它们的峰值带宽差距。这也是第 3.1 节说「并发度比峰值带宽更关键」的实证来源。

访问模式eMMC 的表现特征UFS 的表现特征差距的来源
大文件顺序读接近峰值带宽峰值带宽更高纯速率差异,相对差距最小
大文件顺序写接近峰值带宽,受写入合并影响峰值带宽更高纯速率差异
小块随机读协议开销占比高,效率明显下降多队列摊薄开销,效率保持较好并发度差异,差距放大
小块随机写写入合并能力有限,效率下降明显可利用队列与写合并改善并发度与合并策略差异
读写混合读写互相等待,串行特征明显读写可分队列并行串行与并发的结构性差异
多线程并发线程间互相排队,扩展性差队列可按请求源隔离队列模型差异,最本质的一项

3.4 顺序与随机读写的表现差异

顺序与随机这个维度值得单独讲,因为它决定了「你的负载是什么形状」这个问题的答案,而负载形状往往比峰值带宽更能决定选型。

顺序访问对接口友好:命令开销被大块数据摊薄,设备内部也能做高效的合并与预取。随机访问对接口不友好:每次访问都要独立走完整流程,而且并发能力成为唯一指望。UFS 的优势在随机访问上更大,eMMC 的劣势在随机访问上更明显。

由此可以得到一个非常实用的判据:如果你的负载以顺序为主,两种接口的体验差距有限;如果随机访问占比高,差距会被显著放大。这个判据比任何绝对带宽数字都可靠,因为它直接对应业务的访问形状。

  • 顺序占比高:例如大文件拷贝、固件升级、数据批量导入、录像文件的顺序写入。这类负载下eMMC 的表现已经可用,UFS 带来的改善有限。
  • 随机占比高:例如数据库类访问、小文件频繁读写、多摄照片的元数据与图片混合写入、应用启动时的大量小文件加载。这类负载下并发能力成为关键,UFS 的优势才真正兑现。
  • 读写混合且并发:例如实时应用、系统更新与后台同步同时进行。这类负载下「读写能否并行」比「读能跑多快」更重要,只有 UFS 的模型能真正处理。

3.5 性能对比的三个陷阱

下面三个陷阱在实际的选型讨论里出现频率极高。它们共同的特点是:都能让人得出「UFS 性能远超 eMMC」的正确结论,但这个结论对决策毫无用处,甚至有害。

典型场景的带宽需求与两种接口的匹配关系场景负载形状带宽需求接口匹配判据固件升级与系统更新顺序大块为主低eMMC 足够写入量大但顺序,对并发无要求数据批量导入导出顺序大块为主低eMMC 足够带宽不是瓶颈,成本才是日志与配置读写小块且顺序低eMMC 足够数据量小,主机侧缓存即可应用启动与随机读小块随机读多中eMMC 可用并发收益有限,主控侧优化更划算多摄并发写入并发随机写高UFS 更合适并发写是关键瓶颈,顺序无优势边缘AI 模型加载顺序加随机混合高UFS 更合适大文件与随机访问同时存在需求分档是相对判断,不代表任何具体场景的实测带宽;「eMMC 足够」不等于慢,而是指不构成瓶颈。
图 4 · 典型场景的带宽需求与两种接口的匹配关系
陷阱它长什么样为什么结论对决策无用正确的问法
只看峰值带宽拿两颗器件标称带宽直接比大小标称是最理想模式的理论上限,忽略了负载形状的影响我的负载在什么访问模式下测出来的带宽是多少
默认测试块很大用几十MB 的连续读写做对比大块顺序恰好是两种接口差距最小的模式我的业务里随机访问占多少比例
不说明缓存状态对比时未说明是否命中器件缓存与主机缓存命中缓存的测试结果无法外推到冷启动与随机场景这个数字是冷态还是热态,是否可复现
把三个陷阱合成一句可执行的话

看任何对比数据之前,先确认三件事:访问模式是什么、并发深度是多少、缓存是冷是热。这三件事没说清的数字,无法支撑任何选型决策。这不是对数据来源的怀疑,而是因为带宽本身就依赖这三个条件——脱离条件谈带宽,得到的只是一个没有指向的数。

3.6 典型场景带宽需求与接口匹配

把前面几节的结论落到具体场景上,图4 给出了六类典型负载的匹配关系。这张图的用法是:先在横轴上找到自己的业务形态,再看它落在哪一档。

从图中可以看出一个规律:决定「UFS 是否有价值」的不是数据量大小,而是并发程度与随机程度。固件升级的数据量可能比多摄写入大得多,但它是纯顺序的,eMMC 完全够用;多摄写入的数据量不大,却是并发随机的,eMMC 就成了瓶颈。

3.7 一个务实的结论:性能富余不等于浪费,但也不该为峰值买单

关于「要不要买性能余量」这个问题,工程上有两种极端做法,都是错的:

  • 一种是完全不买余量:按当前实测峰值刚好选型,等到负载增长或模式变化时才发现成了瓶颈,而此时改接口的代价极高。
  • 另一种是为峰值买单:按器件标称峰值选型,结果业务里这个峰值永远用不到,多花的钱换来了用不上的能力。

务实的做法是按负载形状而不是按峰值选型:先确认负载是顺序还是随机、并发还是单线程、写入还是读取,然后判断这个形状落在哪个区间。落在「eMMC 足够」区间就用eMMC,即使余量不大;如果余量确实不够,也应该先考虑主控侧优化与软件侧调整,而不是立刻换接口。

本章结论

UFS 的性能优势集中在并发与随机访问上,顺序大块访问上优势有限。因此性能维度上的选型判据是「你的负载形状像不像并发随机」,而不是「你的数据量大不大」。数据量大但顺序的负载,eMMC 就能满足;数据量不大但并发随机的负载,才真正需要 UFS。

4. 功耗:待机、负载与系统级影响

功耗是少数几个「差一点就翻盘」的维度——它可能让一个性能上完全够用的方案变得不可接受,也可能让一个性能不足的方案变得可以接受。这一章把功耗拆成静态、动态、系统级三层来看。

4.1 接口自身的静态与动态功耗来源

接口功耗要先分成两类看,它们的处理方式完全不同。

  • 静态功耗(待机功耗):不传输数据时仍然在消耗的部分。包括接口电路的漏电、时钟电路、保持链路状态的电路、器件侧的待机电流。这一项决定了「放着不动时一天耗多少电」,对电池供电设备至关重要。
  • 动态功耗(负载功耗):传输数据时的额外消耗。包括差分对驱动、时钟抖动、信号切换、器件内部的译码与 FTL 处理。这一项主要由传输速率与并发度决定。

一个关键的结构性差异是:UFS 的动态功耗天然更高,因为多条差分对同时工作、速率档位更高、内部并行单元更多。这意味着在持续大流量传输时,UFS 会显著多耗电。

但静态功耗的结论往往相反,需要单独评估:UFS 的链路在低功耗状态下需要维持或重建,这部分开销在长时间待机场景下不容忽视。两者相加才是完整答案。

功耗类别主要来源eMMC 侧的倾向UFS 侧的倾向谁更优
接口静态功耗接口漏电、时钟维持、链路保持接口电路简单,待机电流较低链路需维持或重建,待机开销更高eMMC 明显占优
接口动态功耗差分驱动、信号切换单路驱动,总量较低多 Lane 同时工作,总量较高eMMC 占优
器件负载功耗内部译码、FTL 处理、缓存内部资源较紧凑内部并行单元多,耗电更高eMMC 占优
主机侧PHY 功耗控制器、时钟树、电源域单路 PHY,规模小多 Lane PHY,规模大eMMC 占优
唤醒与链路建立开销时钟恢复、均衡、训练流程短,开销小流程长,一次性开销明显eMMC 占优
主控整体功耗占比接口功耗在整机中的占比占比低,对整机影响小占比高,可能成为整机功耗的显著项eMMC 占优

4.2 负载功耗对比与量级

在持续负载下,功耗差异的来源非常清楚:UFS 同时工作的差分对更多、速率更高、器件内部并行度更高,这三件事都直接转化为功耗。eMMC 在这一项上没有悬念地占优。

但需要提醒一个容易被忽略的反向因素:如果 eMMC 的带宽不足导致主控侧不得不做更多的软件重试、更多的缓存补偿、或者更长的等待超时,这些额外开销会以主控侧功耗的形式部分抵消掉接口侧的节省。这不是说 eMMC 会更耗电,而是提醒:功耗要在系统层面算,不能只算接口本身。这一点在第 4.5 节展开。

4.3 低功耗状态:两者的休眠机制差异

低功耗能力对便携与电池供电设备是第一优先级的约束。两者的休眠机制有结构性差异:

  • 状态模型不同:eMMC 有明确的休眠与掉电状态划分,进入休眠后链路与内部电路基本静止,唤醒时从相对低的状态重新初始化。UFS 有自己的低功耗状态划分,链路在低功耗期间可能进入门控状态。
  • 唤醒路径不同:eMMC 的唤醒主要靠时钟与信号恢复,流程相对短且确定。UFS 的唤醒可能需要重新建立链路——时钟恢复、均衡、失真补偿这些步骤在唤醒时可能要重做。
  • 休眠期间的代价不同:休眠期间谁在耗电、耗多少,决定了「放着不动」这一段的续航。eMMC 的休眠电流通常更低。
低功耗维度eMMCUFS对用户的实际影响
休眠状态划分休眠、深度休眠、掉电等,划分清晰有低功耗与门控机制,链路可能需重建影响待机电流与唤醒成功率
休眠期静态电流通常更低链路维持或重建带来额外开销直接决定「放着不动」的续航天数
唤醒流程长度相对短且确定可能需要重新建立链路,步骤更多决定按键到可用的响应时间
唤醒失败风险流程简单,风险较低链路训练环节多,失败点更多决定低功耗相关的调试工作量
短时vs 长时休眠策略可分级,按待机时长选择受链路状态约束,分级较受限决定休眠策略的可设计空间

4.4 唤醒延迟对用户体验的影响

唤醒延迟是一个很主观但很重要的指标。技术上的差距通常不算大,真正的问题是「它是否被用户感知到」。

如果设备在待机后需要用户立刻操作(比如智能门锁、遥控器、可穿戴设备),唤醒延迟会直接进入体验指标。这时候 eMMC 的优势不只是省电,而是唤醒路径更短更确定。反过来,如果设备的交互节奏是「用户偶尔操作一次,中间间隔很长」,那么唤醒延迟即使存在也几乎无人察觉,此时功耗的绝对值更重要。

所以这一维度的判据不是技术指标,而是产品的交互节奏:交互越密集、越需要即时响应,唤醒延迟的权重越高。

4.5 系统级功耗账:接口功耗 vs 配套主控与外围开销

这是本章最重要的一节。前面几节讲的都只是接口本身,但真实项目里的功耗账要算整个链路:接口器件、接口的 PHY 控制器、时钟与电源树、以及接口选择带来的主控侧额外开销。

把这几项加在一起之后,会得到一个比「UFS 更耗电」更复杂的结论。UFS 在接口与 PHY 两项上确实更高,但它是唯一能提供并发与带宽的选项——当 eMMC 的带宽不足时,主控侧可能需要用软件重试、缓存补充或延长超时来弥补,这些额外开销同样要算进系统账。

图 5 把这套账的算法画出来:关键不是比较两个接口的功耗数字,而是比较「两条路径在完成同样工作时的总功耗」。

系统级功耗账:算的是完成同样工作时的总功耗路径 A:eMMC 走完全部工作器件静态功耗接口电路简单,待机电流低器件负载功耗单路驱动,负载功耗较低主控 PHY 与时钟树单路 PHY,规模小带宽不足的补偿开销软件重试、缓存补充、超时等待路径 B:UFS 走完全部工作器件静态功耗链路维持或重建,开销更高器件负载功耗多 Lane 同时工作,负载功耗高主控 PHY 与时钟树多 Lane PHY,规模明显更大带宽不足的补偿开销基本不需要这一项两条路径都要加上:主控自身功耗 + 时钟与电源树 + 域间隔离开销只有这些项全部相同,两条路径的功耗才可直接比较;主控不同则整个比较都要重做。待机为主的场景路径 A 明显更省接口静态功耗的差距被直接放大持续大流量场景路径 B 明显更耗多 Lane 与高动态功耗的差距被放大带宽不足的场景A 的补偿开销可能追平甚至反超必须把补偿开销计入,不能只算接口本图是账目结构示意,不代表任何实测功耗数值;实际结果必须按主控与器件实测数据核算。
图 5 · 系统级功耗账的构成与两条路径的比较方法
系统级功耗的组成项eMMC 路径下的量级倾向UFS 路径下的量级倾向说明
存储器件静态功耗较低较高接口电路规模与链路维持需求不同
存储器件动态功耗较低较高Lane 数与速率档位直接决定
主控侧控制器功耗较低较高PHY 规模差异,随主控集成度变化
时钟与电源树开销较低较高时钟源数量与电源域数量差异
带宽不足导致的主控补偿可能存在,成本不确定基本不需要这一项常常被漏算,是决策关键
软件层额外开销可能存在(重试、超时)基本不需要低并发时软件要做更多等待与补偿

4.6 电池供电场景的结论

电池供电场景的判据可以写得很直接:先算待机时长,再算负载时长,两项都要算。因为很多设备是「放着不动占绝大部分时间」,此时静态功耗的权重远高于动态功耗。

  • 待机时长占绝对主导的设备(传感器节点、备用状态的终端、可穿戴设备):静态功耗权重最高,eMMC 在这一项上占优,且这个优势会随待机时间的增加而放大。
  • 负载时长占比较高的设备(持续录制的终端、导航设备、在线终端):动态功耗权重上升,UFS 的额外功耗会直接体现在续航上,必须把补偿开销一并算清。
  • 两类占比都不极端的设备:功耗通常不是决定性约束,此时应该回到性能与成本维度做判断。
功耗维度最容易犯的一个错误

只算接口功耗,不算主控侧与软件侧的连带开销。这个错误在两个方向上都会出现:低估eMMC 的真实代价(忘了带宽不足带来的软件补偿),以及高估 UFS 的代价(忘了它省掉了软件补偿这一项)。两条路径必须用同一套账目、同一个工作负载来比较,否则结论不可信。

相关报告 · 交叉引用 2 器件全部展开收起 ▾
点开类目即可展开:具体文档 / 章节(点章直接跳转到该章)
eMMC
电路设计指南
软件设计规范
Linux 驱动开发
样机问题排查
量产问题排查