CN116467253A - Soc域控制器实时性保障方法、装置、设备及存储介质 - Google Patents
Soc域控制器实时性保障方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN116467253A CN116467253A CN202310378478.7A CN202310378478A CN116467253A CN 116467253 A CN116467253 A CN 116467253A CN 202310378478 A CN202310378478 A CN 202310378478A CN 116467253 A CN116467253 A CN 116467253A
- Authority
- CN
- China
- Prior art keywords
- processor
- real
- kernel
- time
- target
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 179
- 230000008569 process Effects 0.000 claims abstract description 115
- 238000012545 processing Methods 0.000 claims abstract description 52
- 230000015654 memory Effects 0.000 claims description 30
- 230000006870 function Effects 0.000 claims description 19
- 238000004891 communication Methods 0.000 description 9
- 230000000694 effects Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 238000013461 design Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000017525 heat dissipation Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000033764 rhythmic process Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请涉及一种SOC域控制器实时性保障方法、装置、设备及存储介质,涉及数据处理技术领域。该方法包括:基于目标应用程序包括的多个应用进程中的每个应用进程对应的至少一个处理器内核,确定每个应用进程对应的处理器内核列表,目标应用程序为实时运行的应用程序;将每个应用进程对应的处理器内核列表中包括的处理器内核,从目标操作系统的对称多处理SMP系统中剔除,以通过处理器内核列表中包括的处理器内核实时执行目标应用程序包括的多个应用进程。
Description
技术领域
本申请涉及数据处理技术领域,具体涉及一种SOC域控制器实时性保障方法、装置、设备及存储介质。
背景技术
实时操作系统应具备的最重要特性之一是确定性、可预测性,操作系统应该保证满足所有关键时序约束。这取决于硬件的架构特征、内核中采用的机制和策略,以及用于实现应用程序的编程语言、软件设计等因素。实时的保障可以解决横向控制不稳的问题,也能解决整个链路数据的实时性,横向控制是智能驾驶系统最能体现系统实时响应的子系统,它的控制是否达到要求,实时性灌入数据与运转是最关键的一步。
在上述方法中,硬件方面,第一个影响调度可预测性的是处理器(CentralProcessing Unit,CPU)本身,处理器的内部特性是不确定性的第一个原因,例如指令预取、流水线操作、分支预测、高速缓存存储器和直接存储器访问(Direct Memory Access,DMA)机制;这些特性虽然改善了处理器的平均性能,但是引入了非确定性因素,这些因素阻止了对最坏情况执行时间(Worst-case Execution Time,WCET)的精确估计。为了省电,让操作系统随着工作量不同,动态调节处理器的频率和电压。但是调频会导致处理器停顿,运行速度降低导致延迟增加,严重影响实时性能。除了调频以外,另一个严重影响实时性的是,操作系统进入更深层次的省电睡眠状态,这时的唤醒延迟长达几十毫秒。
由于接收中断请求(Interrupt ReQuest,IRQ)的处理器可能不是响应者休眠的处理器。在这种情况下,前者必须向后者发送重新调度请求,以便恢复响应者。这通常是通过处理器间中断(Inter-Processor Interrupt,IPI)完成的,IPI的发送和处理进一步增加了延迟。此外,多核末级共享缓存(Last Level Cache,LLC),非均匀内存访问架构(non-Uniform Memory Access,NUMA)远端内存访问等,均会导致访问延迟不确定。从而,在智能驾驶SOC域控制器中,对相关非实时性和实时性系统的实时性保障效果较差、效率较低。
发明内容
本申请提供一种SOC域控制器实时性保障方法、装置、设备及存储介质,以至少解决相关技术中对相关非实时性和实时性系统的实时性保障效果较差、效率较低的技术问题。本申请的技术方案如下:
根据本申请涉及的第一方面,提供一种SOC域控制器实时性保障方法,包括:基于目标应用程序包括的多个应用进程中的每个应用进程对应的至少一个处理器内核,确定每个应用进程对应的处理器内核列表,目标应用程序为实时运行的应用程序;将每个应用进程对应的处理器内核列表中包括的处理器内核,从目标操作系统的对称多处理SMP系统中剔除,以通过处理器内核列表中包括的处理器内核实时执行目标应用程序包括的多个应用进程。
根据上述技术手段,本申请可以基于实时运行的目标应用程序包括的多个应用进程中的每个应用进程对应的至少一个处理器内核,确定每个应用进程对应的处理器内核列表,从而将每个应用进程对应的处理器内核列表中包括的处理器内核,从目标操作系统的对称多处理SMP系统中剔除,以通过处理器内核列表中包括的处理器内核实时执行目标应用程序包括的多个应用进程。以通过实时应用进程对应的处理器内核执行实时应用进程,从而可以提高相关非实时性和实时性进程的实时性保障效果和运行效率。
在一种可能的实施方式中,上述方法还包括:配置目标操作系统的第一内核参数,关闭目标操作系统的Tick模式。
根据上述技术手段,本申请可以通过关闭目标操作系统的Tick模式,避免多余的Tick中断影响实时应用进程的运行,提高实时应用进程的运行效率。
在一种可能的实施方式中,上述方法还包括:从处理器内核列表中包括的处理器内核上卸载读取复制RCU回调处理,降低处理器内核列表中包括的处理器内核上操作系统的抖动;设置RCU内核线程的目标优先级,目标优先级低于实时应用进程的优先级。
根据上述技术手段,本申请可以从处理器内核列表中包括的处理器内核上卸载读取复制RCU回调处理,降低处理器内核列表中包括的处理器内核上操作系统的抖动;并设置RCU内核线程的目标优先级低于实时应用进程的优先级,从而避免实时应用进程迁移到目标操作系统上后,由于优先级低于RCU内核线程的目标优先级,而影响实时应用进程的运行。
在一种可能的实施方式中,上述方法还包括:配置目标操作系统的第二内核参数,通过目标处理器内核处理非实时应用进程,目标处理器内核与处理器内核列表中包括的处理器内核不同。
根据上述技术手段,本申请可以配置目标操作系统的第二内核参数,以通过目标处理器内核处理非实时应用进程,从而将目标操作系统中断指定到对应的处理器内核上进行运行,避免非实时应用进程的中断影响实时应用进程的运行。
在一种可能的实施方式中,上述方法还包括:禁用irqbalance功能,避免将硬件中断分配到处理器内核列表中包括的处理器内核上;禁用内核软死锁检测器,使得处理器内核列表中包括的处理器内核在空闲时,不开启节能模式,减少中断唤醒延迟。
根据上述技术手段,本申请可以通过禁用irqbalance功能,避免将硬件中断分配到处理器内核列表中包括的处理器内核上;并且通过禁用内核软死锁检测器,使得处理器内核列表中包括的处理器内核在空闲时,不开启节能模式,减少中断唤醒延迟。
根据本申请提供的第二方面,提供一种SOC域控制器实时性保障装置,包括处理模块;处理模块,用于基于目标应用程序包括的多个应用进程中的每个应用进程对应的至少一个处理器内核,确定每个应用进程对应的处理器内核列表,目标应用程序为实时运行的应用程序;处理模块,用于将每个应用进程对应的处理器内核列表中包括的处理器内核,从目标操作系统的对称多处理SMP系统中剔除,以通过处理器内核列表中包括的处理器内核实时执行目标应用程序包括的多个应用进程。
在一种可能的实施方式中,处理模块,用于配置目标操作系统的第一内核参数,关闭目标操作系统的Tick模式。
在一种可能的实施方式中,处理模块,用于从处理器内核列表中包括的处理器内核上卸载读取复制RCU回调处理,降低处理器内核列表中包括的处理器内核上操作系统的抖动;处理模块,用于设置RCU内核线程的目标优先级,目标优先级低于实时应用进程的优先级。
在一种可能的实施方式中,处理模块,用于配置目标操作系统的第二内核参数,通过目标处理器内核处理非实时应用进程,目标处理器内核与处理器内核列表中包括的处理器内核不同。
在一种可能的实施方式中,处理模块,用于禁用irqbalance功能,避免将硬件中断分配到处理器内核列表中包括的处理器内核上;处理模块,用于禁用内核软死锁检测器,使得处理器内核列表中包括的处理器内核在空闲时,不开启节能模式,减少中断唤醒延迟。
根据本申请提供的第三方面,提供一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,处理器被配置为执行指令,以实现上述第一方面及其任一种可能的实施方式的方法。
根据本申请提供的第四方面,提供一种计算机可读存储介质,当计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行上述第一方面中及其任一种可能的实施方式的方法。
根据本申请提供的第五方面,提供一种车辆,该车辆包括如第二方面的SOC域控制器实时性保障装置,该车辆用于实现如第一方面的方法。
根据本申请提供的第六方面,提供一种计算机程序产品,计算机程序产品包括计算机指令,当计算机指令在电子设备上运行时,使得电子设备执行上述第一方面及其任一种可能的实施方式的方法。
由此,本申请的上述技术特征具有以下有益效果:
(1)可以基于实时运行的目标应用程序包括的多个应用进程中的每个应用进程对应的至少一个处理器内核,确定每个应用进程对应的处理器内核列表,从而将每个应用进程对应的处理器内核列表中包括的处理器内核,从目标操作系统的对称多处理SMP系统中剔除,以通过处理器内核列表中包括的处理器内核实时执行目标应用程序包括的多个应用进程。以通过实时应用进程对应的处理器内核执行实时应用进程,从而可以提高相关非实时性和实时性进程的实时性保障效果和运行效率。
(2)可以通过关闭目标操作系统的Tick模式,避免多余的Tick中断影响实时应用进程的运行,提高实时应用进程的运行效率。
(3)可以从处理器内核列表中包括的处理器内核上卸载读取复制RCU回调处理,降低处理器内核列表中包括的处理器内核上操作系统的抖动;并设置RCU内核线程的目标优先级低于实时应用进程的优先级,从而避免实时应用进程迁移到目标操作系统上后,由于优先级低于RCU内核线程的目标优先级,而影响实时应用进程的运行。
(4)可以配置目标操作系统的第二内核参数,以通过目标处理器内核处理非实时应用进程,从而将目标操作系统中断指定到对应的处理器内核上进行运行,避免非实时应用进程的中断影响实时应用进程的运行。
(5)可以通过禁用irqbalance功能,避免将硬件中断分配到处理器内核列表中包括的处理器内核上;并且通过禁用内核软死锁检测器,使得处理器内核列表中包括的处理器内核在空闲时,不开启节能模式,减少中断唤醒延迟。
需要说明的是,第二方面至第五方面中的任一种实现方式所带来的技术效果可参见第一方面中对应实现方式所带来的技术效果,此处不再赘述。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理,并不构成对本申请的不当限定。
图1是根据一示例性实施例示出的一种SOC域控制器实时性保障系统的结构示意图;
图2是根据一示例性实施例示出的一种SOC域控制器实时性保障方法的流程图;
图3是根据一示例性实施例示出的又一种SOC域控制器实时性保障方法的流程图;
图4是根据一示例性实施例示出的又一种SOC域控制器实时性保障方法的流程图;
图5是根据一示例性实施例示出的又一种SOC域控制器实时性保障方法的流程图;
图6是根据一示例性实施例示出的又一种SOC域控制器实时性保障方法的流程图;
图7是根据一示例性实施例示出的一种SOC域控制器实时性保障装置的框图;
图8是根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
为了使本领域普通人员更好地理解本申请的技术方案,下面将结合附图,对本申请实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
由于提升内存频率可降低内存访问延时,使用双通道内存,这两个内存CPU可分别寻址、读取数据,从而使内存的带宽增加一倍,数据存取速度理论上也相应增加一倍,内存访问延时得到缩短,进而提升系统的实时性能;处理器散热设计不好,温度过高时会引发CPU降频保护,系统运行频率降低影响实时性,热设计应确保在高工作量时的温度不会引发降频。硬件上GPU与CPU共享L3 Cache,因此人机交互显示界面(Graphical UserInterface,GUI)会影响实时任务的实时性。
本申请采用降低不确定性,提高可预期性,在此基础上,再提高速度,降低延时的原则;除处理器外,内存方面,使用双通道内存,尽可能提高内存频率;散热当面,针对处理器工作负载设计良好的散热结构,否则芯片保护会强制降频,频率调整CPU会停顿几十上百us;从操作系统方面来处理,尽可能的不让操作系统非实时部分影响实时部分,无论是软件还是硬件。
本申请实施例提供的SOC域控制器实时性保障方法,可以适用于SOC域控制器实时性保障系统。图1示出了该SOC域控制器实时性保障系统的一种结构示意图。如图1所示,SOC域控制器实时性保障系统10包括:电子设备11和服务器12。
SOC域控制器实时性保障系统10可以用于物联网,可以包括多个中央处理器(central processing unit,CPU)、多个内存、存储有多个操作系统的存储装置等硬件。
电子设备11可以用于物联网,可以用于执行本申请提供一种SOC域控制器实时性保障方法,电子设备11通过与服务器12之间进行数据交互,实现SOC域控制器实时性保障方法,电子设备11具体可以为车载电脑。
服务器12可以用于物联网,用于实现数据的存储,例如服务器12为SOC域控制器实时性保障方法对应的服务器,用于存储待处理的数据,并与电子设备11进行数据交互,实现SOC域控制器实时性保障方法。
为了便于理解,以下结合附图对本申请提供的SOC域控制器实时性保障方法进行具体介绍。
图2是根据一示例性实施例示出的一种SOC域控制器实时性保障方法的流程图,如图2所示,该SOC域控制器实时性保障方法包括以下S201-S202:
S201、基于目标应用程序包括的多个应用进程中的每个应用进程对应的至少一个处理器内核,确定每个应用进程对应的处理器内核列表。
其中,目标应用程序为实时运行的应用程序。
需要说明的是,本申请实施例分为硬件驱动部分实时性配置设置和应用软件方面配置设置两部分组成,首先对硬件驱动部分实时性配置设置进行说明。
S202、将每个应用进程对应的处理器内核列表中包括的处理器内核,从目标操作系统的对称多处理SMP系统中剔除,以通过处理器内核列表中包括的处理器内核实时执行目标应用程序包括的多个应用进程。
可选的,在中央处理器(Central Processing Unit,CPU)为多核心CPU的情况下,需要设置内核参数isolcpus=[cpu列表],将处理器内核列表中的CPU从linux(即目标操作系统)内核对称多处理(Symmetrical Multi-Processing,SMP)平衡和调度算法中剔除,以将剔除的CPU用于实施运行的应用程序。其中,[cpu列表]即为处理器内核列表。
需要说明的是,多核心CPU包括的多个处理器内核的编号从“0”开始,处理器内核列表的表示方法有三种:numA,numB,...,numN,numA-numN,以及上述两种表示方法的组合:numA,...,numM-numN。例如:isolcpus=0,3,4-7表示隔离CPU0、3、4、5、6、7;GRUB_CMDLINE_LINUX=“isolcpus=2,3”。
示例性的,同时通过任务函数pthread_attr_setaffinity_np()设置实时应用程序(实时应用进程)在指定的处理器内核上工作进行相应的隔离,隔离后的CPU的L1、L2缓存命中率相应的也会得到提高。向实时进程设置内核参数supported_cpus,指定实时进程支持的处理器内核,实时进程任务会自动放到指定的处理器内核上运行。
本申请实施例中,可以基于实时运行的目标应用程序包括的多个应用进程中的每个应用进程对应的至少一个处理器内核,确定每个应用进程对应的处理器内核列表,从而将每个应用进程对应的处理器内核列表中包括的处理器内核,从目标操作系统的对称多处理SMP系统中剔除,以通过处理器内核列表中包括的处理器内核实时执行目标应用程序包括的多个应用进程。以通过实时应用进程对应的处理器内核执行实时应用进程,从而可以提高相关非实时性和实时性进程的实时性保障效果和运行效率。
在一些实施例中,为了提高操作系统运行应用进程的效率,如图3所示,本申请实施例提供的一种SOC域控制器实时性保障方法中,还可以包括S301:
S301、配置目标操作系统的第一内核参数,关闭目标操作系统的Tick模式。
可选的,将对应处理器内核作为实时应用进程使用后,由于实时应用进程调度是完全基于优先级的调度器,并且已将操作系统任务从这些处理器内核上剔除,处理器内核上的Tick模式也就没用了,避免多余的Tick中断影响实时任务的运行,需要将对应的处理器内核配置为Full Dynamic Tick模式,即关闭Tick模式。
具体的,通过添加目标操作系统的内核参数nohz_full=[cpu列表]配置。nohz_full=[cpu列表]在使用CONFIG_NO_HZ_FULL=y构建的内核中才生效。例如:GRUB_CMDLINE_LINUX=“isolcpus=2,3xxxx.upported_cpus=0x06 nohz_full=2,3”)这里是通过目标操作系统的内核参数配置。
本申请实施例中,可以通过关闭目标操作系统的Tick模式,避免多余的Tick中断影响实时应用进程的运行,提高实时应用进程的运行效率。
在一些实施例中,为了提高操作系统运行应用进程的效率,如图4所示,本申请实施例提供的一种SOC域控制器实时性保障方法中,还可以包括S401-S402:
S401、从处理器内核列表中包括的处理器内核上卸载读取复制RCU回调处理,降低处理器内核列表中包括的处理器内核上操作系统的抖动。
S402、设置RCU内核线程的目标优先级,目标优先级低于实时应用进程的优先级。
可选的,从处理器内核列表包括的处理器核心上卸载读取复制(Read-Copy-Update,RCU)回调处理,使用内核线程“rcuox/N”代替,通过目标操作系统的内核参数rcu_nocbs=[cpu列表]指定的CPU列表设置。
需要说明的是,这对于高性能计算(High performance computing,HPC)和实时工作负载很有用,这样可以减少卸载RCU的CPU上操作系统抖动(“rcuox/N”,N表示CPU编号,‘x’:‘b'是RCU-bh的b,‘p'是RCU-preempt,‘s’是RCU-sched);rcu_nocbs=[cpu列表]在使用CONFIG_RCU_NOCB_CPU=y构建的内核中才生效。
可选的,除此之外需要设置RCU内核线程rcuc/n和rcub/n线程的SCHEDFIFO优先级值RCUKTHREADPRIO,RCUKTHREADPRIO设置为低于最低优先级线程的优先级,也就是说至少要使该优先级低于实时进程实时应用的优先级,避免实时进程实时应用迁移到目标操作系统后,由于优先级低于RCUKTHREAD的优先级而实时性受到影响。
本申请实施例中,可以从处理器内核列表中包括的处理器内核上卸载读取复制RCU回调处理,降低处理器内核列表中包括的处理器内核上操作系统的抖动;并设置RCU内核线程的目标优先级低于实时应用进程的优先级,从而避免实时应用进程迁移到目标操作系统上后,由于优先级低于RCU内核线程的目标优先级,而影响实时应用进程的运行。
在一些实施例中,为了提高操作系统运行应用进程的效率,如图5所示,本申请实施例提供的一种SOC域控制器实时性保障方法中,还可以包括S501:
S501、配置目标操作系统的第二内核参数,通过目标处理器内核处理非实时应用进程。
其中,目标处理器内核与处理器内核列表中包括的处理器内核不同。
可选的,中断隔离用户态实时应用运行时,中断优先级最高,处理器必须响应中断,虽然有ipipe会简单将非实时设备中断挂起,但是频繁的非实时设备中断产生可能引入无限延迟,也会影响实时任务的运行。
因此在系统级芯片(System on Chip,SOC)为多核心的情况下,通过内核参数irqaffinity==[cpu列表],设置目标操作系统中断的亲和性,设置后,默认由这些处理器核心来处理中断。避免了非实时目标操作系统中断影响对应内核上的实时应用,将目标操作系统中断指定到相应内核处理,添加参数:GRUB_CMDLINE_LINUX=“isolcpus=2,3xxxx.supported_cpus=0x06 nohz_full=2,3rcu_nocbs=2,3irqaffinity=1,2”。编写实时设备驱动程序时,中断处理程序需要尽可能的短。
本申请实施例中,可以配置目标操作系统的第二内核参数,以通过目标处理器内核处理非实时应用进程,从而将目标操作系统中断指定到对应的处理器内核上进行运行,避免非实时应用进程的中断影响实时应用进程的运行。
在一些实施例中,为了提高操作系统运行应用进程的效率,如图6所示,本申请实施例提供的一种SOC域控制器实时性保障方法中,还可以包括S601-S602:
S601、禁用irqbalance功能,避免将硬件中断分配到处理器内核列表中包括的处理器内核上。
可选的,禁用irqbanlance,linux irqbalance用于优化中断分配,它会自动收集系统数据以分析使用模式,并依据系统负载状况将工作状态置于Performance mode或Power-save mode。简单来说irqbalance会将硬件中断分配到各个处理器核心上处理。
可选的,禁用irqbanlance,避免不相干中断发生在实时运行的处理器核心上。避免周期中断的NMI watchdog影响实时进程实时性需要关闭NMI watchdog,传递内核参数nmi_watchdog=0。
S602、禁用内核软死锁检测器,使得处理器内核列表中包括的处理器内核在空闲时,不开启节能模式,减少中断唤醒延迟。
可选的,禁用内核软死锁soft-lockup检测器,使得处理器核心在空闲时,不要使用省电功能PALHALTLIGHT,这增加了功耗。但它减少了中断唤醒延迟,这可以提高某些环境下的性能(例如网络通信或实时系统),不使用HLT在空闲循环中进行节电,而是轮询以重新安排事件。系统构建时,除以上提到的相关内核配置,其它实时性配置CONFIGMIGRATION=n、CONFIGPREEMPT=y、CONFIGCPUFREQ=n、CONFIGCPUIDLE=n也需要做相关的配置处理。
本申请实施例中,可以通过禁用irqbalance功能,避免将硬件中断分配到处理器内核列表中包括的处理器内核上;并且通过禁用内核软死锁检测器,使得处理器内核列表中包括的处理器内核在空闲时,不开启节能模式,减少中断唤醒延迟。
可选的,在应用软件方面配置设置:,可以设置相关优先级、合理布局软件架构、减少通信数据中断频次、采用静态语言C/C++作为开发基础语言。
具体的,可以使用静态编译语言如C/C++,减少使用解释性语言如python,java等;编写高性能的代码,逻辑需要尽量简单,在SOC这种智能驾驶领域应用的芯片上建议尽量使用空间换时间方式,同时使用带GPU接口的矩阵算法提供传感识别等相关对CPU算力要求高的模块提高本身程序的执行性能。尽量让分支有规律性,使用likely()/unlikely()或编写无分支代码,这样减少程序的压栈出栈的频次。利用cache局部性原理,防止伪共享,做到真正的内存共享;提高进程间模块间的通信交互性能。任务执行有限级的设定,关系到实时进程任务的执行情况,故而要从系统整体性能角度合理分配任务优先级及其等待。中断频繁也会影响CPU占用率的提高,驱动程序中断处理尽可能短,做到点到即止的处理节奏。系统链路的数据结构的设计与加解密算法,也是影响系统应用程序的实时性能的关键因素;这里的处理办法是根据系统主要是CAN通信+以太网模式,在设计数据传输结构统一采用一字节对齐方式,来减少通信链路上的数量;针对图像和点云传输量大的采用H.265和LZO算法进行数据压缩后在传输,保证每一包数据量传足够多的数据,减少网网卡的通信中断频次。
上述主要从方法的角度对本申请实施例提供的方案进行了介绍。为了实现上述功能,SOC域控制器实时性保障装置或电子设备包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法,示例性的对SOC域控制器实时性保障装置或电子设备进行功能模块的划分,例如,SOC域控制器实时性保障装置或电子设备可以包括对应各个功能划分的各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
图7是根据一示例性实施例示出的一种SOC域控制器实时性保障装置的框图。参照图7,该SOC域控制器实时性保障装置700包括:处理模块701。
处理模块701,用于基于目标应用程序包括的多个应用进程中的每个应用进程对应的至少一个处理器内核,确定每个应用进程对应的处理器内核列表,目标应用程序为实时运行的应用程序;处理模块701,用于将每个应用进程对应的处理器内核列表中包括的处理器内核,从目标操作系统的对称多处理SMP系统中剔除,以通过处理器内核列表中包括的处理器内核实时执行目标应用程序包括的多个应用进程。
在一种可能的实施方式中,处理模块701,用于配置目标操作系统的第一内核参数,关闭目标操作系统的Tick模式。
在一种可能的实施方式中,处理模块701,用于从处理器内核列表中包括的处理器内核上卸载读取复制RCU回调处理,降低处理器内核列表中包括的处理器内核上操作系统的抖动;处理模块701,用于设置RCU内核线程的目标优先级,目标优先级低于实时应用进程的优先级。
在一种可能的实施方式中,处理模块701,用于配置目标操作系统的第二内核参数,通过目标处理器内核处理非实时应用进程,目标处理器内核与处理器内核列表中包括的处理器内核不同。
在一种可能的实施方式中,处理模块701,用于禁用irqbalance功能,避免将硬件中断分配到处理器内核列表中包括的处理器内核上;处理模块701,用于禁用内核软死锁检测器,使得处理器内核列表中包括的处理器内核在空闲时,不开启节能模式,减少中断唤醒延迟。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图8是根据一示例性实施例示出的一种电子设备的框图。如图8所示,电子设备800包括但不限于:处理器801和存储器802。
其中,上述的存储器802,用于存储上述处理器801的可执行指令。可以理解的是,上述处理器801被配置为执行指令,以实现上述实施例中的SOC域控制器实时性保障方法。
需要说明的是,本领域技术人员可以理解,图8中示出的电子设备结构并不构成对电子设备的限定,电子设备可以包括比图8所示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
处理器801是电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器802内的软件程序和/或模块,以及调用存储在存储器802内的数据,执行电子设备的各种功能和处理数据,从而对电子设备进行整体监控。处理器801可包括一个或多个处理单元。可选的,处理器801可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器801中。
存储器802可用于存储软件程序以及各种数据。存储器802可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能模块所需的应用程序(比如获取单元、处理单元等)等。此外,存储器802可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
在示例性实施例中,还提供了一种包括指令的计算机可读存储介质,例如包括指令的存储器802,上述指令可由电子设备800的处理器801执行以实现上述实施例中的SOC域控制器实时性保障方法。
在实际实现时,图7中的处理模块701的功能均可以由图8中的处理器801调用存储器802中存储的计算机程序实现。其具体的执行过程可参考上实施例中的SOC域控制器实时性保障方法部分的描述,这里不再赘述。
可选地,计算机可读存储介质可以是非临时性计算机可读存储介质,例如,该非临时性计算机可读存储介质可以是只读存储器(Read-Only Memory,ROM)、随机存储存储器(Random Access Memory,RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
在示例性实施例中,本申请实施例还提供了一种包括一条或多条指令的计算机程序产品,该一条或多条指令可以由电子设备800的处理器801执行以完成上述实施例中的SOC域控制器实时性保障方法。
需要说明的是,上述计算机可读存储介质中的指令或计算机程序产品中的一条或多条指令被电子设备的处理器执行时实现上述SOC域控制器实时性保障方法实施例的各个过程,且能达到与上述SOC域控制器实时性保障方法相同的技术效果,为避免重复,这里不再赘述。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全分类部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全分类部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全分类部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例方法的全分类部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (9)
1.一种SOC域控制器实时性保障方法,其特征在于,包括:
基于目标应用程序包括的多个应用进程中的每个应用进程对应的至少一个处理器内核,确定每个应用进程对应的处理器内核列表,所述目标应用程序为实时运行的应用程序;
将每个应用进程对应的处理器内核列表中包括的处理器内核,从目标操作系统的对称多处理SMP系统中剔除,以通过处理器内核列表中包括的处理器内核实时执行目标应用程序包括的多个应用进程。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
配置所述目标操作系统的第一内核参数,关闭所述目标操作系统的Tick模式。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
从处理器内核列表中包括的处理器内核上卸载读取复制RCU回调处理,降低处理器内核列表中包括的处理器内核上操作系统的抖动;
设置RCU内核线程的目标优先级,所述目标优先级低于实时应用进程的优先级。
4.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
配置所述目标操作系统的第二内核参数,通过目标处理器内核处理非实时应用进程,所述目标处理器内核与处理器内核列表中包括的处理器内核不同。
5.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
禁用irqbalance功能,避免将硬件中断分配到处理器内核列表中包括的处理器内核上;
禁用内核软死锁检测器,使得处理器内核列表中包括的处理器内核在空闲时,不开启节能模式,减少中断唤醒延迟。
6.一种SOC域控制器实时性保障装置,其特征在于,所述SOC域控制器实时性保障装置包括:处理模块;
所述处理模块,用于基于目标应用程序包括的多个应用进程中的每个应用进程对应的至少一个处理器内核,确定每个应用进程对应的处理器内核列表,所述目标应用程序为实时运行的应用程序;
所述处理模块,用于将每个应用进程对应的处理器内核列表中包括的处理器内核,从目标操作系统的对称多处理SMP系统中剔除,以通过处理器内核列表中包括的处理器内核实时执行目标应用程序包括的多个应用进程。
7.一种电子设备,其特征在于,包括:处理器以及存储器;其中,所述存储器用于存储一个或多个程序,所述一个或多个程序包括计算机执行指令,当所述电子设备运行时,处理器执行所述存储器存储的所述计算机执行指令,以使所述电子设备执行权利要求1-5中任一项所述的方法。
8.一种计算机可读存储介质,其特征在于,当所述计算机可读存储介质中存储的计算机执行指令由电子设备的处理器执行时,所述电子设备能够执行如权利要求1至5中任一项所述的方法。
9.一种车辆,其特征在于,所述车辆包括如权利要求6所述的SOC域控制器实时性保障装置,所述车辆用于实现如权利要求1至5中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310378478.7A CN116467253A (zh) | 2023-04-10 | 2023-04-10 | Soc域控制器实时性保障方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310378478.7A CN116467253A (zh) | 2023-04-10 | 2023-04-10 | Soc域控制器实时性保障方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116467253A true CN116467253A (zh) | 2023-07-21 |
Family
ID=87172887
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310378478.7A Pending CN116467253A (zh) | 2023-04-10 | 2023-04-10 | Soc域控制器实时性保障方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116467253A (zh) |
-
2023
- 2023-04-10 CN CN202310378478.7A patent/CN116467253A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105183128B (zh) | 强制处理器进入低功率状态 | |
US8219993B2 (en) | Frequency scaling of processing unit based on aggregate thread CPI metric | |
GB2544609B (en) | Granular quality of service for computing resources | |
US8190863B2 (en) | Apparatus and method for heterogeneous chip multiprocessors via resource allocation and restriction | |
Jang et al. | Energy reduction in consolidated servers through memory-aware virtual machine scheduling | |
US8799902B2 (en) | Priority based throttling for power/performance quality of service | |
Sridharan et al. | Holistic run-time parallelism management for time and energy efficiency | |
US8484495B2 (en) | Power management in a multi-processor computer system | |
US20090320031A1 (en) | Power state-aware thread scheduling mechanism | |
US20140089699A1 (en) | Power management system and method for a processor | |
US9411649B2 (en) | Resource allocation method | |
JP5763168B2 (ja) | プロセッサパフォーマンスマネジメントシステムからの処理のマスキングによる電源消費の低減 | |
US20130124814A1 (en) | Increasing memory capacity in power-constrained systems | |
US20120297216A1 (en) | Dynamically selecting active polling or timed waits | |
Ye et al. | Maracas: A real-time multicore vcpu scheduling framework | |
US20190065420A1 (en) | System and method for implementing a multi-threaded device driver in a computer system | |
WO2014142847A1 (en) | Multi-core binary translation task processing | |
CN112306652A (zh) | 带有上下文提示的功能的唤醒和调度 | |
US10127076B1 (en) | Low latency thread context caching | |
Steigerwald et al. | Green software | |
Qian et al. | Energy-efficient I/O thread schedulers for NVMe SSDs on NUMA | |
CN116467253A (zh) | Soc域控制器实时性保障方法、装置、设备及存储介质 | |
US8819349B2 (en) | Invoking operating system functionality without the use of system calls | |
Eibel et al. | Empya: Saving energy in the face of varying workloads | |
Nunokawa et al. | Conflict-aware workload co-execution on SX-aurora TSUBASA |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |