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

基于GPU器件行为的创新分布式功能安全机制为智能驾驶保驾护航

作者:商瑞  陈娇

随着汽车智能化程度的快速提高,大量新的处理器和系统级芯片(SoC)被广泛引入到车辆中,无论是在驾驶还是座舱等场景,无论采用域控制器模式还是新兴的中央控制单元模式,都无一例外地在考虑加入更加智能化的新功能。但是随之而来的是这些控制单元中的相关芯片的系统级故障或意外行为可能引起的危险,因此需要发现这些故障或可能的意外并提供相应的保护措施,这个过程就是为汽车芯片建立和提供功能安全(Functional Safety,亦简称FuSa)解决方案。

具体到一款微控制器(MCU)、中央处理器(CPU)或者图形处理器(GPU)或以它们为核心的SoC或者专用集成电路(ASIC)上,功能安全就是要确保芯片功能按照设计的要求去运行,因为如果一辆汽车不能按照你设计的功能去执行,那汽车的诸如目标和指示牌识别、刹车或者其他自动加速功能可能就会失效,这个时候就很危险并为驾驶员、乘客、路人、车辆和其他财物等带来了威胁。所以功能安全很重要,但也需要付出一定的成本,比如额外的芯片面积,招聘有经验的设计人员,执行严格的功能安全研发流程,进行安全认证等。

图一、Imagination DXS汽车GPU在提供领先的图形处理能力和AI算力的同时,还打造了创新的分布式功能安全机制,为相关领域内的创新提供了一种全新的模式和思路

在实际工作中,汽车芯片功能安全覆盖了一颗芯片的规格制定、策略与方法选择、芯片研发、机制验证、芯片生产、下游系统设计和运行等产品定义及实现,以及生命周期内的所有活动及管理过程,同时还需要通过ISO26262等功能安全测试。这一切给汽车芯片设计制造企业及车厂和一级供应商等环节带来了更高的成本和更多的工作量,使许多车厂最终选择了忽略或者降低功能安全要求的行为,这在先进驾驶员辅助(ADAS)和自动驾驶(AD)越来越普及的今天带来了更多不安全因素,因此汽车芯片在功能安全领域内迫切需要能够降低成本和工作量的创新。

现有的汽车功能安全策略和实施方法

目前市场上主要的功能安全解决方案有两种:应用最广泛的一种被称为“锁步(lockstep)”解决方案,这是一种比较简单粗暴的方法,在汽车CPU中被广泛使用。该方法就是用两个处理器内核等同样的逻辑来执行一个程序以实现同样的一个功能,由它们同时执行并在执行完之后来比较这个结果,看看这两个结果是否一致。在受到高温或者高湿影响时,如果这两个内核得到的两个结果是一致的话,那证明这两块逻辑是运行正确的,有关计算和控制还能正确地执行。

图二、锁步架构原理图(图片来源:《车规芯片——双核锁步介绍》)

但这种方案带来的代价是什么?代价就是两套相同的计算和处理单元要消耗多一倍的芯片面积,或者就是面向同样处理功能的汽车芯片的面积要比传统的手机芯片的面积要大一倍。这种成本大幅提升对于大部分的客户是没法接受的,因为对于芯片开发商来说,一款芯片最重要的成本来自于其片芯的面积(die size)。如果为实现一个新的功能,最终需要增加一倍的片芯面积就意味着在一张8英寸或者12英寸上能够切出来的芯片数量减少了超过一半。

第二种实现功能安全的办法就是去把同一项工作执行两次,如GPU渲染两次或者CPU计算两次,再看一下这两次数据处理运算的结果是否一致。如果两次运算的结果不同就会发现错误,因为汽车的使用环境非常复杂,芯片里面有些错误是随机错误,有些错误是长期错误。对于随机错误,通过重复执行两次比较一下结果,如果是不一样就上报情况以确认这个功能有问题。这种重复执行的方法就可以避免一些随机错误。这样的方法带来的结果是什么?因为重复工作所得到的性能就会减到原来的一半,所以这也可能是用户没法接受的方案。

图三、主从式处理器验证方式(图片来源:《车规级处理器中的LockStep技术》)

图四、内部验证方式(图片来源:《车规级处理器中的LockStep技术》)

因此,无论是锁步方案还是重复执行方案给汽车厂商和芯片厂商都带来了甚至是没法接受的挑战,这也导致了功能安全在许多实际汽车应用中很难得到全面的接收。最主要的原因为性价比,因为芯片面积增加一倍或者是性能降低为二分之一,对于厂商来说它的成本也就增加了一倍。这个增加一倍的成本,最后都要转嫁到消费者头上,在过去汽车智能化程度比较低的情况下,没有太多客户愿意为这个功能安全买单,所以没有急迫性一直没有得到全面的应用。但汽车智能化这一趋势正在迫使行业做出改变。

创新的分布式功能安全机制带来全新的模式

不久前,全球领先的图形处理器及相关硅知识产权(IP)提供商Imagination Technologies发布的一款新型汽车GPU就为功能安全领域内的创新带来了全新的思路。搭载该公司的GPU IP产品的设备的出货量已经超过了130亿台,同时在车载GPU行业已经耕耘了超过20年,因此无论是该公司在GPU领域内的成就,还是新一代汽车GPU产品的功能安全性能都值得关注。我们来研究分析其新发布的全新一代GPU产品Imagination DXS GPU在功能安全方面的创新。

图五、Imagination DXS GPU的三大创新

DXS GPU是目前汽车应用领域内性能最高,同时具有完善功能安全的GPU,完美地匹配了今天汽车对于中央计算的要求。它首先是一个强大的图形处理器,可以支持车内所有的屏幕娱乐和交互能力。无论是位于驾驶舱前部的图显仪表盘和大屏幕,还是后面后座的娱乐显示,DXS的硬件性能比前一代提升了50%。由于软硬件上协同的投入,对于AI的这一块的性能提升远远超过50%,它提供了远高于CPU的计算性能,同时提供了远远高于NPU以及这类加速器SoC的编程灵活性。

除了性能之外,DXS GPU的最重要创新就是全新的功能安全解决方案:分布式功能安全机制(Distributed Functional Safety)。DXS GPU中创新的分布式安全机制几乎完全消除了以前的其他功能安全方案实现安全机制带来的性能以及片芯面积损失,大大降低了实现功能安全的代价,它仅仅额外消耗了大概10%的片芯面积,用10%的片芯面积带来了100%性能。这是广受芯片开发厂商所欢迎的创新,因为用非常小的代价实现了功能安全,解决了汽车芯片的一个非常重要的问题。

图六、分布式功能安全机制与双核锁步和重复执行两种方案的对比

DXS GPU是怎么成功地解决这个问题的呢?Imagination作为一个传统的GPU玩家,对GPU怎么运行非常清楚,所以利用了GPU的一些特性来非常灵活地实现了功能安全机制。首先一个特性是:作为一种并行处理器,GPU里面有一套并行计算的机制,GPU为了掩饰和隐藏延迟,在计算时采用了并行的很多线程或者重复单元。第二个特性就是当一个线程拿不到它要执行的资源时,它就会自动地被切换出去或者把它移出执行,等到它有资源来到的时候再去执行。

根据这两个特性,在GPU的一个线程停工等待的时候,就在其中插入一些测试模板或者测试集;利用同样的测试集,在另一个线程处于等待的时候,也插入同一个测试模板或样例,然后执行这两个测试。在执行完这两个线程之后,对比结果就会知道这两个线程执行的结果是否一致,如果有不同就会上报结果提醒系统和用户审核该功能是否安全;该机制也知道了一项功能具体在哪一个硬件上去执行,就保证了这些执行的硬件的功能安全。DXS GPU可以在相关等级上一直保证这些硬件的功能正确,没有受到环境、湿度、温度的影响。当然,Imagination还为DXS GPU提供了其他的机制来保证逻辑模块以及存储模块的功能正确。

目前,行业在汽车功能安全方面已经建立了完善的标准、测试方法和分级标定。在ISO26262标准中,根据严重度S、暴露概率E和可控性C三个因素,制定了汽车安全完整性等级(Automotive Safety Integration Level,ASIL)体系,分为A、B、C、D四个等级。作为常用的安全等级衡量标准,ASIL A最低,ASIL D最高,等级越高意味着该产品失效后可能引起的安全风险越大。Imagination DXS GPU可实现ASIL B等级的功能安全性。

图七、Imagination DXS GPU实现ASIL B等级功能安全性

总结

随着汽车新四化的不断推进,汽车中的芯片数量将快速增加。除了关注这些芯片的算力和连接带宽等性能之外,同样重要的是打造和推出全新的功能安全解决方案。Imagination结合GPU这种处理器的架构特点,利用GPU的计算模式来打造了创新的分布式功能安全机制,消除了以前的其他功能安全方案实现机制带来的性能以及片芯面积损失,为电子行业在相关领域内的创新提供了一种全新的模式和思路。


http://www.kler.cn/a/400086.html

相关文章:

  • 高斯数据库Postgresql死锁和锁表解决方法
  • UniApp在Vue3的setup语法糖下自定义组件插槽详解
  • Android Osmdroid + 天地图 (一)
  • Vue通过file控件上传文件到Node服务器
  • OpenTelemetry 赋能DevOps流程的可观测性革命
  • 【Mysql】Mysql的多表查询---多表联合查询(上)
  • 2. kafka 生产者
  • 【python】使用 DrissionPage 库进行网页自动化操作和数据提取
  • 【云原生后端开发流程及详细教程】
  • IDEA 开发工具常用快捷键有哪些?
  • zookeeper安装教程
  • openwebui使用
  • node.js 入门级基础应用
  • 【Java 集合】Collections 空列表细节处理
  • Spark_写ORALCE:ORA-01426 numeric overflow 问题解决
  • 在 Qt 中使用 OpenGL 详解
  • 动态规划入门(记忆化搜索)——爬楼梯(Leetcode 70题)
  • 【WPF】Prism学习(六)
  • PgSQL即时编译JIT | 第1期 | JIT初识
  • 【C++之STL】摸清 string 的模拟实现(上)
  • PlantUML——时序图
  • Python实现ARIMA模型
  • 如何使用 Vivado 从源码构建 Infinite-ISP FPGA 项目
  • vue项目PC端和移动端实现在线预览docx、excel、pdf文件
  • 配置Nginx实现用IP测试灰度发,通过不同用户ID测试灰度发布
  • Flutter踩坑:原生安卓页面向Flutter通信