研究笔记01 |汽车ECU多核调度

发布于 2023-5-11 13:54
浏览
0收藏

摘要

研究笔记01 |汽车ECU多核调度-汽车开发者社区

随着汽车领域对计算能力的需求快速增长,汽车制造商和一级供应商正逐渐在其电子架构中引入多核 ECU。此外,这些多核 ECU 提供了新功能,例如更高级别的并行性,从而简化了对 ISO 26262 引入的安全要求的尊重,并且可以在各种其他汽车用例中加以利用。这些新功能还涉及软件应用程序的设计、开发和验证更加复杂。因此,OEM 和供应商将需要新的工具和方法来进行部署和验证。在本文中,我们介绍了多核 ECU 的主要用例,然后重点介绍其中一个。准确地说,我们解决了在一组有限的相同内核上调度大量基本软件组件(称为可运行组件)的问题。在汽车设计的背景下,我们假设使用静态任务划分方案,与全局调度方法相比,它为 ECU 设计人员提供了简单性和更好的可预测性。我们展示了如何将全局调度问题作为两个子问题来解决:划分可运行集和在每个内核上构建调度。首先,我们证明了每个子问题由于其算法复杂性而无法最佳解决。接下来,在讨论可调度性验证方法之前,我们提出了低复杂性启发式方法来划分和构建每个内核上的可运行集的调度。

多核调度的背景

在同一个 ECU(电子控制单元)上运行的多源软件在汽车行业变得越来越普遍。主要原因之一是原始设备制造商希望减少高端汽车的 70 个以上的 ECU 数量。AUTOSAR 计划的成果之一确实是帮助 OEM 从“每个 ECU 一个功能”范式转变为更集中的架构设计。随着芯片制造商达到无法满足日益增长的性能要求的地步——通过频率扩展,多核 ECU 正逐渐引入汽车领域。随着 ISO 26262 的引入,这些多核平台还提供了额外的好处,例如满足即将到来的安全要求所需的更高级别的并行性。现在,挑战在于使现有设计方法适应新的多核约束。软件组件的调度是这方面的关键问题之一,必须对其进行修改。

多核调度的现状

现有工作。在多核系统中,任务要么静态分配给内核,要么可以在运行时动态分配以平衡工作负载或迁移功能以提高可用性。后一种方法涉及复杂的任务和资源交互,难以预测和验证。出于这个原因,依赖于静态分配的方法(即,分区)和确定性机制(如周期性循环调度)更有可能在汽车环境中使用,这是 AUTOSAR 联盟中采用的选项。在静态分区方法下的多处理器系统上的调度任务已经被很好地研究了很长时间。然而,我们所知道的工作是处理在线算法,例如 FPP 或 EDF,并没有考虑任务的静态循环调度。本文开发的配置算法与(具有偏移的任务的单处理器调度)和(具有偏移的帧的调度)密切相关,但它适用于多核并。由于该问题在行业中具有实际意义,OEM 有内部工具以及商业工具,例如 RTaW NETCAR-ECU,它们已被开发用于配置调度。然而,这些工具中使用的专有算法通常不能公开,而且它们有时专门用于某些特定用途。

多核平台的优势

多核平台为汽车领域提供了两大优势:功率和并行性。在本文中,我们讨论了受益于在汽车领域使用多核架构的主要用例。然后,本文关注一个特殊问题,即大量基本代码片段(在 AU- TOSAR 术语),目的是利用多核的性能来减少 ECU 的数量。在我们看来,(通常情况下)当有比汽车操作系统允许的最大任务数量多得多的可运行任务时静态循环调度方法特别适合. 因此,runnables 必须组合在一起,并由一个或多个排序器任务(也称为调度器任务)调度。关于多核调度,我们假设一个静态分区方案很可能在汽车领域中采用:与全局调度方法相比,它在概念上很简单,并且为 ECU 设计人员提供了更好的可预测性。本研究的目的是开发实用的算法来构建可运行文件的分区并在每个内核上调度可运行文件,以尊重时序约束,并尽可能地降低CPU 负载。后一个目标对于最小化硬件成本和促进新功能的添加当然很重要,这通常在 OEM 的增量设计过程中完成。


文章转载自公众号:软件赋能汽车

分类
标签
收藏
回复
举报
回复
相关推荐