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

MBIST - Memory BIST会对memory进行清零吗?

MBIST(Memory Built-In Self-Test)的核心目标是检测存储器(RAM, ROM, Cache等)的物理缺陷(如单元失效、位线/字线故障、耦合故障等),而不是执行功能性的清零操作。不过,MBIST的测试过程本身会覆盖性地写入特定的测试模式,这可能(但不一定)导致存储器原有数据被覆盖或“清零”

具体分析整理如下:

  1. MBIST 测试的本质是“读写测试”:

    • MBIST 通过执行一系列精心设计的测试算法来检测故障。
    • 这些算法的核心步骤就是反复地对存储单元进行写入(Write)和读取(Read)操作,并比较读取结果与预期值。
    • 写入操作是测试的必需步骤。为了检测一个单元是否能正确存储0和1,MBIST 必须向该单元写入0,读出验证;再写入1,读出验证(或按算法规定的顺序进行)。
  2. 测试过程会覆盖原有数据:

    • 当 MBIST 启动时,它不关心存储器中当前存储的数据是什么
    • 为了执行测试,MBIST 控制器会按照选定的测试算法,向存储器的地址空间写入特定的测试模式(例如,全0、全1、0/1交替、棋盘格模式等)。
    • 这个过程必然会覆盖掉存储器在测试开始前存储的所有用户数据或系统数据。 从这个角度看,执行一次完整的 MBIST 测试后,存储器的内容不再是测试前的原始数据,而是最后一次测试写入操作留下的数据模式
  3. 测试结束后的状态:

    • 测试结束时,存储器的内容取决于:
      • 所使用的测试算法: 不同的算法最后一步写入的模式不同(可能是0,也可能是1,或者是某种特定模式)。
      • 算法是否执行完成: 如果测试中途因故障停止,内容则是故障发生前最后写入的状态。
      • BIST 控制器的设计: 有些设计可能在测试完成后有意将存储器置为某种已知状态(例如全0),但这不是 MBIST 的标准或核心目标,而是额外的设计选择。
    • 标准 MBIST 本身不保证存储器被“清零”。它最后写入的可能是1,也可能是0,或者是0和1混合的特定测试模式(如棋盘格)。它不会特意执行一个将所有位都写0的操作(除非算法最后一步恰好是写全0)。
  4. “清零”是否是目标?

    • MBIST 的原始目标不是清零: MBIST 的首要且核心目标是故障检测(Pass/Fail 判定)。数据覆盖是其实现测试的必要副作用。
    • 清零可以作为安全或初始化需求: 如果系统要求在测试后或启动前存储器处于清零状态(例如出于安全考虑或初始化需求),这通常需要:
      • 额外的硬件清零逻辑: 在 MBIST 控制器之外,专门设计一个状态机或逻辑来执行全存储空间写0操作。这个逻辑可以与 MBIST 集成,但本质上是独立的功能。
      • 软件清零: 在 MBIST 测试完成后,由 CPU 运行软件循环来写0。但这依赖于系统能正常工作。

因此:

  • MBIST 测试过程必然会覆盖(破坏)存储器原有的数据。
  • 执行一次完整的 MBIST 测试后,存储器的内容会被测试算法最后写入的模式所填充。
  • MBIST 本身的设计目的和标准行为不是特意将存储器“清零”。 它不保证测试后存储器内容是全0。
  • 如果需要确保存储器在 MBIST 后处于清零状态,必须额外实现专门的硬件清零逻辑或在软件控制下进行清零操作,这不是 MBIST 的固有功能。
http://www.lryc.cn/news/592744.html

相关文章:

  • PHP 8.0 升级到 PHP 8.1
  • 机器学习17-Mamba
  • 2025年UDP应用抗洪指南:从T级清洗到AI免疫,实战防御UDP洪水攻击
  • 从0开始学习R语言--Day50--ROC曲线
  • C语言—如何生成随机数+原理详细分析
  • 系统IO对于目录的操作
  • 服务器内存满了怎么清理缓存?
  • 多线程-4-线程池
  • 从零构建监控系统:先“完美设计”还是先“敏捷迭代”?
  • 内存数据库的持久化与恢复策略:数据安全性与重启速度的平衡点
  • 数据结构-3(双向链表、循环链表、栈、队列)
  • SGLang 推理框架核心组件解析:请求、内存与缓存的协同工作
  • 【PTA数据结构 | C语言版】左堆的合并操作
  • LS-DYNA分析任务耗时长,如何避免资源浪费与排队?
  • Machine Learning HW2 report:语音辨识(Hongyi Lee)
  • Glary Utilities(系统优化工具) v6.20.0.24 专业便携版
  • 【Python】一些PEP提案(三):with 语句、yield from、虚拟环境
  • [FDBUS4.2] watcher的使用
  • 利用五边形几何关系计算cos36°及推导黄金比例
  • 50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | NotesApp(便签笔记组件)
  • 深入理解 Spring:事务管理与事件机制全解析
  • 如何将本地Git仓库推送到远程仓库的一个文件中并保留Commit记录
  • 借助AI学习开源代码git0.7之三git-init-db
  • RoboBrain 2.0(具身智能论文阅读)
  • Deep Multi-scale Convolutional Neural Network for Dynamic Scene Deblurring 论文阅读
  • Visual Studio C++编译器优化等级详解:配置、原理与编码实践
  • 【iOS】消息传递和消息转发
  • gitlab-runner配置问题记录
  • 洞见AI时代数据底座的思考——YashanDB亮相2025可信数据库发展大会
  • 【C++】——类和对象(中)——默认成员函数