| |
自主驾驶系统向设计工程师们提出了个人电脑、智能手机和数据中心系统从未提出的挑战。不过,与此同时,半导体开发人员可以从高级驾驶辅助系统(ADAS)的演变中学到很多东西。
因此,虽然在整合方面的挑战可能会使自驾车辆系统级芯片(SoC)的开发人员大伤脑筋,但是,对于把本世纪的技术用于未来的汽车,ADAS学习曲线是极其重要的。
以下是在过去几年中汽车开发商在减少ADAS设计的困难方面所学到的三大经验。
一、依靠软件
第一代ADAS解决方案的开发人员试图通过编制复杂的软件来克服设计中的障碍,他们发现,在汽车的复杂现实世界里,预编程算法的做法效果不好。
在传感器融合、视觉处理和安全等方面需要开发新的算法。它需要一个庞大的代码库,这就增加了成本,也增大了在安全方面的风险,因为工程师必须经常不断地维护软件,并且将软件升级。
我们把以软件为中心在通用硬件上运行的系统转变为运用专门用于计算功能的硬件加速器定製型片上系统芯片(SoC),ADAS开发人员就可以把复杂的算法划分为更小的计算任务,ADAS设计会更加符合真实的实际的驾驶情况。
ADAS的演变为自主汽车设计团队提供了一个利用功能强大的片上系统来执行高复杂度接近实时的自动驾驶功能的参考案例,值得自驾系统设计团队借鉴。
二、接近实时设计
就确保视觉处理、传感器融合和其他关键型任务达到接近实时性能而言,自主驾驶开发人员可以从ADAS设计得到很多参考。
在早期,ADAS开发人员依靠内部的SRAM在片上计算子系统之间交换信息。利用耦合的内存单元作为输出邮箱向计算单元提供输入,当处理单元数量增多时,用软件来进行通信管理变得非常有挑战性,延迟也会增大。
值得注意的是其他大型片上系统芯片,例如数据中心使用的大型SOC,能够承受由芯片到芯片或服务器到服务器通信中相当大的延迟。在汽车的环境中完全是另一回事,在这里,系统级芯片必须对现实世界中不断变化的状况作出瞬间反应。
ADAS芯片最终采用了异构缓存一致性这样的技术,这是一种片上通信技术,能够有效地把系统级芯片内部的CPU、GPU和DSP等计算单元连接起来,从而提高处理带宽并降低延迟。
Arteris的一个客户采用异构缓存一致性技术来管理自主驾驶汽车使用的系统级芯片中的延迟、带宽和服务质量(QoS)。 (见图片:Arteris IP)
这一点尤为重要,因为硬件加速器在自动汽车系统级芯片中越来越重要,在这里,片上通信技术,例如异构缓存一致性,将发挥重要的作用,可以让系统级芯片进行接近实时的嵌入式处理,以便执行复杂的机器学习算法。
三、在整合方面的挑战
自驾系统芯片的复杂程度令人望而生畏,特别是,如果您在考虑如何把超级计算机的强大功能,对功能安全性的要求以及接近实时的嵌入式性能整合在一块定制芯片上。
在这里,ADAS设计的演变提供了一些有价值的经验教训。在传统设计中,主CPU或CPU集群构成最重要的硬件模块,与之不同,在ADAS设计中,针对算法的专用硬件加速器极其重要。
ADAS的经验证实了片上互连在有效管理多个异构硬件加速器方面的价值。(见图片:Arteris IP)
许多自主驾驶设计正在将硬件加速器当作处理节点来执行专用的算法任务,例如高分辨率雷达成像的机器视觉功能。许多自主驾驶系统级芯片以深度神经网络的形式来实现机器学习;硬件加速器则充当这些深度神经网络中的神经元。
I 在这个SoC基本结构中,片上互连以一致的方式把所有硬件加速器连接起来,从而抑制复杂性程度上升,而硬件加速器或异构处理单元是用来运行专门的自主驱动算法。
Kurt Shuler是Arteris IP市场营销副总裁,在英特尔和德州仪器的移动,消费和企业级IP、半导体和软件营销方面,有丰富的经验。他是ISO 26262、TC22、SC3、WG16工作组的美国技术咨询组(TAG)的成员,帮助制定半导体和半导体IP的安全标淮。