高温老化后启动失败 · 数据保持 量产排查
编制日期 2026-09-21 | 版本号 Rev 1.0
XTX 芯天下 · FAE 现场技术文档 | NAND / NOR Flash 高温老化(HTOL / HTSL / HTRB)后启动失败与保持力 | 2026-09 版
测试标准编号(JESD22-A108 / A103 / A104 / A113、AEC-Q100)、Arrhenius 模型与加速因子公式以 JEDEC 公开文档与公开教材为准;具体 Ea、温度档、时长以器件 datasheet 与项目规格书为准。
- 本文讨论的是高温老化 / 回流 / 长期存储后的数据保持力失效,与「烧录器找不到型号」「烧录成功但不开机(板级)」是两件事。判别要点:烧录器能烧、能校验通过,但老化 / 回流后板子起不来,才是本文范围。
- 浴盆曲线、Arrhenius 加速因子、Bake 三档时长均为机制与工程估算方法,具体数值(Ea、加速倍数、等效年限)随工艺与器件高度相关,动手前逐条核对 datasheet / 可靠性报告。
- 涉及解除读保护 / 量产保护的操作在多平台会触发全片擦除,属不可逆动作,见相关专篇的危险操作提示。
一句话结论:高温老化(HTOL / HTSL)后启动失败,根因绝大多数是 数据保持力衰减——浮栅电荷随时间流失,使编程态电压落入读判决窗口之外, Boot 区或关键数据读不出 / ECC 纠不回。判定的第一动作永远是「老化前后读回比对」: dump 一致就转查板级(虚焊 / 电源 / 复位),dump 变了才按保持力方向定位与拦截。
这份文档解决什么
解决的是NAND / NOR Flash 经历高温老化、回流或长期存储后,上电启动失败、关键数据读错或 ECC 不可纠 这一类问题的定位与根治方法。覆盖 SPI NOR / SPI NAND / PPI NAND / SD NAND / eMMC 上电启动依赖的存储保持力场景。 全文按「机制 → 总流程 → 六类失效模式 → 速查 → 防复发 → 结案」组织,第 9 章可直接翻查,第 10 章是可直接落地的参数卡与抽检 SOP。
怎么用这份文档
- 先定性:老化前后读回比对。保留老化前镜像 dump 与哈希,失效后重新读回,差异分布(bit / 页 / 区)决定方向。
- 用第 2 章总流程收敛:先区分「板级问题」还是「保持力问题」,再判是老化失败还是工艺缺陷(浴盆曲线 + 加速模型)。
- 按失效画像翻对应类目:启动失败看第 3 章、ECC 不可纠看第 4 章、坏块看第 5 章、读干扰看第 6 章、retention 失效看第 7 章、Vth 漂移看第 8 章。
- 一次只改一个变量:升温条件、保持时长、ECC 强度、关键区多副本、spare 预留,每次只动一处重新验证。
- 用装板实启闭环:任何对策的最终判定,以「老化后装板跑通完整启动 + 关键功能 + 一次断电重启」为准。
1. 问题本质:数据保持力的物理基础
「老化后不启」这句话在现场被用得太泛。它可能是板级虚焊、电源热漂、复位不稳, 也可能是 Flash 里存的数据真的变了。本章先把现象还原成物理机制:讲清 Flash 是怎么「记住」数据的、 为什么高温会让它「忘记」、以及数据保持力失效会以哪几种形式暴露出来。 把机制讲清楚,后面六章的排查动作才有锚点。
1.1 闪存是靠「浮栅里的电荷」记事
无论是 NOR 还是 NAND,基本存储单元的本质都是一颗浮栅晶体管:在控制栅与衬底之间夹了一层 被氧化层包围、与外界绝缘的浮栅(Floating Gate)。往浮栅里注入电子 = 编程态(高阈值电压 Vth), 把电子放掉 = 擦除态(低 Vth)。主控读一个 bit,实际是量这个点位的 Vth 落在判决窗口的哪一侧。 数据能不能长期保持,取决于浮栅里的电子能在氧化层包围下待多久。
浮栅里的电荷看不见摸不着,唯一能定性它是不是流失的办法,是把器件在某个时刻读出来的数据存一份(dump + 哈希), 隔一段时间或经过老化后再读一份比对。两者一致,说明保持力没问题,要转去查板级; 两者不一致且错误集中在编程态,说明电荷真的在流失——这才是本文的保持力方向。
1.2 三类电荷流失机制
图 1 右下面板把高温老化后保持力失效的物理机制拆成三类,它们常常叠加发生:
| 机制 | 英文 / 缩写 | 对保持力的影响 | 典型表现 | 对应章节 |
|---|---|---|---|---|
| 浮栅电荷损失 | Charge Loss | tunnel oxide 微弱漏电,电子从浮栅逸出,编程态 Vth 降低 | 关键 bit 翻转、Boot 区读不出 | 第 3、7 章 |
| 热载流子退化 | HCI | P/E 时热载流子注入氧化层造缺陷,加速后续漏电 | 多次 P/E 后 retention 加速恶化 | 第 4、7 章 |
| 介质击穿 / 陷阱 | TDDB · Trap | 氧化层经时击穿、电荷陷阱填充/去陷阱使窗口不稳 | read margin 收窄、读干扰协同恶化 | 第 6、8 章 |
1.3 老化测试标准家族(先对齐术语)
「高温老化」在产线上常被笼统叫成 bake / burn-in,但可靠性测试里它们是几份不同的 JEDEC 标准, 应力条件与要暴露的失效完全不同。先对齐术语,后面才不会把「没加偏压的存储老化」和「加偏压的寿命试验」混为一谈。
| 标准 | 名称 | 应力条件 | 主要暴露的失效 | 本文对应关系 |
|---|---|---|---|---|
| JESD22-A108 | HTOL 高温工作寿命 | 85°C / 125°C + 动态偏压(通常 1000h) | 偏压下的经时失效、HCI 退化 | 第 4、6、8 章 |
| JESD22-A103 | HTSL 高温存储 | 无偏压、150°C(通常 1000h) | 纯热致电荷流失(保持力) | 第 3、7 章 |
| JESD22-A104 | 温度循环 TC | −65 ~ +150°C 反复循环 | 封装/互连疲劳、虚焊(板级) | 第 3 章板级鉴别 |
| JESD22-A113 | 预处理 PC | 吸湿 + 回流模拟 | 回流对器件的损伤、分层 | 第 3、7 章 |
| AEC-Q100 | 汽车级应力 | Grade 0~3 温度档 + HTOL/TC/PC 组合 | 车规全温域可靠性 | 全篇 |
AEC-Q100 把车规器件按工作环境温度分成 Grade 0 ~ 3(另有 Grade 4 商用): Grade 0:−40 ~ +150°C;Grade 1:−40 ~ +125°C;Grade 2:−40 ~ +105°C;Grade 3:−40 ~ +85°C。 高温老化后启动失败在汽车、工业场景最敏感,因为使用温度本就接近加速应力的低端,保留量本就最薄。
1.4 失效是怎么「长」出来的
电荷流失不是开关式的,而是一个随时间连续累积、随温度指数加速的过程:刚老化完可能还能读, 放几天后逐渐越过 ECC 边界,再后来越过读判决窗口。这也是为什么很多「老化后不启」在现场表现为 偶发、时好时坏、随放置时间恶化——它处在失效的边缘带。理解这一点,才不会把第一次上电「侥幸成功」 误判为已解决。
把「老化后不启」拆成三个可证伪的命题逐个排除: ① 数据有没有变(老化前后读回比对)、 ② 变化是不是电荷流失导致(错误集中在编程态、随温度/时长恶化)、 ③ 是老化失败还是工艺缺陷(浴盆曲线 + 加速模型,第 8 章)。 任何一例现场问题,都必须先回答这三问再动手。
2. 方案总览:故障定位总流程
前面把物理机制讲清了,这一章给一张可直接照做的总流程图和一张 「老化失败 vs 工艺缺陷」对比表。现场最贵的错误,是在没做读回比对的情况下就凭直觉换料号, 或反过来把真正的工艺缺陷当成老化放过。把总流程跑通,后面六章只是在某一分支里做细分。
2.1 故障定位总流程
整张图只有一条主干:先定性(读回比对)→ 再分叉(板级 / 保持力)→ 再细分(老化 / 工艺)→ 落到类目。 其中「读回比对」是承上启下的唯一硬动作,没有它后面全是在猜。
现场常因为「这颗料号一直好好的、肯定是板子问题」而直接去查虚焊,结果在板级兜一圈发现没问题, 回过头读 Flash 才发现 Boot 区早变了。请把老化前 dump 存档写进量产 SOP(第 10 章), 失效时第一步就是比对,不要等出问题才想起来没留基线。
2.2 老化失败 vs 工艺缺陷:怎么区分
这两类看上去都是「老化后坏了」,但根因、拦截手段、责任归属完全不同。 老化失败是器件在加速应力下走到了寿命边缘(wear-out 区),工艺缺陷是少数早期失效(infant mortality 区)。 区分靠失效率曲线、与应力的单调关系、以及失效分布的集中度。
| 维度 | 老化失败(wear-out) | 工艺缺陷(早期失效) | 区分手段 |
|---|---|---|---|
| 失效率曲线 | 落在浴盆曲线磨损区,递增 | 落在早期失效区,递减 | 图 3 浴盆曲线 |
| 与应力关系 | 温度 / 偏压 / 时长越强,坏得越多 | 与应力无单调关系,可能常温也坏 | Arrhenius 加速模型 |
| 失效分布 | 集中在编程态、集中在少数区块 | 零星、随机地址、跨区块 | 老化前后读回比对 |
| 批次性 | 整批按比例失效,可统计 | 个别零散,难统计比例 | 同批对照未老化样品 |
| 拦截手段 | 产线 Bake 保留筛选 + ECC 余量 | 来料筛选 + 批次隔离追溯 | 第 10 章 SOP |
| 责任归属 | 设计余量不足 / 选型温度档偏低 | 来料 / 晶圆 / 工艺异常 | FA + 原厂追溯 |
老化失败 = 应力越强、越久、坏得越多越集中 → 靠 Bake 拦截 + 留 ECC / 多副本余量;
工艺缺陷 = 零星、与应力无单调关系、可能常温也偶发 → 靠来料筛选 + 批次隔离 + 追溯晶圆 / 工艺。
2.3 六类失效模式在流程里的落点
总流程走到「保持力问题」之后,按下面这张映射直接翻到对应章节。每一类都给了一个决定性判据, 用它快速证伪其余几类,比把六章全读一遍快得多。
| 失效模式 | 决定性判据(成立即锁定) | 落点章节 | 第一动作 |
|---|---|---|---|
| 启动失败 | Boot 区 dump 变化 + 主控读镜像校验失败 / 读不到 | 第 3 章 | 重读 + 多副本启动 |
| ECC 不可纠错 | 读返回 ECC_FAIL,单页 bit 错超设计上限 | 第 4 章 | 降 ECC 负载 / 升强度 |
| 坏块数增加 | 坏块表之外的新坏块随老化出现 | 第 5 章 | 刷新坏块表 + 留 spare |
| 读干扰累计 | 反复读后邻页误码率上升 | 第 6 章 | 读限流 + 定期搬移 |
| ECC retention 失效 | 写入校验通过,老化后读取失败 | 第 7 章 | 老化后回读门禁 |
| Vth 漂移 | 编程/擦除分布靠拢,read margin 普遍收窄 | 第 8 章 | 提余量 / 换 Grade |
任何一例「老化后不启」,都必须先回答:dump 变没变?集中在编程态吗?随应力单调恶化吗? 三问全答完,方向自然就清楚了——不要一开始就动料号或动板子。
3. 第 1 类:启动失败(Boot 区读不出)
六类里最高发、也最容易被误判的一类。主控上电后第一件事就是从 Boot 介质读启动镜像, 这段数据一旦因电荷流失而翻转,主控要么校验失败放弃启动、要么跳到错误地址卡死。 它的表象和「板级虚焊 / 电源不稳」几乎一样,所以必须用读回比对把它和板级问题切开。
3.1 机制:Boot 区是保持力最敏感的地方
Boot 区通常写在固定的低地址扇区,且长期不被刷新——它从烧录完成到上电启动之间, 可能经历回流、高温老化、产线搁置数月。这段静止期正好是电荷流失的窗口。 更糟的是 Boot 区一旦出错,主控完全没有兜底(不像用户数据可以重传),所以「读不出」直接等于「起不来」。
3.2 怎么判定是这一类
用第 2 章总流程的「读回比对」落在这里的具体判据:
| 判据 | 成立(是这一类) | 不成立(转查) | 说明 |
|---|---|---|---|
| Boot 区 dump 变化 | 差异集中在 Boot / 低地址扇区 | 差异分散全片 | 定位差异地址是关键 |
| 主控读镜像失败 | 校验失败或读不到有效镜像 | 镜像完整但起不来 | 后者是板级 / 主控问题 |
| 错误在编程态 | 翻转多为「1→0」(电荷流失) | 翻转随机、含擦除态 | 随机翻转偏工艺缺陷 |
| 随温度恶化 | 高温读失败率高于常温 | 全温一致 | 与应力无单调 → 工艺缺陷 |
把「Boot 区读不出」当成「主控没起来」去查电源和复位,在板级兜一圈没结果,最后换主控平台—— 这是现场最典型的南辕北辙。只要没做老化前后读回比对,任何关于根因的结论都不可信。
3.3 立即动作(装板现场五分钟)
- 重读确认:同板多次上电,看是「每次都失败」还是「偶发」——偶发说明处在失效边缘带(margin 不足)。
- 读回 dump 比对:用烧录器 / 主控把整片读回,和老化前哈希比对,定位差异是否落在 Boot 区。
- 看 ECC / 校验状态:读返回的是 ECC_FAIL 还是「校验通过但内容错」——后者说明还不到 ECC 边界,是判决窗口问题。
- 同批对照:拿一片未老化的同批样品读回,确认未老化时一致,坐实是老化导致。
- 隔离批次:先隔离该批次,不要继续上线,等根因与余量评估完成。
3.4 根治动作
| 根治动作 | 做什么 | 为什么有效 | 注意 |
|---|---|---|---|
| Boot 区多副本 | 同一镜像写 2~3 份,主控依次尝试 | 一份坏还有备份,避免单点失效 | 占空间,需主控支持 |
| 提高 ECC 强度 | 关键区用更强 ECC / 缩短码长 | 把边缘 bit 错在越过判决前纠回 | 提速写 / 读开销 |
| 提高保留档 | 选更高温度 Grade 或留更大余量 | 从源头拉长电荷流失到失效的时间 | 成本上升 |
| 回流次数管控 | 限制烧录到贴片 / 老化的回流次数 | 每次回流都是一次额外热应力 | 见第 7、10 章 |
Boot 区是「只读一次、错一次就完」的敏感区,根治靠余量:多副本 / 强 ECC / 提高保留档, 而不是等它坏了再救。具体档位与副本策略以器件 datasheet 与项目可靠性目标为准。
4. 第 2 类:ECC 不可纠错(charge loss 超过 ECC 能力)
ECC 是闪存对抗位错的最后一道防线,但它有上限。常温下写入时校验通过的页, 随电荷流失,单页 bit 错误数缓慢上升;一旦超过 ECC 设计纠错能力,读操作就会返回 ECC_FAIL—— 数据「在但读不出」。这一类在多次回流、长期高温存储的批次上最典型。
4.1 机制:错误率随老化单调爬升,越过 ECC 边界即失败
可以把它想成一条随时间上升的曲线(ECC 关口): 单页 bit 错误数(t) ≈ 初始错误 + charge_loss_rate · t。 当这条曲线穿过 ECC 设计上限,页从「可纠」变「不可纠」。老化把这条曲线的斜率放大了数倍 (Arrhenius 加速),所以很多页在加速应力后集中越界。
4.2 BCH vs LDPC:老化后的纠错能力差异
这是选型与参数设计时要算清楚的一笔账。两类 ECC 的纠错哲学不同: BCH 是硬判决(只看 0/1),强度固定、开销小,适合 NOR 与中低密度 NAND; LDPC 是软判决(用置信度),纠错能力强很多,是当代 TLC/QLC NAND 的标配, 代价是解码复杂度与延时。
| 维度 | BCH(硬判决) | LDPC(软判决) | 老化后含义 |
|---|---|---|---|
| 判决方式 | 只看 0/1 硬比特 | 用置信度软信息 | LDPC 能纠「将翻未翻」的软错 |
| 典型强度 | 1/4/8 bit 每 512B~1KB | 数十 bit 每 1KB(多迭代) | LDPC 上限高得多 |
| 开销 | 小,spare 占用少 | 大,需存额外校验位 | 高密度 NAND 才划算 |
| 解码延时 | 低 | 较高 | 实时启动需评估 |
| 适用介质 | NOR、中低密 NAND | TLC/QLC 等现代 NAND | 越密越依赖 LDPC |
| 老化余量 | 靠强度档位硬留 | 靠软信息多吃边缘错 | LDPC 边缘带更宽 |
charge loss 造成的错误往往是软错误——单元还没完全翻,只是 Vth 离判决边界近了。 LDPC 能用软信息(这个 bit 是「勉强 1」还是「确定 1」)多纠回一些;BCH 只看硬判决, 一旦软错误变成硬翻转就无能为力。所以同等设计下,LDPC 在老化边缘带的余量明显更大。
4.3 ECC 强度设计与保留余量
ECC 强度(每多少字节能纠多少 bit)不是越大越好——它吃掉 spare 区、拖慢读写。 正确做法是按老化后的预期错误率留余量,而不是按常温设计:
| 设计项 | 常温设计(易踩坑) | 按老化留余量 | 建议 |
|---|---|---|---|
| ECC 强度 | 刚好覆盖常温错误率 | 覆盖老化后预期峰值 + 余量 | 以老化后回读数据定档 |
| 码长 | 长码长省 spare | 关键区用短码长提强度 | Boot/参数区优先 |
| 保留位 | spare 几乎用满 | 留一定比例给坏块扩展 | 见第 5 章 |
| 重写周期 | 无(存多久算多久) | 定期刷新 / 搬移 | 长存储场景必做 |
4.4 判定与动作
| 步骤 | 动作 | 判据 / 注意 |
|---|---|---|
| 判定 | 读返回 ECC_FAIL 或 ECC 纠错位数逼近上限 | 区分「可纠但位数高」与「不可纠」 |
| 定量 | 统计单页错误位分布,看是否过设计上限 | 用老化前后回读建立基线 |
| 立即 | 降低单页负载 / 提高读取电压余量(若支持) | 临时提升读 margin |
| 根治 | 增强 ECC / 升保留档 / 定期刷新 | 以可靠性报告与实测为准 |
「ECC 不可纠」不是 ECC 不够强,往往是按常温设计的余量被老化吃光了。 根治靠提高保留档 / 增强 ECC / 缩短重写周期,并用老化后回读门禁(第 7、10 章)把越界页提前揪出。