引言
随着汽车电子系统日益复杂,半导体芯片(如 MCU、SoC、FPGA)在汽车中的应用越来越广泛。这些芯片是功能安全的物理基础,如何确保它们的安全性能成为关键问题。
想象一个真实场景:某汽车厂商的电动助力转向系统(EPS)采用了先进的 MCU,但由于 MCU 内部的某些 IP 核(如看门狗定时器)存在设计缺陷,导致在特定条件下系统失效,造成了多起事故。
这个案例告诉我们:**半导体芯片的功能安全分析是一个复杂的过程,需要从 IP 核、SoC 到整个芯片进行系统化的分析。**这正是 ISO 26262-11 半导体部分的核心使命。
半导体的目标和范围
半导体的核心活动
ISO 26262-11 定义了半导体功能安全的核心活动:
半导体安全需求
- 确定半导体的安全需求
- 分配安全需求到 IP 核和子系统
IP 核安全分析
- 分析 IP 核的安全特性
- 评估 IP 核的失效模式
SoC 安全分析
- 分析 SoC 的安全架构
- 评估 SoC 的失效模式
半导体 FMEDA
- 识别半导体失效模式
- 评估失效影响
- 计算半导体架构指标
半导体集成和测试
- 集成半导体到系统
- 测试半导体安全特性
半导体生产
- 确保生产过程符合功能安全要求
- 进行生产测试
半导体的输入和输出
输入
- 系统安全需求:来自系统级开发
- 硬件安全需求:来自硬件级开发
- 半导体技术文档:来自半导体供应商
- IP 核规格说明:来自 IP 核供应商
输出
- 半导体安全需求:半导体级安全需求
- 半导体 FMEDA 报告:失效分析报告
- 半导体测试报告:测试结果报告
- 半导体安全手册:安全使用手册
IP 核安全分析
IP 核的分类
IP 核(Intellectual Property Core)是半导体芯片的预设计功能模块。
1. 标准 IP 核
来自 IP 核供应商的现成 IP 核。
示例:
- ARM Cortex 系列 CPU
- CAN 控制器
- 以太网控制器
2. 定制 IP 核
为特定应用定制的 IP 核。
示例:
- 定制 DSP
- 定制硬件加速器
- 定制通信接口
3. 软 IP 核(Soft IP)
以 HDL 代码形式提供的 IP 核。
优点:
- 灵活性高
- 可以修改
缺点:
- 需要综合
- 性能可能不如硬 IP 核
4. 硬 IP 核(Hard IP)
以物理版图形式提供的 IP 核。
优点:
- 性能优化
- 面积优化
缺点:
- 灵活性低
- 无法修改
IP 核的安全需求
1. 功能安全需求
描述 IP 核应该实现的安全功能。
示例:
- “看门狗定时器应在超时时触发系统复位”
- “ECC 内存应能够检测和纠正单比特错误”
2. 性能安全需求
描述 IP 核的性能指标。
示例:
- “看门狗定时器的超时时间精度应在 ±5% 以内”
- “ECC 内存的访问延迟应满足系统时序要求”
3. 安全机制需求
描述 IP 核应该实现的安全机制。
示例:
- “CPU 应具备独立于核心的看门狗定时器”
- “内存应具备 ECC 校验功能”
案例:CPU IP 核的安全分析
CPU IP 核的安全特性
CPU:ARM Cortex-R52
安全特性:
双核锁步(Dual-Core Lockstep)
- 两个 CPU 核执行相同的指令
- 比较器比较两个核的输出
- 检测到不一致时触发错误
内存保护
- 内存保护单元(MPU)
- 防止非法访问
看门狗定时器
- 独立于 CPU 的看门狗
- 可配置的超时时间
ECC 内存
- Flash ECC
- RAM ECC
- 检测和纠正单比特错误
CPU IP 核的失效模式分析
| 失效模式 | 失效原因 | 失效影响 | 安全机制 | 覆盖率 |
|---|---|---|---|---|
| CPU 核错误 | 逻辑错误 | 计算错误 | 双核锁步 | 99% |
| Flash 坏块 | 老化 | 数据损坏 | ECC | 95% |
| RAM 位翻转 | 软错误 | 数据损坏 | ECC | 90% |
| 看门狗失效 | 时钟故障 | 无法检测故障 | 冗余看门狗 | 95% |
SoC 安全分析
SoC 的定义
SoC(System on Chip) 是将多个 IP 核集成到一个芯片上的系统。
SoC 的架构
典型 SoC 架构
电源管理
│
┌──────────┼──────────┐
│ │ │
CPU 子系统 DSP 子系统 外设子系统
│ │ │
┌────┴────┐ ┌──┴──┐ ┌───┴────┐
│ CPU0 │ │DSP0 │ │ CAN │
│ CPU1 │ │DSP1 │ │ ETH │
└────┬────┘ └──┬──┘ │ SPI │
│ │ │ I2C │
┌────┴────┐ ┌──┴──┐ └────────┘
│ L1 Cache│ │L1 │
│ L2 Cache│ │Cache│
└────┬────┘ └──┬──┘
│ │
┌────┴─────────┴──┐
│ 系统总线 │
└────────┬───────┘
│
┌────┴────┐
│ 外部存储器 │
│ 接口 │
└───────────┘
SoC 的安全架构
1. 冗余架构
使用冗余的子系统提高可靠性。
示例:
- 双核 CPU
- 冗余看门狗
- 冗余时钟
2. 隔离架构
使用隔离机制防止故障传播。
示例:
- 内存隔离
- 总线隔离
- 外设隔离
3. 监控架构
使用监控机制检测和隔离故障。
示例:
- 看门狗定时器
- 错误信号中断(ESR)
- 总线监控器
案例:汽车级 SoC 的安全分析
SoC:Infineon AURIX TC377
安全特性:
三核架构
- 三个锁步 CPU 核(TriCore)
- 可以实现三模冗余(TMR)
锁步机制
- 两个 CPU 核执行相同的指令
- 比较器比较两个核的输出
- 检测到不一致时触发错误
ECC 内存
- Flash ECC(SECDED)
- SRAM ECC(SECDED)
- 检测和纠正单比特错误
硬件看门狗
- 独立的看门狗定时器
- 可配置的超时时间
- 窗口看门狗支持
故障收集和控制单元(FCCU)
- 收集所有子系统的故障信号
- 控制系统的安全状态
- 支持多级故障处理
SoC 的失效模式分析
| 失效模式 | 失效原因 | 失效影响 | 安全机制 | 覆盖率 |
|---|---|---|---|---|
| CPU 核错误 | 逻辑错误 | 计算错误 | 锁步 | 99% |
| Flash 坏块 | 老化 | 数据损坏 | ECC | 95% |
| RAM 位翻转 | 软错误 | 数据损坏 | ECC | 90% |
| 总线故障 | 电气故障 | 通信错误 | ESR | 95% |
| 看门狗失效 | 时钟故障 | 无法检测故障 | 冗余看门狗 | 95% |
半导体 FMEDA
半导体 FMEDA 的步骤
第一步:识别半导体组件
识别 SoC 中的所有 IP 核和子系统。
第二步:识别失效模式
识别每个 IP 核的潜在失效模式。
第三步:分析失效影响
分析每个失效模式对系统的影响。
第四步:分析安全机制覆盖率
分析现有安全机制对失效模式的覆盖率。
第五步:计算半导体架构指标
计算 SPFM 和 LFM。
案例:SoC 的 FMEDA 分析
第一步:识别半导体组件
| 组件 | 类型 | 描述 |
|---|---|---|
| CPU0 | IP 核 | 主控制器 |
| CPU1 | IP 核 | 冗余控制器 |
| L1 Cache | IP 核 | 一级缓存 |
| L2 Cache | IP 核 | 二级缓存 |
| Flash | IP 核 | 程序存储 |
| SRAM | IP 核 | 数据存储 |
| WDT | IP 核 | 看门狗定时器 |
| CAN | IP 核 | CAN 控制器 |
第二步:识别失效模式
CPU0 失效模式:
| 失效模式 | 失效率(FIT) | 单点/潜在 |
|---|---|---|
| ALU 错误 | 10 | 单点 |
| 寄存器错误 | 5 | 单点 |
| 流水线错误 | 8 | 单点 |
Flash 失效模式:
| 失效模式 | 失效率(FIT) | 单点/潜在 |
|---|---|---|
| 坏块 | 15 | 潜在 |
| 位翻转 | 5 | 潜在 |
SRAM 失效模式:
| 失效模式 | 失效率(FIT) | 单点/潜在 |
|---|---|---|
| 位翻转 | 20 | 潜在 |
WDT 失效模式:
| 失效模式 | 失效率(FIT) | 单点/潜在 |
|---|---|---|
| 时钟故障 | 2 | 单点 |
| 计数错误 | 1 | 单点 |
第三步:分析失效影响
| 失效模式 | 局部影响 | 系统影响 | 安全影响 |
|---|---|---|---|
| CPU0 ALU 错误 | 计算错误 | 系统错误 | 高 |
| Flash 块 | 数据损坏 | 程序异常 | 中 |
| SRAM 位翻转 | 数据损坏 | 计算错误 | 中 |
| WDT 时钟故障 | 无法检测故障 | 故障未检测 | 高 |
第四步:分析安全机制覆盖率
| 失效模式 | 安全机制 | 覆盖率 |
|---|---|---|
| CPU0 ALU 错误 | 锁步(CPU1) | 99% |
| CPU0 寄存器错误 | 锁步(CPU1) | 99% |
| CPU0 流水线错误 | 锁步(CPU1) | 99% |
| Flash 块 | ECC | 95% |
| Flash 位翻转 | ECC | 95% |
| SRAM 位翻转 | ECC | 90% |
| WDT 时钟故障 | 冗余 WDT | 95% |
第五步:计算半导体架构指标
SPFM 计算:
$$ \sum \lambda_{\text{SPF}} = 10 + 5 + 8 + 2 + 1 = 26 \text{ FIT} $$
$$ \sum \lambda_{\text{RF}} = 10 \times (1 - 0.99) + 5 \times (1 - 0.99) + 8 \times (1 - 0.99) + 2 \times (1 - 0.95) + 1 \times (1 - 0.95) $$ $$ \sum \lambda_{\text{RF}} = 0.1 + 0.05 + 0.08 + 0.1 + 0.05 = 0.38 \text{ FIT} $$
$$ \text{SPFM} = \frac{26 - 0.38}{26} \times 100% = 98.54% $$
LFM 计算:
$$ \sum \lambda_{\text{LF}} = 15 + 5 + 20 = 40 \text{ FIT} $$
$$ \sum \lambda_{\text{RF}} = 15 \times (1 - 0.95) + 5 \times (1 - 0.95) + 20 \times (1 - 0.9) $$ $$ \sum \lambda_{\text{RF}} = 0.75 + 0.25 + 2 = 3 \text{ FIT} $$
$$ \text{LFM} = \frac{40 - 3}{40} \times 100% = 92.5% $$
结论:
- SPFM = 98.54%,满足 ASIL C 要求(≥ 97%),但不满足 ASIL D 要求(≥ 99%)
- LFM = 92.5%,满足 ASIL C 要求(≥ 80%),满足 ASIL D 要求(≥ 90%)
如果系统的 ASIL 等级是 D,则需要改进安全机制,提高 SPFM。
半导体集成和测试
半导体集成
半导体的集成包括:
硬件集成
- PCB 设计
- 元器件布局
- 连接方式
软件集成
- 驱动程序开发
- 中断配置
- 时序配置
系统集成
- 与其他子系统集成
- 与整车系统集成
半导体测试
测试类型
功能测试
- 测试半导体的基本功能
- 测试半导体的性能指标
安全机制测试
- 测试故障检测功能
- 测试故障容错功能
- 测试安全状态切换
可靠性测试
- 老化测试
- 加速寿命测试
- HTOL(High Temperature Operating Life)
- HTSL(High Temperature Storage Life)
案例:MCU 的测试
功能测试用例:
| 测试用例 | 测试目的 | 测试步骤 | 预期结果 |
|---|---|---|---|
| TC-1 | CPU 功能测试 | 运行 CPU 测试程序 | 通过所有测试用例 |
| TC-2 | 内存功能测试 | 读写内存 | 读写正常 |
| TC-3 | 外设功能测试 | 测试所有外设 | 外设正常工作 |
安全机制测试用例:
| 测试用例 | 测试目的 | 测试步骤 | 预期结果 |
|---|---|---|---|
| TC-4 | 锁步功能测试 | 注入单比特错误 | 检测到错误 |
| TC-5 | ECC 功能测试 | 注入单比特错误 | 检测并纠正错误 |
| TC-6 | 看门狗功能测试 | 停止喂狗 | 触发复位 |
可靠性测试用例:
| 测试用例 | 测试目的 | 测试条件 | 预期结果 |
|---|---|---|---|
| TC-7 | HTOL 测试 | 125°C,1000 小时 | 无故障 |
| TC-8 | HTSL 测试 | 150°C,1000 小时 | 无故障 |
| TC-9 | 温度循环测试 | -40°C 至 +125°C,1000 循环 | 无故障 |
半导体生产
半导体生产流程
半导体生产流程包括:
晶圆制造
- 光刻
- 刻蚀
- 离子注入
- 沉积
封装
- 芯片切割
- 引线键合
- 封装
测试
- 晶圆测试(CP)
- 成品测试(FT)
半导体生产质量控制
质量控制点
晶圆测试
- 检测晶圆上的缺陷
- 筛选不良芯片
封装测试
- 检测封装缺陷
- 验证封装可靠性
成品测试
- 功能测试
- 性能测试
- 安全机制测试
质量控制指标
良率(Yield) $$ \text{Yield} = \frac{\text{合格芯片数}}{\text{总芯片数}} \times 100% $$
不良率(Defect Rate) $$ \text{Defect Rate} = \frac{\text{不良芯片数}}{\text{总芯片数}} \times 100% $$
案例:MCU 生产质量控制
晶圆测试结果:
| 测试批次 | 总芯片数 | 合格芯片数 | 良率 |
|---|---|---|---|
| W-001 | 1000 | 950 | 95% |
| W-002 | 1000 | 940 | 94% |
| W-003 | 1000 | 960 | 96% |
成品测试结果:
| 测试批次 | 总芯片数 | 合格芯片数 | 良率 |
|---|---|---|---|
| F-001 | 100 | 99 | 99% |
| F-002 | 100 | 98 | 98% |
| F-003 | 100 | 100 | 100% |
质量控制改进措施:
针对良率较低的批次分析原因:
| 批次 | 良率 | 可能原因 | 改进措施 |
|---|---|---|---|
| W-002 | 94% | 光刻缺陷 | 优化光刻工艺 |
| F-002 | 98% | 封装缺陷 | 优化封装工艺 |
常见错误和最佳实践
常见错误
忽视 IP 核的安全分析
- 认为供应商已经分析过了
- 不进行独立的验证
忽视 SoC 的安全架构
- 只关注单个 IP 核
- 不考虑 IP 核之间的交互
FMEDA 分析不完整
- 未识别所有失效模式
- 安全机制覆盖率估计过高
测试不充分
- 只测试功能
- 不测试安全机制
- 不进行可靠性测试
最佳实践
系统化地进行 IP 核安全分析
- 建立分析流程
- 使用专业的分析工具
- 参考供应商的安全手册
关注 SoC 的整体安全架构
- 分析 IP 核之间的交互
- 考虑故障传播
- 设计适当的隔离机制
进行充分的 FMEDA 分析
- 识别所有失效模式
- 准确评估安全机制覆盖率
- 计算准确的架构指标
进行充分的测试
- 覆盖所有功能
- 测试所有安全机制
- 进行可靠性测试
与供应商密切合作
- 获取供应商的安全文档
- 参与供应商的安全分析
- 建立长期合作关系
总结
ISO 26262-11 半导体部分提供了分析和评估半导体芯片功能安全的完整框架。通过本文的深入解读和丰富的案例实践,我们掌握了:
IP 核安全分析:
- IP 核的分类(标准 IP 核、定制 IP 核、软 IP 核、硬 IP 核)
- IP 核的安全需求
- CPU IP 核的安全分析实践
SoC 安全分析:
- SoC 的定义和架构
- SoC 的安全架构(冗余、隔离、监控)
- 汽车级 SoC 的安全分析实践
半导体 FMEDA:
- FMEDA 的五个步骤
- SoC 的 FMEDA 分析实践
- SPFM 和 LFM 的计算
半导体集成和测试:
- 半导体集成(硬件、软件、系统)
- 半导体测试(功能测试、安全机制测试、可靠性测试)
- MCU 的测试实践
半导体生产:
- 半导体生产流程
- 半导体生产质量控制
- MCU 生产质量控制实践
常见错误和最佳实践:
- 常见错误的总结
- 最佳实践的总结
核心要点:
- 半导体芯片是功能安全的物理基础,必须进行严格的安全分析
- IP 核的安全分析是基础,SoC 的安全分析是关键
- FMEDA 是评估半导体安全性的重要方法
- 充分的测试是确保半导体安全的关键
- 与供应商密切合作,建立长期合作关系
在下一篇文章中,我们将深入解读 ISO 26262-12 摩托车部分,学习如何将 ISO 26262 标准应用于摩托车系统。
