一种嵌入式多核操作系统的主核切换自适应方法与流程

专利检索2026-08-14  25


本发明涉及一种国产嵌入式实时操作系统reworks在smp多核系统上运行时,使用统一的逻辑cpu id识别主核,并根据系统中各cpu核的性能分布对主核进行适应切换的方法,属于嵌入式实时操作系统领域。


背景技术:

1、smp(symmetrical multi-processing)即对称多处理器结构,简称smp。在smp系统中,所有的处理器单元的地位都是平等的,即处理器单元之间没有主次/从属关系,都是平等的。此处“处理器单元”是指处理器核心,以下用cpu来指代处理器核心。

2、然而,当系统启动时,smp结构中必须存在一个主cpu,因为在启动阶段只有一个cpu在执行启动流程,也就是说只有一个cpu来系统进行引导和初始化。这个cpu被称为“引导cpu”,其余的处理器处于暂停状态。

3、“引导cpu”负责完成整个系统的引导和初始化,并创建系统原始进程,搭建好多个cpu同时参与任务处理的工作环境,才启动所有的cpu,让它们完成自身的初始化并参与系统运行。

4、smp多核处理器通常包含两个以上的cpu核心,为了唯一标识每一个cpu,芯片厂商为每个cpu分配了一个id,id的命名方式由芯片厂商定义,没有统一的标准,我们称之为物理cpu id。

5、系统启动过程中,引导cpu和其他cpu的工作流程和内容都不尽相同,因此操作系统程序需要根据cpu id的来区分cpu,并为之分配不同的工作流程和内容。操作系统运行过程中,任务调度也需要根据cpu id来配置线程的亲和性。然而,由于物理cpu id的非标准性,以及引导cpu的不确定性,导致操作系统运行在不同的处理器上时都需要根据处理器的实际情况对初始化过程进行修改,执行流程与处理器架构耦合性高,程序对硬件变化的适应性差。

6、同时,随着技术的发展和应用的需求变化,smp多核处理器中出现“大小核”,即核与核之间性能不同的情况,通常大核性能较高,小核相对性能低。操作系统一般以“引导cpu”作为主核,调度算法对主核更具亲和性,倾向于将任务优先分配给主核进行处理。因此,当处理器以小核作为引导核时,会导致大部分任务优先在性能较低的核上运行,影响系统整体的性能表现。


技术实现思路

1、本发明要解决的技术问题是:

2、1)由于物理cpu id的非标准性,以及引导cpu的不确定性,导致操作系统运行在不同的处理器上时都需要根据处理器的实际情况对初始化过程进行修改,执行流程与处理器架构耦合性高,程序对硬件变化的适应性差;

3、2)当处理器中存在“大小核”或者在处理器各个cpu存在性能差异的情况下,以小核或者性能较低的核作为“引导cpu”,同时操作系统调度算法优先使用“引导cpu”作为主核,优先将任务分配给主核执行,造成系统整体性能降低,不能充分发挥处理器和操作系统的能力。

4、为了解决上述技术问题,本发明的技术方案是提供了一种嵌入式多核操作系统的主核切换自适应方法,其特征在于,包括以下步骤:

5、步骤1、建立物理cpu id到逻辑cpu id的映射表,通过该映射表获得当前smp多核处理器系统的所有处理器核心的物理cpu id所对应的逻辑cpu id,其中,将具有最小逻辑cpu id的处理器核心作为引导cpu;

6、步骤2、在系统启动时,根据逻辑cpu id来区分主、从cpu,先由主cpu执行系统的初始化,再由主cpu通过处理器提供的接口启动其他从cpu进入初始化流程,所有处理器核心完成了自身初始化以后,主cpu和其他从cpu之间通过核间中断进行通信,所有处理器核心同步进入可调度状态;

7、步骤3、若引导cpu为小核,则通过步骤1所建立的映射表使得性能高的处理器核心的逻辑cpu id更大并且打开调度程序scheduler中的主核切换,在进行任务调度时,操作系统优先将任务调度到逻辑cpu id更大的处理器核心上;

8、若引导cpu为大核,则通过步骤1所建立的映射表使得性能高的处理器核心的逻辑cpu id更小并且关闭调度程序scheduler中的主核切换,在进行任务调度时,操作系统根据逻辑cpu id由小至大的顺序进行任务调度。

9、优选地,在步骤2中,主cpu执行系统的初始化时,对自身运行需要的寄存器、mmu、cache进行配置,并初始化全局的页表、堆栈、中断、系统时钟,然后对操作系统中断异常管理、内存管理、任务管理、任务通信进行初始化。

10、优选地,在步骤2中,其他从cpu进入初始化流程后,从cpu对自身运行需要的寄存器、mmu、cache、页表、中断、时钟进行配置,但对于共用的页表、中断向量、系统时钟,从cpu只需要使用主cpu初始化后的数据即可。

11、与现有技术方案相比,本发明具有如下有益效果:

12、1)本发明提供了一种结构简单、可靠性高的逻辑cpu id映射方法,屏蔽不同处理器之间物理cpu id命名的差异,使得操作系统可以使用统一的编号规则来区分cpu,而不需要根据物理cpu id的特殊性对操作系统代码进行修改;

13、2)基于第1)点的映射方法,设计一种为操作系统调度算法切换主核的方法,当操作系统运行在“大小核”处理器上时,可以通过主核切换,保证系统的工作量集中在性能高的核上,提高系统的整体的性能。



技术特征:

1.一种嵌入式多核操作系统的主核切换自适应方法,其特征在于,包括以下步骤:

2.如权利要求1所述的一种嵌入式多核操作系统的主核切换自适应方法,其特征在于,在步骤2中,主cpu执行系统的初始化时,对自身运行需要的寄存器、mmu、cache进行配置,并初始化全局的页表、堆栈、中断、系统时钟,然后对操作系统中断异常管理、内存管理、任务管理、任务通信进行初始化。

3.如权利要求1所述的一种嵌入式多核操作系统的主核切换自适应方法,其特征在于,在步骤2中,其他从cpu进入初始化流程后,从cpu对自身运行需要的寄存器、mmu、cache、页表、中断、时钟进行配置,但对于共用的页表、中断向量、系统时钟,从cpu只需要使用主cpu初始化后的数据即可。


技术总结
本发明涉及一种嵌入式多核操作系统的主核切换自适应方法。本发明提供了一种结构简单、可靠性高的逻辑CPU ID映射方法,屏蔽不同处理器之间物理CPU ID命名的差异,使得操作系统可以使用统一的编号规则来区分CPU,而不需要根据物理CPU ID的特殊性对操作系统代码进行修改;基于前述的映射方法,设计一种为操作系统调度算法切换主核的方法,当操作系统运行在“大小核”处理器上时,可以通过主核切换,保证系统的工作量集中在性能高的核上,提高系统的整体的性能。

技术研发人员:周洁,龚超,李娟,谢忱,王永兵,王敬平
受保护的技术使用者:华东计算技术研究所(中国电子科技集团公司第三十二研究所)
技术研发日:
技术公布日:2024/5/29
转载请注明原文地址:https://win.8miu.com/read-1166599.html

最新回复(0)