SOC上满足功能安全的任务调度方法与流程

未命名 08-12 阅读:58 评论:0

soc上满足功能安全的任务调度方法
技术领域
1.本发明涉及soc调度领域,特别是涉及一种soc上满足功能安全的任务调度方法。


背景技术:

2.汽车智能驾驶的自动等级越来越高,从而对安全的要求也越来越高。在某个特定工况下,自动驾驶的大脑必须在特定时间内完成特定任务以保证预期性或者叫实时性,否则将产生危及人类生命的危害。传统的微控制器(mcu,microcontroller unit)处理器可以做到,而自动驾驶大脑必须采用高性能处理器(soc,system on chip),有时候还是多颗soc,soc和mcu差异很大,目前自动驾驶市面上无法做到高效的预期性,而且不满足功能安全。


技术实现要素:

3.本发明的一个目的是确保调度满足功能安全。
4.本发明的一个进一步的目的是使任务执行满足可预期性。
5.特别地,本发明提供了一种soc上满足功能安全的任务调度方法,其包括:
6.获取所述soc上输入的多个任务调度参数并对多个所述任务调度参数进行一一校验;
7.若均校验通过,则将任务分配到所述soc对应的核的静态调度配置表中,且根据所述静态调度配置表启动任务线程,其中,所述静态调度配置表包括如下至少之一:任务线程的预设执行顺序、预设执行时长及执行周期;
8.任务线程执行时,当出现任务线程的执行时间超过其对应的预设完成时间点,关闭所述任务线程。
9.可选地,多个所述任务调度参数中之一为定时器获取的时间片;以及
10.对所述定时器获取的时间片进行校验包括:通过系统时间监控/计算所述定时器获取的时间片的频率跳变和/或计数是否符合预设要求;若是,确认定时器获取的时间片校验通过。
11.可选地,通过系统时间监控/计算所述定时器获取的时间片的频率跳变和/或计数是否符合预设要求后,还包括:
12.若定时器获取的时间片的频率跳变和/或计数不符合预设要求,则在系统满足预设重启条件时重启系统,其中,所述预设重启条件为车辆运行状满足预设运行状态。
13.可选地,多个所述任务调度参数中之一为时间同步输入信号;以及
14.对所述时间同步输入信号进行校验包括:对比多个soc对应的时间同步输入信号间的时间偏差是否在预设偏差范围内;
15.若是,确认所述时间同步输入信号校验通过
16.若否,重启所述soc或重新进行时间同步。
17.可选地,多个所述任务调度参数包括任务周期、最差场景执行时间、优先级和核
id;以及
18.对所述任务周期、最差场景执行时间、优先级和核id中的之一进行校验,包括:
19.校验所述任务调度参数的完整性是否符合预设规则;
20.若是,确定校验通过;
21.若否,通知用户更改所述任务调度参数。
22.可选地,均校验通过后,还包括:
23.判断车辆的整车层面状态和/或应用层面状态是否满足可预期性调度条件;
24.若是,将任务分配到所述soc对应的核的静态调度配置表中。
25.可选地,将任务分配到所述soc对应的核的静态调度配置表中后,还包括:
26.判断任务间是否存在先后执行顺序;
27.若是,按照静态调度表中的任务执行顺序对任务依次初始化,按照预设执行顺序依次启动任务线程;
28.若否,对任务同时初始化,根据所述静态调度配置表同时启动任务线程。
29.可选地,初始化任务后,还包括:
30.若任一所述任务的初始化时长超过预设初始时长,则停止调度该任务线程。
31.可选地,根据所述静态调度配置表启动任务线程后,还包括:
32.当任一所述任务线程在其对应的预设完成时间点前完成,按照预设执行顺序启动所述任务线程的下一任务线程。
33.可选地,根据所述静态调度配置表启动任务线程后,还包括:
34.监控所述任务线程的执行状态;
35.当出现任务线程在预期时间点未调度,调度所述任务线程;
36.当出现任务线程在非预期时间点调度,则在非预期点调度次数达到预设次数后重启系统。
37.本发明实施例中,先获取soc上输入的多个任务调度参数并对多个任务调度参数进行一一校验,若均校验通过,将任务分配到soc对应的核的静态调度配置表中,且根据静态调度配置表启动任务线程,其中,静态调度配置表包括如下至少之一:任务线程的预设执行顺序、预设执行时长及执行周期。当任务线程执行时,当出现任务线程的执行时间超过其对应的预设完成时间点,关闭当前任务线程,从而可确保软件的可预期性调度,保证自动驾驶的特定任务在预期时间内完成。
38.上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
39.根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。
附图说明
40.后文将参照附图以示例性而非限制性的方式详细描述本发明的一些具体实施例。附图中相同的附图标记标示了相同或类似的部件或部分。本领域技术人员应该理解,这些附图未必是按比例绘制的。附图中:
41.图1是根据本发明一个实施例的soc上满足功能安全的任务调度方法的流程示意图;
42.图2是根据本发明一个优选实施例的soc上任务调度的第一实例图;
43.图3是根据本发明一个优选实施例的soc上任务调度的第二实例图;
44.图4是根据本发明一个实施例的soc的功能结构示意图。
具体实施方式
45.下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
46.需要说明的是,在不冲突的前提下本发明实施例及可选实施例中的技术特征可以相互结合。
47.图1是根据本发明一个实施例的soc上满足功能安全的任务调度方法的流程示意图。参见图1所示,该方法可以至少包括如下步骤s102-s106。
48.步骤s102:获取soc上输入的多个任务调度参数并对多个任务调度参数进行一一校验。
49.步骤s104:若均校验通过,则将任务分配到soc对应的核的静态调度配置表中,且根据静态调度配置表启动任务线程,其中,静态调度配置表包括如下至少之一:任务线程的预设执行顺序、预设执行时长及执行周期。
50.步骤s106:任务线程执行时,当出现任务线程的执行时间超过其对应的预设完成时间点,关闭任务线程。
51.本发明实施例中,先获取soc上输入的多个任务调度参数并对多个任务调度参数进行一一校验,若均校验通过,将任务分配到soc对应的核的静态调度配置表中,且根据静态调度配置表启动任务线程,其中,静态调度配置表包括如下至少之一:任务线程的预设执行顺序、预设执行时长及执行周期。当任务线程执行时,当出现任务线程的执行时间超过其对应的预设完成时间点,关闭当前任务线程,从而可确保软件的可预期性调度,保证自动驾驶的特定任务在预期时间内完成。
52.在本发明一个实施例中,多个任务调度参数包括:定时器获取的时间片、时间同步输入信号、执行参数、任务周期、最差场景执行时间、优先级和核id中至少之一。
53.其中,定时器提供的时间片支持周期性触发。
54.对于只有一个soc的系统,无需获取时间同步输入信号。对于两个及以上的soc的系统,需要获取时间同步信号。
55.具体地,对定时器获取的时间片进行校验包括:通过系统时间监控/计算定时器获取的时间片的频率跳变和/或计数是否符合预设要求;若是,确认定时器获取的时间片校验通过。
56.若频率跳变/计数不符合预设要求时,则在系统满足预设重启条件时重启系统,其中,预设重启条件为系统运行满足预设运行状态。
57.其中,系统运行满足预设运行状态包括车速低于预设速度。当车速超过预设速度
时,车辆重启会有危险,则不能马上重启。
58.对时间同步输入信号进行校验包括:对比多个soc对应的时间同步输入信号间的时间偏差是否在预设偏差范围内;若是,确认时间同步输入信号校验通过。
59.而若时间偏差在预设偏差范围外,则重启所有soc或重新进行时间同步。
60.对任务周期、最差场景执行时间、优先级和核id中之一进行校验包括:校验任务调度参数的完整性是否符合预设规则;若是,确定校验通过;若否,通知用户更改任务调度参数。
61.在本发明一个实施例中,均校验通过后,该方法还包括:判断车辆的整车层面状态和/或应用层面状态是否满足可预期性调度条件。若是,将任务分配到soc对应的核的静态调度配置表中。
62.举例来说,档位为d则为满足可预期调度条件。
63.在本发明一个实施例中,将任务分配到soc对应的核的静态调度配置表中后,该方法还包括:判断任务间是否存在先后执行顺序;若是,按照静态调度表中的任务执行顺序对任务依次初始化,按照预设执行顺序依次启动任务线程;若否,对任务同时初始化,根据静态调度配置表同时启动任务线程。
64.其中,若任一任务的初始化时长超过预设初始时长,则停止调度该任务线程。
65.在本发明一个实施例中,上述步骤s104后,该方法还包括:当任一任务线程在其对应的预设完成时间点前完成,按照预设执行顺序启动该任务线程的下一任务线程。相比于在下一任务的预设开始时间点启动下一任务线程,这样可以保证cpu的高使用率。
66.图2是根据本发明一个优选实施例的soc上任务调度的第一实例图。参见图2所示,任务分配在核0上,横坐标是时长,纵坐标是任务线程。周期长是10ms,任务包括交通灯识别a、高精地图管理b、图像定位融合c、路径规划d。其中,交通灯识别a对应最差场景执行时间是2ms,高精地图管理b对应最差场景执行时间是3ms,图像定位融合c对应最差场景执行时间是2ms,路径规划d对应最差场景执行时间是3ms。
67.其中,第一周期内,交通灯识别a执行1.9ms,高精地图管理b在交通灯识别a后紧接着执行,高精地图管理b执行2.9ms,图像定位融合c执行1.8ms,路径规划d执行2.9ms。
68.第二周期内,交通灯识别a执行1.8ms,高精地图管理b执行3.0ms,图像定位融合c执行2.2ms,图像定位融合c在其对应的预期完成时间点未执行完成,则在其预期完成时间点停止执行该任务而开始执行路径规划d。
69.图3是根据本发明一个优选实施例的soc上任务调度的第二实例图。参见图3所示,任务分配在核1上,任务包括人机交互管理e、模式管理f、预测g、转向控制h。其中,人机交互管理e对应最差场景执行时间是2ms,模式管理f对应最差场景执行时间是3ms,预测g对应最差场景执行时间是2ms,转向控制h对应最差场景执行时间是3ms。
70.其中,第一周期内,人机交互管理e执行1.9ms,模式管理f在人机交互管理e后紧接着执行,模式管理f执行2.9ms,预测g执行1.8ms,转向控制h执行2.9ms
71.第二周期内,人机交互管理e执行1.8ms,模式管理f执行3.0ms,预测g执行2.2ms,预测g在其对应的预期完成时间点未执行完成,则在其预期完成时间点停止执行该任务而开始执行转向控制h。
72.图4是根据本发明一个实施例的soc的功能结构示意图。参见图4所示,系统包括多
个soc,具体地,soc1、soc2一直到socn。
73.每个soc均包括:可预期性调度模块410、定时器420、时间同步模块430、调度策略模块440、错误管理模块450、调度监控模块460以及多个任务,其中,可预期性调度模块410中包含调度检查子模块411。
74.其中,车上有个主节点,比如这个主节点是卫星来的时间。这个主节点连接到的soc1,那soc1就是作为主,其他是从节点。通过时间同步模块430可使主从soc时间同步。具体地,通过gptp(general precise time protocol,通用精确时间同步)协议使多个soc间保持时间同步来支持所有任务按照一个统一的时间进行可预期性调度。
75.定时器420负责提供时间片给可预期性调度模块,支持周期性触发。
76.调度策略模块440负责提供任务周期、wcet(worst case excute time,最差场景执行时间)、优先级、核id等参数值。
77.调度监控模块460负责监控任务执行时间和任务是否按照静态编排的时间点的预期进行触发或者在非预期的时间点触发。
78.错误管理模块450负责错误收集及后处理。
79.可预期性调度模块410负责控制任务线程启动和关闭。
80.调度检查子模块411负责对时间同步模块、定时器、调度策略模块这些输入进行校验保证可预期性调度模块的输入的安全可靠,可预期性是指在某个特定工况下,自动驾驶的大脑必须在特定时间内完成特定任务以保证可预期性或者叫实时性,否则将产生危及人类生命的危害。
81.本发明实施例中,先获取soc上输入的多个任务调度参数并对多个任务调度参数进行一一校验,若均校验通过,将任务分配到soc对应的核的静态调度配置表中,且根据静态调度配置表启动任务线程,其中,静态调度配置表包括如下至少之一:任务线程的预设执行顺序、预设执行时长及执行周期。当任务线程执行时,当出现任务线程的执行时间超过其对应的预设完成时间点,关闭当前任务线程,从而可确保软件的可预期性调度,保证自动驾驶的特定任务在预期时间内完成。
82.另外,在本发明各个实施例中的各功能单元可以物理上相互独立,也可以两个或两个以上功能单元集成在一起,还可以全部功能单元都集成在一个处理单元中。上述集成的功能单元既可以采用硬件的形式实现,也可以采用软件或者固件的形式实现。
83.本领域普通技术人员可以理解:所述集成的功能单元如果以软件的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,其包括若干指令,用以使得一台计算设备(例如个人计算机,服务器,或者网络设备等)在运行所述指令时执行本发明各实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom)、随机存取存储器(ram),磁碟或者光盘等各种可以存储程序代码的介质。
84.或者,实现前述方法实施例的全部或部分步骤可以通过程序指令相关的硬件(诸如个人计算机,服务器,或者网络设备等的计算设备)来完成,所述程序指令可以存储于一计算机可读取存储介质中,当所述程序指令被计算设备的处理器执行时,所述计算设备执行本发明各实施例所述方法的全部或部分步骤。
85.最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:在本发明的精神和原则之内,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案脱离本发明的保护范围。

技术特征:
1.一种soc上满足功能安全的任务调度方法,包括:获取所述soc上输入的多个任务调度参数并对多个所述任务调度参数进行一一校验;若均校验通过,则将任务分配到所述soc对应的核的静态调度配置表中,且根据所述静态调度配置表启动任务线程,其中,所述静态调度配置表包括如下至少之一:任务线程的预设执行顺序、预设执行时长及执行周期;任务线程执行时,当出现任务线程的执行时间超过其对应的预设完成时间点,关闭所述任务线程。2.根据权利要求1所述的方法,其特征在于,多个所述任务调度参数中之一为定时器获取的时间片;以及对所述定时器获取的时间片进行校验包括:通过系统时间监控/计算所述定时器获取的时间片的频率跳变和/或计数是否符合预设要求;若是,确认定时器获取的时间片校验通过。3.根据权利要求2所述的方法,其特征在于,通过系统时间监控/计算所述定时器获取的时间片的频率跳变和/或计数是否符合预设要求后,还包括:若定时器获取的时间片的频率跳变和/或计数不符合预设要求,则在系统满足预设重启条件时重启系统,其中,所述预设重启条件为车辆运行状满足预设运行状态。4.根据权利要求1所述的方法,其特征在于,多个所述任务调度参数中之一为时间同步输入信号;以及对所述时间同步输入信号进行校验包括:对比多个soc对应的时间同步输入信号间的时间偏差是否在预设偏差范围内;若是,确认所述时间同步输入信号校验通过若否,重启所述soc或重新进行时间同步。5.根据权利要求1所述的方法,其特征在于,多个所述任务调度参数包括任务周期、最差场景执行时间、优先级和核id;以及对所述任务周期、最差场景执行时间、优先级和核id中的之一进行校验,包括:校验所述任务调度参数的完整性是否符合预设规则;若是,确定校验通过;若否,通知用户更改所述任务调度参数。6.根据权利要求1所述的方法,其特征在于,均校验通过后,还包括:判断车辆的整车层面状态和/或应用层面状态是否满足可预期性调度条件;若是,将任务分配到所述soc对应的核的静态调度配置表中。7.根据权利要求1所述的方法,其特征在于,将任务分配到所述soc对应的核的静态调度配置表中后,还包括:判断任务间是否存在先后执行顺序;若是,按照静态调度表中的任务执行顺序对任务依次初始化,按照预设执行顺序依次启动任务线程;若否,对任务同时初始化,根据所述静态调度配置表同时启动任务线程。8.根据权利要求7所述的方法,其特征在于,初始化任务后,还包括:
若任一所述任务的初始化时长超过预设初始时长,则停止调度该任务线程。9.根据权利要求1所述的方法,其特征在于,根据所述静态调度配置表启动任务线程后,还包括:当任一所述任务线程在其对应的预设完成时间点前完成,按照预设执行顺序启动所述任务线程的下一任务线程。10.根据权利要求1所述的方法,其特征在于,根据所述静态调度配置表启动任务线程后,还包括:监控所述任务线程的执行状态;当出现任务线程在预期时间点未调度,调度所述任务线程;当出现任务线程在非预期时间点调度,则在非预期点调度次数达到预设次数后重启系统。

技术总结
本发明提供了一种SOC上满足功能安全的任务调度方法,本发明提供的方法中,先获取SOC上输入的多个任务调度参数并对多个任务调度参数进行一一校验,若均校验通过,将任务分配到SOC对应的核的静态调度配置表中,且根据静态调度配置表启动任务线程,其中,静态调度配置表包括如下至少之一:任务线程的预设执行顺序、预设执行时长及执行周期。当任务线程执行时,当出现任务线程的执行时间超过其对应的预设完成时间点,关闭当前任务线程,从而可确保软件的可预期性调度,保证自动驾驶的特定任务在预期时间内完成。在预期时间内完成。在预期时间内完成。


技术研发人员:孙书行
受保护的技术使用者:亿咖通(湖北)技术有限公司
技术研发日:2023.05.16
技术公布日:2023/8/9
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐