存储-1-各种存储接口设备

相关名词缩写:

HDD: Hard Disk Drive, 机械硬盘。
SSD: Solid State Drive, 固态硬盘。
SATA: Serial Advanced Technology Attachment, 串行高级技术附件, 接口标准。为机械硬盘设计,串行连接,最高 550 MB/s。
NVMe: NVM Express, 非易失存储器快速协议, 接口标准。为 SSD 设计,基于 PCIe,最高几千 MB/s。
JEDEC: Joint Electron Device Engineering Council, 固态电子器件工程联合委员会, 标准制定组织。
MMC: MultiMedia Card, 多媒体卡, 接口标准。和 eMMC 同为手机/平板设计,嵌入式多媒体卡,最高 200 MB/s。
eMMC: Embedded MultiMedia Card, 嵌入式多媒体卡, 存储设备。
UFS: Universal Flash Storage, 通用闪存存储, 接口标准。为移动设备/服务器设计,双通道全双工,最高 2900 MB/s。
F2FS: Flash-Friendly File System, 闪存友好文件系统, 文件系统。Linux 专属,针对闪存优化的日志结构文件系统。
TRIM: 无全称,是命令名, 清零/废块回收, 文件系统命令。是现代闪存设备必需的一个特性,否则性能会急剧下降。
NCQ: Native Command Queuing, 原生命令队列,设备功能。作用是允许存储设备内部并行处理多个I/O命令。
RAID: Redundant Array of Independent Disks, 独立磁盘冗余阵列, 存储架构。作用是用多个磁盘组建一个存储系统,提高可靠性和性能
IOPS: Input/Output Operations Per Second, 每秒输入输出操作数, 性能指标。比如 HDD 5000~7000, SATA SSD 50,000~100,000, NVMe SSD 500,000+, eMMC 1000~5000, UFS 3.0 50,000+。

接口演进:

SATA(2003年): 用于 HDD,后来也用 SSD --> NVMe(2011年): 专为 SSD 设计,更快 --> UFS(2011年): 专为手机存储设计,全双工.

文件系统演进:

ext4(2008年): 为 HDD 设计 --> F2FS(2013年): 专为闪存设计。


一、eMMC 和 SSD 和 UFS 的区别

eMMC、SSD 和 UFS 都是基于闪存的固态存储,但接口标准、性能和应用场景完全不同。详细对比如下:

1. 核心区别对比

-------------------------------------------------------------------------------------------------------------------
维度             eMMC                      SSD                                UFS
-------------------------------------------------------------------------------------------------------------------
接口标准         MMC/eMMC4.5/5.0           SATA或NVMe                         JEDEC UFS 2.0/2.1/3.0
物理接口         8~52针脚(嵌入式)          2.5寸盘位或M.2                     直接焊在主板/NAND芯片上
应用场景         手机,平板,U盘,SD卡(廉价)  笔记本,PC,服务器                   旗舰手机、高端平板、服务器
传输速度(理论)   eMMC5.0最高200MB/s        SATA最高550MB/s,NVMe最高3500+MB/s  UFS2.1最高860MB/s,UFS3.0最高2900MB/s
并行性           单通道                    单通道(SATA)或多通道(NVMe)         双通道读写独立
成本             最低                      中等                               较高
功耗             低                        中等                               低~中等
可靠性           一般                      较好                               较好
-------------------------------------------------------------------------------------------------------------------


2. 详细特性解析

2.1 eMMC(嵌入式多媒体卡)

(1) 特点:

a. 是 MMC 标准的嵌入式版本,直接焊在主板上;
b. 单通道,每次只能读或写(不能同时);
c. 寿命有限(擦写次数限制),尤其低端 eMMC;
d. 无 TRIM 支持或 TRIM 支持弱;
e. 内部控制器相对简单,没有高级队列管理;

(2) 性能指标:

a. 顺序读写:100~150 MB/s(eMMC 5.0);
b. 随机 IOPS:较低(1000~5000);
c. 延迟波动大,尤其在垃圾回收时卡顿明显;
d. 不支持 NCQ(Native Command Queuing),无法并行处理多个命令;

(3) 应用:预算手机、平板、廉价U盘、记忆卡。


2.2 SSD(固态硬盘)

(1) 特点:

a. 接口标准成熟,分为 SATA 和 NVMe 两种;
b. SATA SSD:用 SATA 接口(就像机械硬盘一样),单通道;
c. NVMe SSD:用 PCI Express 总线,4 条通道,支持多并行命令;
d. 企业级 SSD 有 RAID 模块、功耗管理、SMART 监控;
e. 支持完整 TRIM,智能垃圾回收;

(2) 性能指标:

a. SATA SSD:读写 550MB/s(接口限制);
b. NVMe SSD:读写 3500+ MB/s(PCIe 3.0),甚至 7000+ MB/s(PCIe 4.0);
c. 随机 IOPS:极高(10000~100000+,取决于型号);
d. 延迟低且稳定(通常 < 1ms);
e. 支持 NCQ,可并行处理多条命令;

(3) 应用:PC、笔记本、服务器、高性能存储.


2.3 UFS(通用闪存存储)

(1) 特点:

a. JEDEC 标准,专为移动和嵌入式设计;
b. 双通道架构:可同时独立进行读和写;
c. 直接集成在 SoC 或主板上(不是标准接口);
d. 支持 TRIM 和智能垃圾回收;
e. 内部命令队列深度高;

(2) 性能指标:

a. UFS 2.1:读 860 MB/s,写 260 MB/s(全双工,读写不互斥);
b. UFS 3.0:双向各 1450 MB/s(全双工,读写独立);
c. 随机 IOPS:高(20000~50000+);
d. 延迟低且一致(< 0.5ms);
e. 原生支持多命令队列,可并行处理;

(3) 应用: 旗舰手机(iPhone 12+、三星 S20+)、高端平板、企业服务器.


3. 性能对比实例

假设写入 1GB 大文件和读取 1000 个小文件:

------------------------------------------------------------------
操作                eMMC 5.0    SATA SSD    NVMe SSD    UFS 3.0
------------------------------------------------------------------
顺序写 1GB          ~8秒        ~2秒        ~0.3秒      ~1秒
随机读 1000 小文件  ~15秒       ~2秒        ~0.5秒      ~0.8秒
打开大应用          ~3秒        ~0.8秒      ~0.2秒      ~0.3秒
------------------------------------------------------------------


4. BFQ参数配置要区分它们的原因

关键原因:

-------------------------------------------------------------------------------------
特性               eMMC                  SSD                    UFS
-------------------------------------------------------------------------------------
寻道代价           无机械部分,但GC卡顿  无机械                 无机械
内部队列深度       浅(没有真正的 NCQ)    SATA 无队列,NVMe 有   深(原生高队列)
idle 是否有益      有弱益(防止 GC 冲突)  SATA=弱益,NVMe=害     害(浪费并行性)
最优 timeout_sync  中等                  SATA=中等,NVMe=高     极高
slice_idle 推荐    2~4ms                 0~2ms                  0
-------------------------------------------------------------------------------------

所以:
eMMC: 保守配置,slice_idle=2~4ms,防止垃圾回收打扰;
SSD: 激进配置(特别是 NVMe),slice_idle=0,充分利用并行性;
UFS: 最激进,slice_idle=0,充分利用双通道;


5. 快速识别设备类型

(1) 命令行判断

# Linux 上
cat /sys/block/*/queue/rotational    # 0=固态(包括eMMC/SSD/UFS)
cat /sys/block/*/queue/nr_requests   # eMMC通常很小,NVMe通常很大
lsblk -d -o NAME,SUBSYSTEMS          # 看是否有 nvme/mmc/ufs, 实测默认没有 lsblk
dmesg | grep -iE "ssd|nvme|ufs|emmc" # 启动日志里能看到, 实测没啥

# Android 上
adb shell cat /proc/device-tree/compatible | grep -iE "ufs|emmc"
adb shell dumpsys storaged           # 存储设备信息,实测有打印

(2) 速率判断

传输速度 < 200 MB/s --> eMMC
传输速度 200~600 MB/s --> SATA SSD
传输速度 > 1000 MB/s --> NVMe SSD 或 UFS

如果还需要进一步区分 NVMe vs UFS,看是否支持全双工(同时读写) —— UFS 能做到,NVMe 不能(在同一队列里)。


6. UFS存储 + F2FS文件系统

最优组合:UFS 存储 + F2FS 文件系统。UFS 提供硬件层的高性能接口,F2FS 在文件系统层针对闪存进行优化,两者都考虑了闪存的特性(写限制、GC卡顿等).

能独立调优吗?

-----------------------------------------------------------------------
参数           UFS                 F2FS
-----------------------------------------------------------------------
I/O 调度       无(由硬件控制)      Linux 可调(通过 I/O 调度器如 BFQ)
slice_idle     不适用              适用(F2FS 上 ext4 性能会不同)
GC 策略        硬件内部,不可控    可在 sysfs 配置
写放大         依赖硬件 FTL        由 F2FS LFS 优化
-----------------------------------------------------------------------

例如,UFS 设备上,F2FS 文件系统,要在 F2FS 上调优 BFQ:

# 查看当前 I/O 调度器
cat /sys/block/mmcblk0/queue/scheduler
# 切换到 BFQ
echo bfq > /sys/block/mmcblk0/queue/scheduler
# 调整 BFQ 参数(对 F2FS 上的所有文件操作生效)
echo 0 > /sys/block/mmcblk0/queue/iosched/slice_idle
echo 1 > /sys/block/mmcblk0/queue/iosched/low_latency

 

posted on 2026-06-24 11:18  Hello-World3  阅读(17)  评论(0)    收藏  举报

导航