软件定义汽车:本质并行化的有效平台
软件定义汽车:本质并行化的有效平台
Software-defined automobiles: An efficient platform for essential parallelization
我们是否正处在一个关键的关头,在这个行业如何推进软件定义的汽车?随着汽车功能的增加,认证和合规变得越来越困难,一种方法是继续在车辆的嵌入式系统中添加多个CPU以获得更多的功能,并依靠更强大的CPU和多核处理的优点。
另一方面,有些人会说,是时候把多个CPU压缩成一个单板的超级计算机了。单台计算机的进步是否允许我们消除所有这些发动机控制单元(ecu)的多重性并合并到一台计算机中?
可以肯定地说,今天的车辆是多种计算机。
苹果联合创始人史蒂夫·乔布斯曾经说过:“处理器行业的发展方向是增加越来越多的核心,但没有人知道如何编程这些东西。我是说两个,是的。四,不是真的。通过构建问题并理解它,我们可以很好地利用多核系统。这不是问题。问题是使用多核来解决单个问题,单个进程。这就是史蒂夫·乔布斯所暗示的。
所以答案是多核处理是肯定的——如果我们对此很聪明的话。
今天对更多的多核用例有着强烈的需求。我们现在有了自主连接的电气共享(ACES)运动,驱动着更复杂的电气/电子(E/E)架构。有了ACES,我们可以看到ecu功能的进一步电气化和整合。即使对添加多个核心和更高的计算能力(如高CPU频率)有了更高的理解,工程师仍然不容易实现这样的功能。正如史蒂夫·乔布斯所说,你不能只是把更多的CPU投入其中。你需要有结构。
汽车工业要解决的问题是并行执行一个并行应用程序。也就是说,有多少应用程序可以本地化到同一个ECU上,这样独立的车辆功能可以并行执行?
The era of software-defined vehicles
软件定义车辆的时代
软件定义的车辆是什么?它包含什么?我们可以谈谈电子/电子功能,这些功能曾经是纯机械的,现在更机电一体化。所有这些功能都依赖于定位和通信以及所需的控制算法。
当我们说本地化时,我们指的是传感器和执行器在各自的物理位置。通信是关于多路复用和优先共享资源,如CAN或以太网。来自传感器的通信被发送到ECU,ECU执行控制算法,然后将命令发送给执行器。通过将传感器和执行器与计算能力相结合,工程师可以在不增加硬件的情况下增加软件定义车辆的特征集。并联功能的例子包括动力转向、电动车窗和助力制动——所有这些都可以同时完成。
适当划分的优点
对应用程序进行分区的价值是什么?有两个主要优点。一个是性能,它通常基于计算包的并行化和识别最小的数据集来高效地通信和同时执行计算任务。第二个好处是由于功能安全或网络安全原因而分离。这种分离是在不影响、影响或访问软件的其他部分的情况下完成的。
理解分区对软件执行的影响是很重要的。并行进程可以通过在单个内核上进行时间切片来实现,但这不是本文的重点。在不同的内核上并行运行多个分区的应用程序可以减少CPU时间的阻塞。其他引起隐藏延迟的资源,如内存访问(总线等待状态),或可能导致干扰的资源,如MCU外围设备和通信总线访问,则主张在分离/本地化内存中工作数据集。
AUTOSAR–首选的ECU平台
对于现代ECU的开发,AUTOSAR方法是显而易见的选择。汽车原始设备制造商和他们的一级合作伙伴已经使用它超过10年了,它已经成功地应用于所有类型的车辆。AUTOSAR方法是系统车辆开发的一部分(图1)。
Figure 1: The AUTOSAR methodology is part of the systematic vehicle development.
系统开发工具以链的形式连接,从高级需求到实现细节,再到系统一致性的验证规则。通过这种方式,当系统接近最终实现时,用户可以生成和生成更精细的系统视图。AUTOSAR定义的数据交换格式、ECU提取和ECU诊断提取将ECU系统设计与ECU设计连接起来。
AUTOSAR交换格式携带有关ECU通信和应用程序的精确信息,称为软件组件(SWC),具有执行需求和数据交换细节。AUTOSAR方法描述了将系统定义转换为ECU配置的过程。生成过程接受所提供的输入,将其与配置的ECU硬件的资源相结合,生成满足软件组件需求的定制配置。现在配置的嵌入式软件平台(称为基本软件,或BSW)支撑软件组件,提供操作系统(OS)和必要的资源管理,从而实现ECU应用程序的高效部署。
到目前为止所描述的平台是AUTOSAR经典平台,建立于近15年前。整个嵌入式操作系统在整个嵌入式操作系统的基础上得到了有效的规范和运行。AUTOSAR classic平台可用于更高的ASIL,并针对深度嵌入式系统,这是本文的重点。
适用于现代互联汽车的AUTOSAR自适应
AUTOSAR自适应平台是为了满足ACES不断增长的需求而引入的。它是为信息娱乐系统、ADAS系统和其他高要求的计算应用程序而定义的。实施AUTOSAR方法(经典或自适应平台)本质上是可互操作的,以简化车辆系统开发并确保一致性。
多年来不断增加的多分区支持
随着汽车工业将多核MCU设计的进步用于嵌入式应用,AUTOSAR增加了在异构和同质环境下将计算负载分配到多核上的机制。
AUTOSAR经典平台已经发展了它的多分区支持,并且可以从AUTOSAR 4.0开始支持多处理。通过这个版本,SWCs可以分布在多核上,主要由支持内核间通信的操作系统和运行时环境(RTE)支持。在autosar4.2中,引入了并行化模式,使BSW组件能够分布在不同的内核上,并支持模式管理来同步内核的启动和关闭。autosar4.4中的MCAL多核分发允许有效地访问核心的硬件资源。AUTOSAR 4.5包括多核上的BSW分布,主要集中在通信模块及其特性上。
AUTOSAR capability highlights
Application distribution
AUTOSAR功能亮点
应用程序分发
应用程序分发(图2)最初是在AUTOSAR 4.0中支持的,经过多年的逐步改进。这一部分已在生产和道路使用中得到证明。使用AUTOSAR指定的核心间通信允许用户创建混合关键性系统,其中不同关键性的swc可以被放置到不同的分区或核心中。操作系统支持通过RTE进行通信,该操作系统要求分散在不同核心上的SWC之间的通信作为跨核通信充分最小化;如果用户发送过多的小消息,则会使系统过载。在一个分区中使用BSW是一个障碍,因此必须解决这个问题。
Figure 2. Application distribution: This pattern offers limited cross-core communication but is required for ASIL mixed-criticality applications.
唯一访问资源的核心
在这个场景中,核心只能访问一个资源(图3)。它可以是单个核心,也可以是对资源进行独占访问的BSW分区,这使得它类似于单个核心用例。不需要额外的同步。通信的完整性和对资源的访问是安全的。
Figure 3: Core with sole access to a resource: This is a single-core use case, no additional synchronization is required.
使用主卫星进行虚拟化访问
另一种模式是使用主卫星实现的虚拟化访问(图4)。这里,BSW引入了一个静态代理,为每个核心上的SWCs提供了一个复制的API。卫星上的API可能会比master减少,然后用户必须恢复到这些API在RTE上的初始通信,这仍然是完全受支持的。
Figure 4: Virtualized access with a master satellite:Direct API access removes cross-core latency and cross-core synchronization is available in the background.
直接访问本地核心/分区上的API提供了调用的快速返回,并消除了由跨核心RTE表示引起的跨核心/分区延迟。这对于类型控制循环是很好的,因为用户不想在等待对远程核心的调用返回时锁定应用程序。BSW主站与卫星之间的跨核数据同步将在后台进行。后台同步在主站和卫星之间的数据一致性中引入了延迟,因此通信频率和定义的数据集部分可以在工程中分布。
只读模式的内存访问
最后,当用户拥有软件组件时,依赖于相同的数据但运行在不同的核心上,他们需要解决这两个不同组件之间的同步需求(图5)。通过让一个消费者通过单一数据访问从发布服务器读取数据,工程师就可以保证一致性。使用跨核心分区读取时,必须确保用户不会修改数据。
Figure 5: Memory access with read only pattern: The consumer reads data from the published memory. With the cross-partition read, no modification to the data is needed.
把它们放在一起
我们如何在AUTOSAR系统和开发流程中应用这一点呢?这就是AUTOSAR和工具提供明显好处的地方。应用ECU设置,将其视为单个核心工作流,然后导入以生成支持所需服务的配置。
然后用户定义分布在MCU核心上的分区。基于在应用程序级别进行的通信分区,swc被明智地分配到分区上。在评估配置之后,工具将生成基本系统,以确保正确访问资源。
实际上,应用BSW分区可以提供哪些改进?在一个客户示例中,一个多核MCU在单个核心上执行BSW,SWCs分布在多个核心上,BSW MCU的核心负载大约为98%。为了减轻过载,对BSW进行了分区,并将模块移动以支持FlexRay通信总线到具有可用容量的核心。与FlexRay总线上的通信紧密相关的swc也被移到了同一个核心。
移动FlexRay BSW模块和相关的SWC提供了必要和正确的分区。这使得BSW堆芯负载下降到45%。改进后的BSW和SWC分布使MCU的组合处理器负载总体上降低了2%。因此,带有西门子特定增强功能的AUTOSAR架构为核心负载平衡提供了支持。
结论
汽车工业正朝着一个集中计算体系结构的方向发展,以满足客户和新法规的要求。这些体系结构很大程度上依赖于最新的多核mcu来实现必要的计算能力。
有效利用可用硬件资源的软件需求是软件设计车辆的一个组成部分。西门子等AUTOSAR解决方案为运行在多核MCU上的嵌入式系统提供了一个自然的选择,用于部署需要不同资源依赖性的功率过程,同时保持对应用和集成的关注。
对于分配并行化资源的应用程序和正确分配共享资源所需的活动,采用知识渊博的工程实践是很重要的。尽管使用有效且功能强大的软件进行并行化,用户仍需要保持其嵌入式系统工程能力。为了获得成功,工程师必须为其特定的应用程序维护高效的分区和智能开发过程。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)