本发明实施例涉及整车控制器技术领域,尤其涉及一种vcu的cpu负荷计算方法、cpu负荷计算系统和车辆。
背景技术:
新能源汽车,如电动汽车一般通过vcu(vehiclecontrolunit,整车控制器)实现整车控制决策。vcu通过采集油门踏板、挡位、刹车踏板等信号来判断驾驶员的驾驶意图;通过监测车辆状态(车速、温度等)信息,由vcu判断处理后,向动力系统、动力电池系统发送车辆的运行状态控制指令,同时控制车载附件电力系统的工作模式;vcu还具有整车系统故障诊断保护与存储功能;等等。
目前,计算vcu的cpu(centralprocessingunit,中央处理器)负荷时,以空闲任务的运行时间作为唯一输入,没有考虑运行过程中的复杂情况,这使得vcu的cpu负荷计算结果存在较大的偏差,从而影响vcu的cpu性能参数的评价,使得vcu的运行性能受到不利影响。
技术实现要素:
本发明实施例提供一种vcu的cpu负荷计算方法、cpu负荷计算系统和车辆,以解决上述问题。
第一方面,本发明实施例提供一种vcu的cpu负荷计算方法,应用于vcu的cpu负荷计算系统,所述方法包括:
按照预先划分的n个计算周期,分别计算整车控制器vcu的中央处理器cpu负荷;
其中,所述n个计算周期对应的n个cpu负荷计算结果用于分别计算n种cpu性能参数,所述n为大于1的整数。
在一些实施例中,在所述计算vcu的cpu负荷的步骤之前,所述方法还包括:
获取所述vcu的任务队列属性;
根据所述vcu的任务队列属性,划分所述计算周期。
在一些实施例中,所述根据所述vcu的任务队列属性,划分所述计算周期的步骤,包括:
根据所述vcu的周期性任务队列的执行周期参数,划分所述计算周期;
或者,
根据所述vcu的周期性任务队列的执行周期参数和周期性任务队列的个数,划分所述计算周期。
在一些实施例中,所述计算周期包括毫秒级计算时段、十毫秒级计算时段、百毫秒级计算时段、千毫秒级计算时段、万毫秒级计算时段中的至少两种。
在一些实施例中,所述计算周期包括十毫秒级计算时段、百毫秒级计算时段和万毫秒级计算时段。
在一些实施例中,所述计算所述vcu的cpu负荷的步骤,包括:
在每种计算周期的每一计算周期内,获取当前调度队列的个数;
对所述当前调度队列的个数进行指数平滑滤波处理。
在一些实施例中,所述cpu性能参数包括任务拥塞程度参数、cpu平均负荷参数、cpu处理能力参数、系统表现参数中的至少两种。
第二方面,本发明实施例提供一种vcu的cpu负荷计算系统,包括:
cpu负荷计算模块,用于按照预先划分的n个计算周期,分别计算整车控制器vcu的中央处理器cpu负荷;
其中,所述n个计算周期对应的n个cpu负荷计算结果用于分别计算n种cpu性能参数,所述n为大于1的整数。
在一些实施例中,所述系统还包括:
任务队列属性获取模块,用于获取所述vcu的任务队列属性;
计算周期划分模块,用于根据所述vcu的任务队列属性,划分所述计算周期。
在一些实施例中,所述计算周期划分模块具体用于:
根据所述vcu的周期性任务队列的执行周期参数,划分所述计算周期;
或者,
根据所述vcu的周期性任务队列的执行周期参数和周期性任务队列的个数,划分所述计算周期。
在一些实施例中,所述计算周期包括毫秒级计算时段、十毫秒级计算时段、百毫秒级计算时段、千毫秒级计算时段、万毫秒级计算时段中的至少两种。
在一些实施例中,所述计算周期包括十毫秒级计算时段、百毫秒级计算时段和万毫秒级计算时段。
在一些实施例中,所述cpu负荷计算模块具体用于:
在每种计算周期的每一计算周期内,获取当前调度队列的个数;
对所述当前调度队列的个数进行指数平滑滤波处理。
在一些实施例中,所述cpu性能参数包括任务拥塞程度参数、cpu平均负荷参数、cpu处理能力参数、系统表现参数中的至少两种。
第三方面,本发明实施例提供一种vcu的cpu负荷计算系统,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现本发明实施例第一方面中任一项所述的vcu的cpu负荷计算方法中的步骤。
第四方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现本发明实施例第一方面中任一项所述的vcu的cpu负荷计算方法的步骤。
第五方面,本发明实施例提供一种车辆,所述车辆包括vcu,所述vcu设置有本发明实施例第二方面中任一项所述的cpu负荷计算系统;或者,所述vcu设置有本发明实施例第三方面所述的cpu负荷计算系统。
本发明实施例中,车辆的vcu可以按照预先划分的多个计算周期,分别计算vcu的cpu负荷。本发明实施例中,通过多个计算周期实现cpu负荷的计算,使得cpu负荷的计算结果更加接近cpu实际负荷。从而,车辆的vcu可以根据不同计算周期的cpu负荷计算结果来计算不同的cpu性能参数,使计算出的cpu性能参数更加合理,从而能够优化vcu的运行性能。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获取其他的附图。
图1是本发明实施例提供的vcu的cpu负荷计算方法的流程示意图;
图2是本发明实施例提供的vcu的任务队列的划分示意图;
图3是本发明实施例提供的vcu的任务队列的运行时序的示例图;
图4是本发明实施例提供的一种cpu负荷计算系统的结构示意图;
图5是本发明实施例提供的另一种cpu负荷计算系统的结构示意图;
图6是本发明实施例提供的另一种cpu负荷计算系统的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明实施例,本领域普通技术人员在没有作出创造性劳动前提下所获取的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供一种vcu的cpu负荷计算方法,应用于vcu的cpu负荷计算系统,所述方法包括如下步骤:
步骤101:按照预先划分的n个计算周期,分别计算vcu的cpu负荷。
其中,上述n个计算周期可计算得到n个cpu负荷计算结果。上述n个计算周期对应的n个cpu负荷计算结果用于分别计算n种cpu性能参数。
其中,n为大于1的整数,即n可以为2、3、4……。
上述n个计算周期的值均不同。
其中,cpu性能参数可包括任务拥塞程度参数、cpu平均负荷参数、cpu处理能力参数、系统表现参数中的至少两种。
通过计算cpu负荷,即可根据计算结果对cpu性能参数进行计算,从而获知vcu操作系统的运行性能,并根据需要对操作系统进行相应地优化调整。其中,对cpu性能参数进行计算可理解为对cpu性能参数进行预估、评估或评价。
本发明实施例即可应用于vcu的调试阶段,也可应用于vcu的运行阶段。在vcu完成初始化之后即可开始计算cpu负荷,在vcu下电后即可停止计算cpu负荷。
本发明实施例中,车辆的vcu可以按照预先划分的多个计算周期,分别计算vcu的cpu负荷。本发明实施例中,通过多个计算周期实现cpu负荷的计算,使得cpu负荷的计算结果更加接近cpu实际负荷。从而,车辆的vcu可以根据不同计算周期的cpu负荷计算结果来计算不同的cpu性能参数,使计算出的cpu性能参数更加合理,从而能够优化vcu的运行性能。
在一些实施例中,在所述计算vcu的cpu负荷的步骤之前,所述方法还包括:
获取所述vcu的任务队列属性;
根据所述vcu的任务队列属性,划分所述计算周期。
如图2所示,vcu的任务队列的属性一般划分为如下几种:
a:事件性任务,例如io触发、特殊报文触发、特殊事件触发;
b:周期性任务队列,例如1ms任务队列、5ms任务队列、10ms任务队列、100ms任务队列;
c:高负载的优化队列;
d:空闲任务。
图3为上述任务队列的运行时序的示例图。
对于不同属性的任务队列,cpu资源的占用时长和cpu资源的占用大小上均有所不同,这将导致不同属性的任务队列对cpu负荷的影响也各不相同。因此,根据vcu的任务队列属性实现计算周期的划分,能够有效提高cpu负荷计算的合理性。
在一些实施例中,所述根据所述vcu的任务队列属性,划分所述计算周期的步骤,包括:
根据所述vcu的周期性任务队列的执行周期参数,划分所述计算周期;
或者,
根据所述vcu的周期性任务队列的执行周期参数和周期性任务队列的个数,划分所述计算周期。
考虑到周期性任务队列需要按照一定的执行周期循环执行,其需要周期性地占用cpu负荷,因此,可以根据vcu的周期性任务队列的执行周期参数划分计算周期。另外,还可以根据vcu的周期性任务队列的执行周期参数和周期性任务队列的个数,划分计算周期,结合周期性任务队列的执行周期参数和个数,能够使得计算周期的划分更加合理,提高cpu负荷的计算效率,节约cpu负荷计算成本。
在一些实施例中,所述计算周期包括毫秒级计算时段、十毫秒级计算时段、百毫秒级计算时段、千毫秒级计算时段、万毫秒级计算时段中的至少两种。
在一些实施例中,所述计算周期包括十毫秒级计算时段、百毫秒级计算时段和万毫秒级计算时段。
例如,vcu的周期性任务队列包括1ms任务队列、5ms任务队列、10ms任务队列和100ms任务队列,则计算周期可以划分为10ms、200ms、一分钟等等。
其中,计算周期为10ms时,每10ms计算一次cpu负荷,得到第一计算结果,该第一计算结果可用于计算任务拥塞程度参数;计算周期为200ms时,每200ms计算一次cpu负荷,得到第二计算结果,该第二计算结果可用于计算cpu平均负荷参数;计算周期为一分钟时,每一分钟计算一次cpu负荷,得到第三计算结果,该第三计算结果可用于计算cpu处理能力参数和系统表现参数。
在一些实施例中,所述计算所述vcu的cpu负荷的步骤,包括:
在每种计算周期的每一计算周期内,获取当前调度队列的个数;
对所述当前调度队列的个数进行指数平滑滤波处理。
以下就cpu负荷的计算方式进行具体地说明:
假设在初始时刻,当前调度队列的个数为n0,初始时刻对应的cpu负荷计算结果为s0;假设在t时刻,当前调度队列的个数为nt,t时刻对应的cpu负荷计算结果为st,t为大于0的时刻。则cpu负荷的计算公式如下:
s0=n0
st=ant+(1-a)st-1
其中,a为大于0小于1的指数平滑因子,a=e-1/x*t,t可为10ms,200ms,60000ms等计算周期,x为经验标定值。一般,a的范围在0.2至0.6之间。
在调度队列个数发生较大变化,对cpu负荷计算结果带来不利影响,使cpu负荷不真实。鉴于此,对当前调度队列的个数进行指数平滑滤波处理,以防止因调度队列个数突然变化而导致cpu负荷计算不合理的问题。
不同的cpu负荷计算结果,正常情况下,第一计算结果、第二计算结果、第三计算结果均处于0.6左右。
当第一计算结果大于2,第二计算结果小于1,第三计算结果小于1时,则cpu负荷对系统运行没有影响,可适当调整设计。
当第一计算结果大于2,第二计算结果小于2时,不运行高负载的优化队列。
综上可知,本发明实施例中,通过预先划分计算周期,在每种计算周期的每一计算周期内,计算vcu的cpu负荷,这样,可以根据不同计算周期的cpu负荷计算结果计算不同的cpu性能参数,使cpu性能参数的计算更加合理,从而能够优化vcu的运行性能。
如图4所示,本发明实施例提供一种vcu的cpu负荷计算系统300,包括:
cpu负荷计算模块301,用于按照预先划分的n个计算周期,分别计算整车控制器vcu的中央处理器cpu负荷;
其中,所述n个计算周期对应的n个cpu负荷计算结果用于分别计算n种cpu性能参数,所述n为大于1的整数。
在一些实施例中,如图5所示,cpu负荷计算系统300还包括:
任务队列属性获取模块302,用于获取所述vcu的任务队列属性;
计算周期划分模块303,用于根据所述vcu的任务队列属性,划分所述计算周期。
在一些实施例中,计算周期划分模块303具体用于:
根据所述vcu的周期性任务队列的执行周期参数,划分所述计算周期;
或者,
根据所述vcu的周期性任务队列的执行周期参数和周期性任务队列的个数,划分所述计算周期。
在一些实施例中,所述计算周期包括毫秒级计算时段、十毫秒级计算时段、百毫秒级计算时段、千毫秒级计算时段、万毫秒级计算时段中的至少两种。
在一些实施例中,所述计算周期包括十毫秒级计算时段、百毫秒级计算时段和万毫秒级计算时段。
在一些实施例中,cpu负荷计算模块301具体用于:
在每种计算周期的每一计算周期内,获取当前调度队列的个数;
对所述当前调度队列的个数进行指数平滑滤波处理。
在一些实施例中,所述cpu性能参数包括任务拥塞程度参数、cpu平均负荷参数、cpu处理能力参数、系统表现参数中的至少两种。
需要说明的是,本发明实施例中上述显示系统300可以是方法实施例中任意实施方式的显示系统,方法实施例中显示系统的任意实施方式都可以被本发明实施例中的上述显示系统300所实现,并达到相同的有益效果,为避免重复,此处不再赘述。
如图6所示,本发明实施例还提供的另一种vcu的cpu负荷计算系统400,该vcu的cpu负荷计算系统400包括存储器401、处理器402及存储在存储器401上并可在处理器402上运行的计算机程序;处理器402执行所述计算机程序时,实现如下步骤:
按照预先划分的n个计算周期,分别计算整车控制器vcu的中央处理器cpu负荷;
其中,所述n个计算周期对应的n个cpu负荷计算结果用于分别计算n种cpu性能参数,所述n为大于1的整数。
在图6中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器402代表的一个或多个处理器和存储器401代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。处理器402负责管理总线架构和通常的处理,存储器401可以存储处理器402在执行操作时所使用的数据。
可选的,处理器402执行所述计算机程序时,还实现:
获取所述vcu的任务队列属性;
根据所述vcu的任务队列属性,划分所述计算周期。
可选的,处理器402执行所述根据所述vcu的任务队列属性,划分所述计算周期的步骤时,实现:
根据所述vcu的周期性任务队列的执行周期参数,划分所述计算周期;
或者,
根据所述vcu的周期性任务队列的执行周期参数和周期性任务队列的个数,划分所述计算周期。
可选的,所述计算周期包括毫秒级计算时段、十毫秒级计算时段、百毫秒级计算时段、千毫秒级计算时段、万毫秒级计算时段中的至少两种。
可选的,所述计算周期包括十毫秒级计算时段、百毫秒级计算时段和万毫秒级计算时段。
可选的,处理器402执行所述计算所述vcu的cpu负荷的步骤时,实现:
在每种计算周期的每一计算周期内,获取当前调度队列的个数;
对所述当前调度队列的个数进行指数平滑滤波处理。
可选的,所述cpu性能参数包括任务拥塞程度参数、cpu平均负荷参数、cpu处理能力参数、系统表现参数中的至少两种。
需要说明的是,本发明实施例中上述vcu的cpu负荷计算系统400可以是方法实施例中任意实施方式的vcu的cpu负荷计算系统,方法实施例中任意实施方式都可以被本实施例中的vcu的cpu负荷计算系统400所实现,以及达到相同的有益效果,此处不再赘述。
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述vcu的cpu负荷计算方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(read-onlymemory,简称rom)、随机存取存储器(randomaccessmemory,简称ram)、磁碟或者光盘等。
在本申请所提供的几个实施例中,应该理解到,所揭露方法和装置,可以通过其他的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其他的形式。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理包括,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述收发方法的部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,简称rom)、随机存取存储器(randomaccessmemory,简称ram)、磁碟或者光盘等各种可以存储程序代码的介质。
本发明实施例还提供一种车辆,所述车辆包括vcu,所述vcu设置有本发明实施例中任一项所述的cpu负荷计算系统。
需要说明的是,本发明实施例中上述车辆的vcu由于使用了本发明实施例中的cpu负荷计算系统,本发明实施例中cpu负荷计算系统的任意实施方式都可以被本发明实施例中的上述车辆所实现,并达到相同的有益效果,为避免重复,此处不再赘述。
以上,仅为本发明实施例的具体实施方式,但本发明实施例的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明实施例揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明实施例的保护范围之内。因此,本发明实施例的保护范围应以权利要求的保护范围为准。