当前位置: 首页 > news >正文

BIST会对锁步核做什么?

在采用锁步核(Lockstep Cores) 设计的系统中(常见于高可靠性应用,如汽车电子、航空航天、工业控制等),BIST(内建自测试)的实施需要特别考虑锁步架构的特性,其核心目标是确保冗余核的同步性不被破坏,同时有效测试每个核的硬件完整性。以下是BIST对锁步核的关键处理逻辑和设计进行的整理:


1. 锁步核的核心原理

  • 冗余执行: 两个或多个完全相同的处理器核(如Core A和Core B)同步执行相同的指令流
  • 实时比较: 每个时钟周期,两个核的输出(如数据、地址、状态信号)会被一个比较器(Comparator) 实时比对。
  • 错误检测: 如果输出不一致,比较器触发错误信号(如中断、复位或安全状态切换),实现故障容错。

2. BIST对锁步核的测试挑战

  • 同步性保护: BIST测试过程不能破坏两个核的锁步同步,否则会触发虚假错误。
  • 比较器可靠性: 比较器本身也需要测试(否则可能成为单点故障)。
  • 测试覆盖完整性: 需确保两个核及比较器均被充分测试,避免隐藏缺陷。

3. BIST的应对策略与设计

(1) 同步化测试激励注入
  • 测试向量同步生成:
    BIST控制器为两个核生成完全相同的测试向量序列,确保两者在测试期间保持输入同步。

    示例流程:
    BIST Controller → 生成测试向量 → 同时输入 Core A 和 Core B

  • 时钟与时序控制:
    测试时钟需与系统时钟严格同步,避免因时序偏移导致锁步失配。

(2) 响应采集与签名分析
  • 独立响应捕获:
    每个核的输出响应被独立捕获到各自的响应分析器(如MISR)中,生成独立签名(Signature A, Signature B)。

  • 签名双重验证:

    • 核内自检: 每个核的签名与自身预期签名比较(由BIST控制器完成)。
    • 核间一致性检查: 比较 Signature A 和 Signature B 是否一致(验证锁步同步性)。

    安全逻辑:
    若 Signature A ≠ 预期签名 → 标记 Core A 故障
    若 Signature B ≠ 预期签名 → 标记 Core B 故障
    若 Signature A ≠ Signature B → 标记锁步同步故障

(3) 比较器自测试(Critical!)
  • 比较器BIST(Comparator BIST):
    专门设计测试逻辑,向比较器注入人为制造的差异信号,验证其能否正确检测不一致:

    测试步骤:

    1. 控制Core A输出固定模式X,Core B输出模式Y(X≠Y);
    2. 检查比较器是否触发错误信号;
    3. 恢复同步输出,检查错误信号是否解除。
  • 冗余比较器: 高可靠系统中可能部署双比较器,通过BIST交叉验证其功能。

(4) 测试模式切换控制
  • 安全状态机:
    BIST控制器需在安全状态(如空闲态) 下启动测试,避免干扰关键任务。
  • 原子化测试执行:
    测试过程需快速、原子化完成,减少系统暴露在非锁步状态的时间。

4. 典型工作流程

  1. 启动: 系统进入安全状态(如复位后),BIST控制器激活。
  2. 初始化: 复位所有测试逻辑,确保核同步。
  3. 执行测试:
    • 同步向双核注入相同测试向量;
    • 独立捕获响应并生成签名;
    • 触发比较器自测试逻辑。
  4. 结果判定:
    • 检查每个核的签名是否正确;
    • 验证双核签名是否一致;
    • 确认比较器能否正确报错。
  5. 输出: 生成全局报告(如 PASS / FAULT_CoreA / FAULT_Comparator)。

总结

BIST对锁步核的核心逻辑是:通过同步化测试激励保持双核锁步,独立验证每个核的硬件正确性,并专门测试比较器功能。这种设计确保了冗余架构的可靠性不被测试过程破坏,同时满足了高安全性场景对“自测试能力”的苛刻要求。

http://www.xdnf.cn/news/1141183.html

相关文章:

  • 【PTA数据结构 | C语言版】根据后序和中序遍历输出前序遍历
  • Kubernetes (k8s)、Rancher 和 Podman 的异同点分析
  • Copula 回归与结构方程模型:R 语言构建多变量因果关系网络
  • 异世界历险之数据结构世界(排序(插入,希尔,堆排))
  • mysql 性能优化入门
  • 搜索引擎优化全攻略:提升百度排名优化
  • JAVA 使用Apache POI合并Word文档并保留批注的实现
  • 前端下载文件并按GBK编码解析内容
  • ADVB协议内容分析
  • MyBatis 动态 SQL:让 SQL 语句随条件灵活变化
  • 【科研绘图系列】R语言绘制分组箱线图
  • 【锂电池剩余寿命预测】TCN时间卷积神经网络锂电池剩余寿命预测(Pytorch完整源码和数据)
  • 基于vue框架的房屋租赁系统设计与实现zrd8i(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
  • 信息论至AI实践:交叉熵的原理全景与应用深度解析
  • 【后端】.NET Core API框架搭建(10) --配置163邮件发送服务
  • 数据统计模块后端架构解析:从Controller到SQL的ECharts数据对接实践
  • 实现库存显示和状态按钮的Question
  • 如何将 iPhone 备份到笔记本电脑?
  • 从 Spring Boot 2.x 到 Spring Boot 3.x:全面对比与快速上手指南
  • 解决“Module ‘./@ant-design/icons‘ does not exist in container”的Webpack微前端报错
  • 【unitrix】 6.8 加一运算(add_one.rs)
  • 【机器人】HOV-SG 开放词汇 | 分层3D场景图 | 语言引导机器人导航
  • 第16章 基于AB实验的增长实践——验证想法:AB实验实践
  • 【iOS】消息传递和消息转发
  • AI IDE冲击下JetBrains作死,IDEA埋订阅陷阱
  • C++---cout、cerr、clog
  • PYTHON日志神器nb_log详细介绍和使用说明
  • leetcode:单词接龙[图广搜][无权图找最短路径]
  • C# 转换(引用转换)
  • 超简单linux上部署Apache