用于执行机动车用户功能的计算机系统和方法技术方案

技术编号:39837004 阅读:5 留言:0更新日期:2023-12-29 16:21
涉及用于执行机动车用户功能的计算机系统和方法。用户功能包括有多个不同任务的应用。计算机系统提供容器并激活和去激活容器,应用的所有任务被分配给容器,每个特定应用的全部任务被分配到恰好一个特定容器,在容器为活动的时间帧中独占地保留计算机系统的一个或多个核以执行容器的应用的任务,计算机系统配置成在容器为不活动的情况下不能在计算机系统上执行容器的任务。为每个容器提供任务定序器,在容器被激活的情况下任务定序器被激活,任务定序器决定:必须执行容器的应用的哪些任务;要执行的任务的序列;针对必须执行的每个任务容器提供的必须在其上执行任务的一个核或多个核,计算机系统配置成根据任务定序器决定执行容器的任务。器决定执行容器的任务。器决定执行容器的任务。

【技术实现步骤摘要】
用于执行机动车用户功能的计算机系统和方法


[0001]本专利技术涉及用于执行用户功能特别是机动车用户功能(automotive customer function)的计算机系统,其中,用户功能生成用户功能输出数据,基于该用户功能输出数据对机器特别是机动车进行控制,其中,计算机系统包括一个或更多个处理核。
[0002]此外,本专利技术涉及用于在计算机系统中执行用户功能特别是机动车用户功能的方法,其中,用户功能生成用户功能输出数据,基于该用户功能输出数据对机器特别是机动车进行控制,其中,计算机系统包括一个或更多个处理核。

技术介绍

[0003]现代实时系统特别是机动车实时系统包括许多复杂的软件部件以处理复杂性并简化开发。自动驾驶功能如高速公路领航系统(highway pilot)被分解为既依次参与又可能并行参与以实现车辆的相应功能的多个较小的部件。
[0004]对于这样的实时系统,能够确定并保证从观察到车辆的环境至车辆的物理反应的最坏情况的端到端计算延迟是至关重要的。例如,如果车辆的传感器子系统记录到车辆前方的障碍物,则必须在一定时间内启动车辆级反应(转向或制动)来避免碰撞以防止人身伤害。
[0005]这样的处理链(以下称为计算链)的范围从处理传感器输入到计算世界模型和生成致动器命令,并且通常包括大量单独的软件部件。可以存在许多同时执行的功能。因此,许多独立的计算链被同时执行。这些软件部件可以具有强烈变化的复杂性和运行时行为。
[0006]计算链可以分布在多个处理单元甚至ECU上,但是还可以在单个处理元件(例如,例如包括多个核以及可选的加速器的单个CPU)上执行。
[0007]这样的处理元件还包括许多并行和潜在多样化的处理单元(CPU核、GPU、用户设计的逻辑等)。通常,不可能同时满足所有软件部件的处理需求。需要仲裁机制以使最关键的任务能够被优先处理。此外,并行处理单元并非100%独立的,并且在一个部分上的软件执行可以对在另一部分上执行的软件产生负面影响。必须知道并控制该干扰。
[0008]另一重要特征是功能可以具有不同的危急程度,意指当功能未正确和及时地提供时对人类的风险有多严重。在此基础上提供不同水平的工程严谨性是最先进的。因此,不能保证低危急SWC(软件部件)的行为正确。需要保护关键SWC免受这样的潜在故障SWC的影响以防止安全关键故障,特别是包括导致影响关键SWC的时序的故障。
[0009]因此,计算链可以具有不同的优先级,并且甚至计算链内的不同部件也可以具有不同的重要性。存在必须要解决的在计算链之间以及计算链内部对共享资源的竞争。
[0010]典型的计算机系统还可以包括操作系统、中间件和大量的应用软件部件。
[0011]操作系统有责任确定在给定时间允许哪些任务使用哪些处理单元。然而,操作系统对任务的顺序或连通性一无所知。因此,操作系统自身无法直接保证任何端到端延迟。
[0012]为了增强操作系统,可以使用中间件和平台(计算机系统)调度器。
[0013]确定作为整体的多个协作的或独立的应用的所有同时执行的软件部件的实时需
求是主要的开发活动,该开发活动需要应用开发人员侧和系统集成人员侧两者付出大量努力。给定部件中的任何更改可以不仅改变其自身的时间行为,而且可能使其他应用的实时属性失效。
[0014]在开发整个系统时,应用开发人员和系统集成人员必须共同努力以确保满足所有实时要求。然而,应用开发人员和系统集成人员在有效进行其自身的工作方面具有冲突的需求。
[0015]应用开发人员需要尽可能多的灵活性以使得能够开发和优化其自身的应用。应用开发人员依赖系统集成人员来确保来自不相关SWC的干扰尽可能小。系统集成人员依赖应用开发人员来满足应用级时序要求,但是确保在所有应用被集成的情况下,这些应用都仍能正常工作。系统集成人员通常努力实现尽可能静态和刚性的系统配置以确保独立的软件部件不会使独立的实时属性失效。同时满足两个角色的需求以促进有效的整体开发是巨大的挑战。
[0016]一个允许多个计算链确定性共存同时最小化干扰并保证端到端延迟的示例架构是时间触发架构。在该架构中,每个可调度实体(任务)的通信和执行是步调一致的。集成人员创建全局时间驱动的时间表,该时间表精确地控制每个任务被允许访问处理硬件的时间以及其失去对处理硬件的控制的时间。
[0017]该方法简化了独立软件部件(也被称为“软件”或“应用”)的确定性集成,同时失去了应用开发人员的灵活性。在不更改在平台级/计算机系统级上定义的平台级定义时间表的情况下,不可能改变应用到任务的分解。此外,如果任务的实现变化并且其时间预算也随之变化,则需要更改时间表,这必须由计算机系统集成人员完成。
[0018]另一方面,软件开发人员获得了软件部件不会对其任务产生负面影响的保障。
[0019]另一架构是事件驱动架构。此处,可调度实体的执行完全取决于新事件的到达时间。一旦任务的所有事件都可用,就可能允许执行该任务。由于不存在对如何执行任务以及何时执行任务的平台级控制,因此应用开发人员可以自由地在其应用内添加、删除或合并任务。这为软件开发人员提供了最大的灵活性,并且还使得能够在最佳和平均情况下但是不是最坏的情况下,最小化后续任务执行之间的延迟。然而,由于这样的任务的数量可以达到数百或数千,因此在可以真正启动该任务之前很难确定最坏情况下的延迟。每当集成了新的应用,时间行为都将改变。这还意指不清楚哪些其他部件在其他处理单元上执行而使得无法评估对并行执行的SWC的最坏情况下的影响。此外,对应用内部的任何改变都可以改变对其他软件部件的干扰的严重程度。
[0020]该方法以将问题转移到集成步骤为代价,将软件开发人员的灵活性最大化。这导致对问题的责任不明确,并且导致在多个应用集成在一起的情况下,所有应用开发人员都需要大量的调试。
[0021]无论在哪种情况下,调度实体的粒度都在任务级。由于应用包括大量任务,所以集成者必须配置和控制在应用开发人员控制下的各个方面。因此,应用结构的改变是全局可见的,并且需要广泛的分析和配置改变。
[0022]已经存在将多个任务分组到容器中并控制容器的时序方面的方法。这意指容器获得处理单元的一定份额,并且在到达边界时会被停止。例如,可以被Docker使用来控制Docker容器内应用的时序的Linux CGROUPS可以用来将包含的应用可用的CPU时间限制在
最多CPU时间的一定百分比。这可以防止干扰,但是不可能针对容器内的处理提供端到端的延迟。此外,容器执行和使用的CPU/核时间的簿记与处理周期或系统中的任何特定事件不一致。这种不一致会导致处理期间不希望的中断。特别地,这些方法不处理任务执行的内部顺序。

技术实现思路

[0023]本专利技术的目的是提供一种计算机系统和方法,以在不牺牲关于计算链的端到端实时延迟要求的可预测性的情况下实现更快的开发。
[0024]利用如上面所提及的计算机系统来实现该目的,其中,根据本专利技术,其中,用户本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于执行用户功能(CUS)特别是机动车用户功能的计算机系统(CS),其中,所述用户功能(CUS)生成用户功能输出数据(OUT

DAT),基于所述用户功能输出数据(OUT

DAT)来控制机器特别是机动车,其中,所述计算机系统(CS)包括一个或更多个处理核,“核”(核1、核2、核3),其中,所述用户功能(CUS)包括应用(APP1、APP2、APP3),其中,所述用户功能(CUS)的每个应用(APP 1、APP 2、APP 3)包括多个不同的任务(T1.1至T1.3、T2.1至T2.9、T3.1至T3.4),其中,在应用(APP1、APP2、APP3)的执行期间,执行所述应用的一个或更多个任务,其中,以计算链(CHA)的形式以限定的序列一个接一个地执行所述应用(APP1、APP2、APP3),其中,计算链(CHA)在其开始时接收用户功能输入数据(IN

DAT),并且生成在所述计算链(CHA)执行结束时提供的用户功能输出数据(OUT

DAT),并且其中,在所述用户功能(CUS)的执行期间,所述计算链(CHA)被执行一次或若干次,其中,所述计算机系统(CS)提供容器(CON1、CON2、CON3),其中,所述计算机系统(CS)被配置成激活和去激活所述容器,使得所述容器为活动的或不活动的,其中,所述应用的所有任务被分配给容器(CON1、CON2、CON3),并且其中,每个特定应用的全部任务被分配给恰好一个特定容器,其中,在容器为活动的时间帧中,独占地保留所述计算机系统的一个或更多个核以用于执行所述容器的应用的任务,以及其中,所述计算机系统(CS)被配置成使得在所述容器为不活动的情况下,不能在所述计算机系统上执行所述容器的任务,其中,所述计算机系统被配置成根据所述应用(APP1、APP2、APP3)的序列来执行所述容器(CON1、CON2、CON3),使得容器在紧接在其之后的容器之前被激活,并且其中,不允许计算链的容器和紧接在其之后的容器在时间上交叠,并且其中,针对每个容器提供任务定序器,其中,在所述任务定序器的容器被激活的情况下,所述任务定序器被激活,并且其中,容器的所述任务定序器决定(“任务定序器决定”):

必须执行所述容器的应用的哪些任务,

要执行的任务的序列,以及

针对必须执行的每个任务,所述容器提供的必须在其上执行所述任务的一个核或多个核,并且其中,所述计算机系统被配置成根据所述容器中的每个容器的所述任务定序器的所述任务定序器决定来执行每个容器的任务。2.根据权利要求1所述的计算机系统,其中,所述计算链被并行执行若干次,其中,所述计算机系统(CS)被配置成使得不同计算链(CHA)的相同容器,特别是所述计算链的不同迭代的相同容器,在时间上不交叠。3.根据权利要求1或2所述的计算机系统,其中,所述计算机系统被配置成根据时间触发的调度来激活每个容器和/或每个计算链。4.根据权利要求1或2所述的计算机系统,其中,所述计算机系统被配置成利用激活信
号来激活所述容器和/或所述计算链,其中,所述激活信号是事件触发的。5.根据权利要求4所述的计算机系统,其中,给每个容器分配优先级,使得如果具有比活动的容器更高优先级的容器被激活,则去激活所述活动的容器,并且激活所述具有更高优先级的容器。6.根据前述权利要求中任一项所述的计算机系统,其中,每个任务定序器基于所述任务定序器的配置来做出其任务定序器决定。7.根据权利要求6所述的计算机系统,其中,所述配置包括所述容器的任务的优先级,其中,优先级被分配给每个任务。8.根据前述权利要求中任一项所述的计算机系统,其中,每个任务定序器确定其容器内的任务的依赖性,并且特别是在每次任务的执行完成时,例如基于所述任务定序器的配置,检查接下来可以执行哪个任务。9.根据前述权利要求中任一项所述的计算机系统,其中,按顺序执行和/或并行执行和/或在时间上至少部分交叠地执行容器(CON1、CON2、CON3)的任务(T1.1至T1.3、T2.1至T2.9、T3.1至T3.4)。10.根据前述权利要求中任一项所述的计算机系统,其中,针对每个应用,提供一个或优选地更多个用于执行任务的不同安排,即所谓的“模板”(TEMP2.1、TEMP2.2、TEMP2.3、TEMP2.10),其中,优选地,用于应用的每个模板保证执行任务的正确顺序,并且其中,例如,配置包括一个或更多个模板,或者其中,配置是模板。11.根据权利要求10所述的计算机系统,其中,提供了外部部件“序列审计员”,所述外部部件在容器的每次执行之后接收在其中执行了任务的序列或关于所述序列的信息,并且将所述序列或所述信息与根据其已经执行了任务的模板进行比较,以检测不正确的执行顺序。12.根据权利要求10或11所述的计算机系统,其中,任务定序器特别是每个任务定序器被配置成:例如在所述任务定序器的容器开始时或在所述容器循环开始时选择针对所述容器所提供的模板之一,和/或在所述容器为活动的情况下在不同的模板之间进行切换。13.根据前述权利要求中任一项所述的计算机系统,其中,可以针对容器提供至少一个任务序列适配任务,特别地,针对每个容器提供至少一个任务序列适配任务,在所述容器为活动的情况下执行所述任务序列适配任务,其中,所述任务序列适配任务被配置成从所述计算机系统接收信息和/或接收关于所述计算机系统的信息,以及/或者分析数据和/或时间进度,并且其中,所述任务序列适配任务被配置成使得所述任务定序器根据来自所述计算机系统的信息和/或关于所述计算机系统的信息以及/或者根据所述数据和/或时间进度的分析结果来改变所述模板。14.根据前述权利要求中任一项所述的计算机系统,其中,所述计算机系统包括资源,其中,所述资源包括:

存储器,特别是存储区域,和/或

通信装置,例如通信信道,例如,在处理器之间和/或在核之间,和/或

软件,例如操作系统、一个或多个任务调度器、容器等,并且其中,在特定容器(CON1、CON2、CON3)为活动的情况下,所述资源中的至少一些资源以及/或者所述资源中的至少部分资源或所有所述资源被独占地分配给所述特定容器
(CON1、CON2、CON3),使得在所述特定容器为活动的情况下,仅所述容器的应用(AAP1、APP2、APP3)的任务可以使用所述独占地分配的资源。15.根据前述权利要求中任一项所述的计算机系统,其中,每个容器(CON1、CON2、CON3)在其激活时间点接收其输入数据和/或在去激活时间点之前向所述计算机系统(CS)提供其输出数据。16.根据前述权利要求中任一项所述的计算机系统,其中,计算链(CHA)的容器(CON1、CON2)的去激活时间点和所述计算链(CHA)的直接跟随的容器(CON2、CON3)的激活时间点以下述时间距离进行布置:所述时间距离足以确保所有计算链的所有延迟要求并且同时使得能够有至少足够的时间以在容器之间发生通信。17.根据前述权利要求中任一项所述的计算机系统,其中,容器的时间帧例如所述容器(CON1、CON2、CON3)的容器时隙的持续时间的总和对应于WCET或至少对应于在所述容器中执行的应用(APP1、APP2、APP3)的任务的WCET。18.根据前述权利要求中任一项所述的计算机系统,其中,每个应用和/或容器与所述计算机系统独占地通信,并且仅在其执行的开始和结束时,特别是在其执行的每个迭代的开始和结束时与所述计算机系统独占地通信。19.一种用...

【专利技术属性】
技术研发人员:克里斯托弗
申请(专利权)人:TTTECH汽车股份公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1