基于众核处理器的多系统启动管理方法及系统技术方案

技术编号:37806871 阅读:27 留言:0更新日期:2023-06-09 09:36
本发明专利技术公开了一种基于众核处理器的多系统启动管理方法及系统,本发明专利技术方法包括分别为通用操作系统和实时系统分配处理器核心和内存空间,在内存空间中加载并运行启动程序以执行下述步骤:启动处理器核心则对通用操作系统和实时系统全局初始化后在运行通用操作系统的处理器核心则在当前的处理器核心上启动并运行通用操作系统,并通过全局变量rtflag控制各个实时系统的启动或暂停;运行实时系统的处理器核心进入实时系统入口程序,根据全局变量rtflag的变化启动或暂停实时系统。本发明专利技术能够在众核处理器中启动通用操作系统和实时系统使之协同工作,实现利用操作系统对无缓存一致性众核处理器的统一管理。性众核处理器的统一管理。性众核处理器的统一管理。

【技术实现步骤摘要】
基于众核处理器的多系统启动管理方法及系统


[0001]本专利技术涉及网络处理领域中的操作系统启动技术,具体涉及一种基于众核处理器的多系统启动管理方法及系统。

技术介绍

[0002]在进行网络数据转发时,采用众核处理器既能够像通用处理器一样具备极高的灵活性,又能利用众核处理器中核心多、并行性高的特点达到极高的转发效率。相比较而言,采用专用转发芯片则灵活性会受到极大限制,采用通用处理器则并行性不足,转发效率较低。
[0003]众核处理器是一种多核处理器,并且核心数远多于普通的多核处理器。超多的核心数造成处理器内每个核心可用的硬件资源较少。处理器内全局缓存一致性实现难度大、硬件资源占用多,影响并行效率。为提高核心数和并发处理效率,处理网络数据转发的众核处理器可以选择牺牲全局缓存一致性,从而节省大量硬件资源、简化硬件设计,在同样的硬件资源条件下,留出更多硬件资源进行数据转发处理,从而提高数据转发效率。
[0004]传统网络处理器采用C语言裸程序直接进行网络数据处理、甚至采用微码编程的方式进行网络数据处理,编程难度大、处理复杂,开发效率高。通过运行操作系统,利用操作系统的平台优势可以极大提高网络处理程序开发、运维效率。
[0005]Linux系统是一种开源的通用操作系统,可运行在各种类型的计算机设备和处理器中。通用的Linux系统只能运用于单核处理器和具备全局缓存一致性的多核处理器中,而无法直接运用于不具备全局缓存一致性的多核处理器中。实时系统(RTOS)是一类操作系统,与Linux、Window等通用操作系统相比,一般代码精简、功能单一、资源占用低。多数实时系统采用单核模式运行,没有提供多核管理能力;Vxworks等少数实时系统提供了多核管理能力,但同样依赖多核处理器的全局缓存一致性机制。无论Linux系统还是各类实时系统都无法直接在没有全局缓存一致性的众核处理器种运行。但Linux系统和实时系统都可以在众核处理器的单个核中运行。当众多核处理器中的某几个核具备缓存一致性时,还可以在这几个核中多核运行Linux系统。实时系统一般直接使用内存的物理地址进行内存访问。无需处理器核心提供内存管理单元,从而进一步简化硬件资源需求。Linux系统中的应用程序访问物理内存需要采用虚拟内存地址,该地址会自动经过处理器核中的内存管理单元进行地址转换,变为物理内存地址后再进行最终的内存访问。在Linux中还提供了被称为保留内存的功能,被划定为保留内存的物理内存地址,可以在受限条件下采用物理地址直接访问,而不用经过处理器的内存管理单元进行地址转换。针对没有全局缓存一致性的众核处理器,如何启动运行一个Linux加多个实时系统(RTOS)的多个操作系统以实现对众核处理器的管理,并对多个操作系统的协同运行进行管理控制,已成为一项亟待解决的关键技术问题。

技术实现思路

[0006]本专利技术要解决的技术问题:针对现有技术的上述问题,提供一种基于众核处理器的多系统启动管理方法及系统,本专利技术能够在众核处理器中启动通用操作系统和实时系统使之协同工作,实现利用操作系统对无缓存一致性众核处理器的统一管理。
[0007]为了解决上述技术问题,本专利技术采用的技术方案为:一种基于众核处理器的多系统启动管理方法,包括:分别为通用操作系统和实时系统分配处理器核心和内存空间,在内存空间中加载并运行启动程序以执行下述步骤:S101,判断当前的处理器核心是否为启动处理器核心,若当前的处理器核心为启动处理器核心则跳转S102,否则跳转S103;S102,对通用操作系统和实时系统全局初始化,将全局变量flag设置为1,跳转步骤S104;S103,循环等待全局变量flag变为1,若全局变量flag变为1,则跳转步骤S104;S104,判断当前的处理器核心是否为运行通用操作系统的处理器核心,若当前的处理器核心为运行通用操作系统的处理器核心则在当前的处理器核心上启动并运行通用操作系统,并通过全局变量rtflag控制各个实时系统的启动或暂停,否则当前的处理器核心进入实时系统入口程序,并根据全局变量rtflag的变化启动或暂停实时系统。
[0008]可选地,步骤S101中的启动处理器核心是指众核处理器的第一个处理器核心。
[0009]可选地,所述分别为通用操作系统和实时系统分配处理器核心和内存空间时,为通用操作系统和实时系统分配处理器核心包括:若众核处理器包含具有缓存一致性的多个处理器核心,则为通用操作系统分配指定数量个具有缓存一致性的处理器核心,并为其余的处理器核心各分配一个实时系统;若众核处理器不包含具有缓存一致性的多个处理器核心,则为通用操作系统分配一个独立的处理器核心,并为其余的处理器核心各分配一个实时系统。
[0010]可选地,所述分别为通用操作系统和实时系统分配处理器核心和内存空间时,内存空间被分为启动程序部分、实时系统部分和通用操作系统部分共三部分,其中启动程序部分用于加载各个处理器核心的启动程序,实时系统部分作为通用操作系统的保留内存,实时系统部分由与实时系统一一对应的内存区间组成,每一个实时系统部分的内存区间加载对应的实时系统的程序;通用操作系统部分作为通用操作系统的运行内存。
[0011]可选地,所述分别为通用操作系统和实时系统分配处理器核心和内存空间时,启动程序部分的内存起始地址为As1,实时系统部分的内存起始地址为As2,通用操作系统部分的内存起始地址为As3,且有As3=As2+Si
×
rN,其中Si为实时系统分配的内存区间大小,rN为实时系统数量。
[0012]可选地,内存起始地址As2作为常量gAs2存储在启动程序部分,实时系统分配的内存区间大小Si作为常量gSi存储在启动程序部分,全局变量flag作为变量flag0存储在启动程序部分,全局变量rtflag作为数组变量rtflag存储在启动程序部分,数组变量rtflag的每一个元素对应一个实时系统。
[0013]可选地,步骤S102中对通用操作系统和实时系统全局初始化包括:将通用操作系统的程序复制到通用操作系统部分的内存中;将实时系统的程序复制rN份到实时系统部分的内存中,复制的目的地址分别为:gAs2、gAs2+Si、Si+2
×
Si、

、Si+rN
×
Si,对应的rN个实
时系统分别记为rtos[1]、rtos[2]、

、rtos[i]、

、rtos[rN];将全局变量rtFlag复制rN份,分别为每一个到复制后的实时系统中复制一份全局变量rtFlag,记任意第i个实时系统rtos[i]中的全局变量rtFlag为系统全局变量rtFlag[i]。
[0014]可选地,所述启动程序部分中还设有用于记录实时系统入口程序地址的全局数组常量vRtos;步骤S104中当前的处理器核心进入实时系统入口程序,并根据全局变量rtflag的变化启动或暂停实时系统包括:S201,当前的处理器核心在全局数组常量vRtos中查询当前处理器核心编号hartI本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于众核处理器的多系统启动管理方法,其特征在于,包括:分别为通用操作系统和实时系统分配处理器核心和内存空间,在内存空间中加载并运行启动程序以执行下述步骤:S101,判断当前的处理器核心是否为启动处理器核心,若当前的处理器核心为启动处理器核心则跳转S102,否则跳转S103;S102,对通用操作系统和实时系统全局初始化,将全局变量flag设置为1,跳转步骤S104;S103,循环等待全局变量flag变为1,若全局变量flag变为1,则跳转步骤S104;S104,判断当前的处理器核心是否为运行通用操作系统的处理器核心,若当前的处理器核心为运行通用操作系统的处理器核心则在当前的处理器核心上启动并运行通用操作系统,并通过全局变量rtflag控制各个实时系统的启动或暂停,否则当前的处理器核心进入实时系统入口程序,并根据全局变量rtflag的变化启动或暂停实时系统。2.根据权利要求1所述的基于众核处理器的多系统启动管理方法,其特征在于,步骤S101中的启动处理器核心是指众核处理器的第一个处理器核心。3.根据权利要求1所述的基于众核处理器的多系统启动管理方法,其特征在于,所述分别为通用操作系统和实时系统分配处理器核心和内存空间时,为通用操作系统和实时系统分配处理器核心包括:若众核处理器包含具有缓存一致性的多个处理器核心,则为通用操作系统分配指定数量个具有缓存一致性的处理器核心,并为其余的处理器核心各分配一个实时系统;若众核处理器不包含具有缓存一致性的多个处理器核心,则为通用操作系统分配一个独立的处理器核心,并为其余的处理器核心各分配一个实时系统。4.根据权利要求1所述的基于众核处理器的多系统启动管理方法,其特征在于,所述分别为通用操作系统和实时系统分配处理器核心和内存空间时,内存空间被分为启动程序部分、实时系统部分和通用操作系统部分共三部分,其中启动程序部分用于加载各个处理器核心的启动程序,实时系统部分作为通用操作系统的保留内存,实时系统部分由与实时系统一一对应的内存区间组成,每一个实时系统部分的内存区间加载对应的实时系统的程序;通用操作系统部分作为通用操作系统的运行内存。5.根据权利要求4所述的基于众核处理器的多系统启动管理方法,其特征在于,所述分别为通用操作系统和实时系统分配处理器核心和内存空间时,启动程序部分的内存起始地址为As1,实时系统部分的内存起始地址为As2,通用操作系统部分的内存起始地址为As3,且有As3=As2+Si
×
rN,其中Si为实时系统分配的内存区间大小,rN为实时系统数量。6.根据权利要求5所述的基于众核处理器的多系统启动管理方法,其特征在于,内存起始地址As2作为常量gAs2存储在启动程序部分,实时系统分配的内存区间大小Si作为常量gSi存储在启动程序部分,全局变量flag作...

【专利技术属性】
技术研发人员:汪泉王宝生唐竹苏金树郦苏丹荀鹏彭伟王勇志邵明
申请(专利权)人:中国人民解放军国防科技大学
类型:发明
国别省市:

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

1