另外,基于空转的方法可以节省较少但显著的电流输入,并且对测试时间影响有限 。
III.基于软件的自测试开发和AI芯片的分级
汽车的功能安全标准,如ISO26262,要求使用硬件和软件技术对潜在的故障进行现场测试 。基于软件自检(SBST)的软件测试库(STL)是一种灵活的潜伏故障测试解决方案,可替代基于可测试性设计(DfT)特征的硬件方法 。STL可以被集成到任务操作系统中,并在空闲时间定期执行 。然而,在为基于多核处理器的人工智能芯片开发STL时,彻底优化故障分级过程和用适当的软件模块管理STL的执行是至关重要的 。
在下面的小节中,描述了经典案例,STL的开发策略,以及如何将它们集成到系统中 。最后,展示了故障仿真结果 。
A.经典案例
该经典案例是由Dolphin Design公司开发的一个多核人工智能芯片,用于加速神经网络所需的操作(见图1) 。该模块包括一个由16个PULP-NN RISC-V核(Core0 - Core15)组成的集群,有128kB的L1内存 。指令是在一个与集群外的二级存储器通信的指令缓存内获取的 。外部总线提供了与内部L1的通信,并可由核心0或通过DMA访问 。内部总线负责连接所有的内部模块,为并发的访问提供调解 。事件单元提供硬件事件来协调集群内部的操作 。最后,一个共享浮点单元(FPU)包含8个计算核心,用于浮点之间的“经典”操作,以及一个用于DIV和SQRT的计算核心 。

文章插图
图8 多核AI设计框图的案例研究
软件开发工具包(SDK)可用于配置和编程SoC 。使用SDK,用户可以决定如何安排测试和组织测试程序作为操作系统(OS)的任务 。
B.STL 开发
整体的STL开发被分割成几个测生成,使用较小的故障列表 。一些模块(如CPU核,或FPU共享子单元)被多次复制,可以通过专注于一个模块,然后通过在其他模块上做测试程序的移植来解决 。关注每个子模块可以减少执行故障模拟和评估目标模块测试程序质量所需的时间 。对于特定部件,为其他模块开发的测试产生的副作用是不可忽略的(例如,在互连的仲裁和多路复用逻辑上); 通过在目标模块上模拟这些测试程序,可以精简故障列表,减少生成时间 。
测试策略包括在对RTL设计进行仔细分析后,使用伪随机和ATPG约束方法产生的模式 。每个测试程序首先通过考虑所有子模块的主要输出(Pos)进行故障模拟,并细化直至达到目标故障覆盖率;最后对程序进行重新模拟,掩盖数据结果传播过程中所没有的所有POs;测试程序将测试结果压缩为一种形式的签名,保存在内存位置,并在测试结束时与预期的结果进行比较 。
C.STL 集成
软件测试库的结构分三个层次,如图9所示:
1) 最底层包括用C语言和汇编开发的测试程序,以更好地运行内部模块 。
2) 中间层直接与SDK进行沟通,以协调和评估整个集群内的测试操作 。
3) 最高层与操作系统同时工作,在任务运行期间安排测试阶段 。

文章插图
图9 STL架构
为了保证稳健性,软件必须考虑到所有可能的故障,这些故障的存在会导致系统死锁:
● 当测试操作启动时,软件会使用内核软件提供的适当程序来处理上下文切换 。
● 由于在失败的情况下会出现异常,所以必须修改相对处理程序,以便与影响测试结果的测试软件沟通 。
● 最后,在开始测试阶段之前,必须初始化一个看门狗定时器,以便在发生不可预见的事件时强制停止测试 。
- 为什么会得牙龈炎呢 为什么会得牙龈炎
- 台式电脑cpu排行榜2021
- 怎么判断有蛀牙还是蛀牙 怎么判断有蛀牙
- amdfx8300怎么样
- 离我最近的电脑培训中心 成都电脑学校有哪些
- 华硕笔记本电脑声音小怎么办 电脑声音小怎么办
- 科普下近期很火的佳慧:佳慧是什么游戏
- 电脑显卡的位置图片 电脑显卡位置图片
- 洗牙后多久可以吃东西? 洗牙后多久可以吃东西
- 蛀牙补牙维持多久 蛀牙补完能维持多久
特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
