它从来都不是一块存储——eMMC背后的另一层世界

它从来都不是一块存储——eMMC背后的另一层世界

什么是 eMMC

很久以前,人们对“存储”这件事,有一个简单到不能再简单的理解。
他们以为,数据就像写在石板上。
你写上去,它就在那里;你读出来,它就回来。
不吵不闹,不思不想。
但后来,人们发现,这块石板,其实会动。

eMMC,全名叫:
Embedded MultiMediaCard

听起来有点唬人,其实说白了:
👉 就是把“存储芯片”和“控制器”封装在一起的一种设备。
你可以把它想象成:

+----------------------+

| Flash Memory (NAND)  |

+----------------------+

| Controller (FTL)     |

+----------------------+
  • 上面一层,是用来存数据的 NAND Flash;
  • 下面一层,是一个小小的“脑子”。
EMMC

问题,就出在这个“脑子”上。

因为 NAND 这种东西,本身很麻烦:

  • 不能直接覆盖写
  • 擦除粒度很大
  • 每个块寿命有限

于是,人们不得不在它前面,加了一个控制器。
这个控制器负责:

  • 把逻辑地址映射到物理地址
  • 把随机写变成顺序写
  • 把磨损均匀分摊
  • 把坏块藏起来

这些能力,被统一称为:
👉 FTL(Flash Translation Layer)


BKOPS

到这里,一切看起来都很合理。
但真正的问题也恰恰在这里。

因为从这一刻开始:
eMMC 不再是“存储”,而是“设备”。

它开始:

  • 自己搬数据(Garbage Collection)
  • 自己调度擦写(Wear Leveling)
  • 自己修复错误
  • 自己决定什么时候忙、什么时候闲

在规范里,这一切被一个名字统称:
👉 BKOPS(Background Operations)
也就是——后台操作,用来保证性能和寿命。


于是,一个微妙的变化发生了

上层系统仍然以为:
我在写一块“死的存储”。

但实际上,它面对的,却是:
一台“活着的机器”。

这台机器会思考,会决策,也会——在你最不希望的时候,做它认为“必须做”的事情。
比如:
你正在启动系统,
👉它却突然去做垃圾回收。
你正在写一帧关键数据,
👉它却开始搬运旧数据。
你以为你在控制它。
👉其实,它一直在控制自己。

从那一天开始,这个误会,埋下了伏笔。
直到有一天,他们发现:
数据确实能写进去,但系统却越来越慢,设备却越来越短命。


写放大(Write Amplification)

后来,他们发现了一个问题:
文件系统认为“空闲”的块,在 eMMC 看来,依然是“已使用”。
为了写新数据,eMMC不得不“搬家”,再擦除。
于是写一次,变成写两次。

这个现象,有个好听的名字,叫:
写放大(Write Amplification)
听起来很优雅,实际上很残酷。


乱子从什么时候开始的?

当这台机器开始“自己干活”时,问题就来了。
它会在你不经意的时候:

  • 突然变慢(因为在做GC)
  • 卡顿(因为在搬数据)
  • 发热(因为在内部重排)

而你,一无所知。
就像一辆车:
你踩下油门,它却突然去“自检发动机”。

于是,工程师们做了一个决定。
这是一个转折点。


他们造了一层“管理者”

他们说:
既然eMMC是个会思考的机器,那我们就必须有人管它。

于是,这个角色诞生了:

+-----------------------------+

| Emmc Maintenance Manager    |

|-----------------------------|

| - health monitor            |

| - BKOPS scheduler           |

| - refresh controller        |

| - statistics collector      |

| - vendor abstraction        |

+-------------+---------------+

              |
              v

        eMMC driver 


这个东西,不写数据,不存文件。
它只做一件事:
👉 管理eMMC的“人生”


五个人,各司其职

这个“管理者”,其实是五个人。
他们各有分工。

1️. health monitor —— 看病的人

他不治病,只看病。
他关心这些:

  • 设备还能活多久
  • 坏块有没有变多
  • 写入是否过量

就像医生看体检报告。
他不参与工作,但他决定你能干多久。


2️. BKOPS scheduler —— 管时间的人

这是最关键的一位。
因为 BKOPS 这件事,本来是 eMMC 自己想做就做。
但现在:
不行,你得听我安排。
于是它说:

  • 系统空闲 → 做 BKOPS
  • 启动阶段 → 不准动
  • ignition off → 可以狠狠干

后台操作可以在空闲时间执行,调度的目标是避免系统卡顿。

于是,这个人存在的意义是:
👉 让“后台工作”,不再影响“前台体验”


3️. refresh controller —— 管记忆的人

NAND有个问题:
久不读写,数据会慢慢“遗忘”。
于是就需要 refresh:

  • 读出来
  • 再写一遍

就像反复默写单词。
他就是那个让记忆不遗忘的人。


4️. statistics collector —— 记账的人

这个人很低调,却最重要。
他记录:

  • 写了多少数据
  • 擦了多少次
  • BKOPS执行了多少

这些数据,会被:

  • 用来分析寿命
  • 用来判断异常
  • 用来做OTA策略

如果没有他,你只能“等死”。


5️. vendor abstraction —— 翻译的人

每个厂商的eMMC,都有自己的“方言”。
比如:

  • 指令不同
  • 状态不同
  • 能力不同

这个人,把他们统一成一种语言。
让上层不用关心:
👉 是三星,还是西数,还是长江存储。


他们之间的工作关系

你可以这样想:

应用:我只想写文件

          ↓

文件系统:我帮你分块

          ↓

Maintenance Manager:放心,我保证它不崩

          ↓

eMMC:我会自己活下去

这就是层次。


真正的变化(很重要)


以前:

eMMC = 存储

现在:

eMMC = 设备 + 行为 + 生命周期 + 风险

于是系统必须升级:

Storage → Storage + Management
编辑于 2026-05-25 · 著作权归作者所有
相关文章
手机的卡槽1和卡2槽有什么区别(网速,信号等等)吗?推荐一张tf卡(越便宜越好)?SD存储卡越用越慢?教你一招免费修复,瞬间省下上千元拍摄 4K 视频和高速连拍,应该选择哪种存储卡?属于闪迪的 2026:品牌焕新 + 新品爆发,存储进入更高速时代之前64G内存的价格是多少?我的同学看到内存条涨价后说“现在电脑内存条涨价就是饥饿营销,不买立省100%……”怎么看内存条涨价?我的同学看到内存条涨价后说“现在电脑内存条涨价就是饥饿营销,不买立省100%……”怎么看内存条涨价?我的同学看到内存条涨价后说“现在电脑内存条涨价就是饥饿营销,不买立省100%……”怎么看内存条涨价?曾经红极一时的手机存储卡,为何突然消失了?近期内存条价格算回调了吗?你们以往会拿来升级什么设备?我的同学看到内存条涨价后说“现在电脑内存条涨价就是饥饿营销,不买立省100%……”怎么看内存条涨价?【2026存储卡选购】移速(MOVE SPEED)的存储卡怎么选?TF、SD存储卡?我的同学看到内存条涨价后说“现在电脑内存条涨价就是饥饿营销,不买立省100%……”怎么看内存条涨价?16G内存条价格涨幅超3倍,组装一台电脑多花1500,涨价的原因可能有哪些?趁国补入电脑需注意什么?适配大疆Pocket 4的全能搭档|闪迪创作者TF高速闪存卡如何选择SD卡存储?容量、速度、寿命三步选对不踩坑我的同学看到内存条涨价后说“现在电脑内存条涨价就是饥饿营销,不买立省100%……”怎么看内存条涨价?涨价风刮到存储卡 但我不慌:6款高速存储卡简单聊工业级存储和普通消费级存储到底差在哪?