TC3xx MTU概述(1)

目录

1.MTU基本功能

2.MBIST

3.小结


1.MTU基本功能

在TC3xx中,MTU(Memory Unit Test)被用来管理控制芯片内部各种RAM的测试、初始化和数据完整性检查。

既然MTU主要是管理和控制,那干活的想必另有他人。所以在该平台中,我们可以看到SRAM周围设计了特别的数字逻辑电路,称之为SRAM Support Hardware(SSH);SSH主要用于控制其关联SRAM的ECC、MBIST(Memory Built In Self Test)等。

因此MTU、SSH、RAM在TC3xx的结构示意如下:

其中,CPU通过SPB总线访问MTU;MTU针对每个SSH又都有一套独立寄存器,可以配置不同的SRAM测试类型、控制SSH的功能运行。 根据TC39x-B UserManual描述,在该平台中设计了多达96个SSH(包括预留),截图如下:

这意味着,在不同IP的内部SRAM也可以通过MTU和SSH配置进行测试,即使CPU不能直接访问该SRAM。

值得注意的是,SSH寄存器只能通过MTU->SSH这样的路径进行访问,因此在访问效率上会比直接通过SPB访问寄存器要慢一些。

2.MBIST

MBIST是一种功能安全机制,用于检查SRAM内部Cell是否出现永久随机硬件失效。TC3xx使用MTU来实现MBIST,在UserMannul里仅提供了Non-Destructive Test的实现方法、功耗和耗时。

这是为什么呢?

因为在ISO26262中,SRAM的Cell故障被认为是潜伏故障,而在一次驾驶循环内至少得有一次测试用于覆盖潜伏故障,所以使用者有权决定在MCU启动、APP运行和下电这三个阶段任意时刻进行MBIST,因此这种非破坏性测试(NDT)是最为友好。

NDT允许在程序运行时进行memory的测试,并且不会破坏当前memory里的应用数据。之所以能这样,是因为该算法的运行逻辑如下:

  1. 从SRAM读取一个word,包括数据+ECC bits,记为"r" ;
  2. 对上述word取反,并写回SRAM,记为 “w*”;
  3. 再次读取word,记为 “ r* ”;
  4. 对上述word再次取反,写回SRAM,记为“w”;

其中 “ * ”表示始终对原始数据相反,可以看到要保证应用数据不被污染,写"w"的次数必须是偶数次,因此NDT的算法在时间复杂度上至少为4N。

执行MBIST期间,每次发生读访问,SRAM自身的ECC机制会计算此次读出数据的校验码,并检查该校验码是否与存入该数据时计算的校验码一致。如果不一致,则会产生错误并通知SMU或者产生中断。

不过,在执行MBIST前还需要注意如下事项:

  • 测试期间,被测试SRAM不可访问;
  • 测试前,SRAM应该被正确初始化。

这些事项与我们设计Online Bist任务息息相关。

在CP AUTOSAR RamTst模块里提出了Foreground Test和Background Test两个概念;其中Foreground Test是同步测试,不可以被中断;Backgroud Test由OS或者调度器周期调度,它可以在每个测试序列完成时被打断。

由于Background Test涉及到数据一致和中断概念,目前用的比较少,比较常见的就是在上电前执行NDT,运行期间选择关键memory进行测试。

3.小结

本篇我们讲解了MTU基本功能和MBIST基本概念,下一篇我们继续讲解MTU如何配置NDT算法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/9336.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2.扩散模型的正向过程

很早之前就新建了一个专栏从0开始弃坑扩散模型,但发了一篇文章就没有继续这一系列,在这个AIGC的时代,于是我准备重启这个专栏。 整个专栏的学习顺序可以见这篇汇总文章 很多时候我们看到一篇文章很长,难免会心生胆怯,所以我将这些…

Electron-Vue 脚手架避坑实录,兼容Win11,升级electron22,清理控制台错误

去年的还是有用的,大家继续看,今年再补充一些Electron-Vue 异常处理方案 M1 和 Window10_electron异常处理-CSDN博客 代码gitee.com地址 electron-demo: electron 22 初始代码开发和讲解 升级electron为22版本(这个版本承上启下&#xff0c…

怎么用git在暂存区(stage)中移除不需要提交(commit)的文件?

2024年5月9日&#xff0c;周四上午 非常简单&#xff0c;用下面这条命令就可以了 git rm --cached <file>注&#xff1a;这条命令不会把文件从文件夹中删除&#xff0c;只会把文件从暂存区中移除出去 实战

《Python编程从入门到实践》day23

# 昨日知识点回顾 操控飞船移动发射子弹&#xff0c;删除屏幕之外的子弹 #今日知识点学习 第13章 外星人 13.1 项目回顾 项目添加新功能前审核既有代码&#xff0c;对混乱或低效的代码进行清理 13.2 创建第一个外星人 13.2.1 创建Alien类 # alien.py imp…

影响视频视觉质量的因素——各类视觉伪影

模糊效应&#xff08;Blurring Artifact&#xff09; 图像模糊&#xff08;blurring&#xff09;&#xff1a;平滑图像的细节和边缘产生的现象&#xff0c;模糊对于图像来说&#xff0c;是一个低通滤波器&#xff08;low-pass filter&#xff09;。一般而言&#xff0c;用户更…

预积分的推导2

预积分的推导2 6.零偏的更新7.预积分更新 6.零偏的更新 IMU噪声的推导是假定零偏固定不变&#xff0c;在面对实际过程中&#xff0c;对于零偏的处理有一个技巧&#xff1a;假定零偏的变化是线性的&#xff0c;保留其一阶项。在原先的基础上进行修正。 数学模型并不一定是和真…

商品上新业务状态机接入实践

一、商品上新业务介绍 商品上新即为在得物平台上架一个新的商品&#xff0c;一个完整的商品上新流程从各种不同的来源渠道提交新品申请开始&#xff0c;需要历经多轮不同角色的审核&#xff0c;主要包括&#xff1a; 选品审核&#xff1a;根据新品申请提交的资料信息判定是否符…

Docker 怎么将映射出的路径设置为非root用户权限

在Docker中&#xff0c;容器的根文件系统默认是由root用户拥有的。如果想要在映射到宿主机的路径时设置为非root用户权限&#xff0c;可以通过以下几种方式来实现&#xff1a; 1. 使用具有特定UID和GID的非root用户运行容器&#xff1a; 在运行容器时&#xff0c;你可以使用-u…

设计模式——享元模式(Flyweight)

享元模式&#xff08;Flyweight Pattern&#xff09;是一种软件设计模式&#xff0c;它运用共享技术来有效地支持大量细粒度对象的复用。以下是关于享元模式的详细解释&#xff1a; 定义 享元模式使用共享物件&#xff0c;以尽可能减少内存使用量以及分享信息给尽可能多的相似…

17 空闲空间管理

目录 假设 底层机制 分割与合并 追踪已分配空间的大小 嵌入空闲列表 让堆增长 基本策略 最优匹配 首次匹配 下次匹配 其他方式 分离空闲列表 伙伴系统 小结 分页是将内存成大小相等的内存块&#xff0c;这样的机制下面&#xff0c;很容易去管理这些内存&#xff0c…

巩固学习2

如何寻找bug class Distance:def __init__(self,ntxt):self.x1eval(ntxt[0])self.x2eval(ntxt[1])self.y1eval(ntxt[2])self.y2eval(ntxt[3])print(self.y2,self.y1)def getdistance(self):distancepow(pow(self.x2-self.x1, 2) pow(self.y2-self.y1, 2),0.5)return distance…

Word表格标题间距大修改环绕为无仍无法解决

1.选中表格&#xff0c;右键选择【表格属性】 2.选择【环绕】&#xff0c;此时【定位】可以被启用&#xff08;如下&#xff09;&#xff0c;点击进入窗口 3.修改参数和下面一模一样 注意&#xff1a;【垂直】那里的修改方式是先选段落&#xff0c;后在位置输入0

C语言中栈数据结构的基本实现

概述 栈的特点 使用只能在一端进行插入和删除操作的特殊线性表。 按照后进先出的原则存储数据&#xff1a; 先进入的数据被压入栈底&#xff0c;最后的数据在栈顶需要读取数据的时候&#xff0c;从栈顶开始读取数据 基本实现 栈的创建和初始化 stack.h #ifndef C01_HEL…

python:鸭子类型使用场景

python&#xff1a;鸭子类型使用场景 1 前言 “一只鸟走起来像鸭子、游泳起来像鸭子、叫起来也像鸭子&#xff0c;那么这只鸟可以被称为鸭子。“----鸭子模型 鸭子模型是Python中的一种编程哲学&#xff0c;也被称为“鸭子类型”。它来源于一句话&#xff1a;“如果它走起路…

qt 5.15.x 安装android过程记录

1.经过好几天的qt for android 安装&#xff0c;发现存在很多坑 参考其他文章可以编译出APK文件。但是我发现(我的机器上)无法调试apk程序&#xff0c;不能调试那怎么行呢&#xff0c;看了很多文章都是运行出结果了就结束了。没有展示怎么调试程序。 很多文章都是建议安装JDK8…

CTF数据安全大赛crypto题目解题过程

CTF-Crypto加密题目内容 下面是一个Base64加密的密文 bXNobnszODdoajM3MzM1NzExMzQxMmo4MGg0bDVoMDYzNDQzNH0原文链接&#xff1a; 数据安全大赛CTF-Crypto题目 - 红客网-网络安全与渗透技术 我们用Python写一个解密脚本&#xff1a; import base64 import time #base64加密…

韩顺平0基础学Java——第7天

p110-p154 控制结构&#xff08;第四章&#xff09; 多分支 if-elseif-else import java.util.Scanner; public class day7{public static void main(String[] args) {Scanner myscanner new Scanner(System.in);System.out.println("input your score?");int s…

什么是Jetpack

Jetpack Jetpack 是一套组件库、工具&#xff0c;可帮助开发人员遵循最佳做法&#xff0c;减少样板代码并编写可在 Android 版本和设备上一致工作的代码&#xff0c;以便开发人员可以专注于他们关心的代码 组成 主要包含四部分&#xff1a;架构&#xff08;Architecture&…

Linux:进程通信(三)信号的捕捉

目录 一、信号捕捉函数 1、signal函数 2、sigaction函数 二、用户态与内核态 1、用户态 2、内核态 用户态与内核态转换 三、volatile关键字 四、SIGCHLD信号 一、信号捕捉函数 1、signal函数 signal函数是C语言标准库中的一个函数&#xff0c;用于处理Unix/Linux系…

Ps 滤镜:其它

Ps菜单&#xff1a;滤镜/其它 Filter/others “其它”子菜单中的滤镜允许创建自己的滤镜、使用滤镜修改蒙版、在图像中使选区发生位移和快速调整颜色。 HSB/HSL HSB/HSL 主要用于实现 RGB、HSB 及 HSL 三种模型的相互转换。 比如&#xff0c;当执行本滤镜从 RGB 转换为 HSB 之后…