一种嵌入式SOC系统实现多核启动与业务的相互解耦方法技术方案

技术编号:32460552 阅读:30 留言:0更新日期:2022-02-26 08:48
本申请公开了一种嵌入式SOC系统实现多核启动与业务的相互解耦方法,本申请通过在智能感知终端上采用多核处理器,并采用AMP架构实现了多个核心之间的独立启动,以及业务配置的相互独立,使得多核系统之间的相互解耦,提高了智能感知终端的稳定性与可靠性;多核之间启动相对独立,实时核运行在主核上,管理核异常运行时,不影响实时核的业务逻辑,提高了智能感知终端的可靠性。感知终端的可靠性。感知终端的可靠性。

【技术实现步骤摘要】
一种嵌入式SOC系统实现多核启动与业务的相互解耦方法


[0001]本申请涉及嵌入式
,尤其涉及一种嵌入式SOC系统实现多核启动与业务的相互解耦方法。

技术介绍

[0002]随着现代嵌入式技术的不断发展,基于多核处理器的智能感知终端可以实现由一个或多个实时核高速处理、计算数据,由一个管理核负责管理数据及文件。目前多核CPU的主要架构包括SMP、AMP及BMP三种运行模式,其中,对称多处理SMP架构是通过一个操作系统同等管理各个内核;而混合多处理BMP架构与SMP结构类似,但开发者可以指定将某个任务仅在某个指定内核上执行;而非对称多处理AMP架构则是通过多个内核相对独立地运行不同的任务,每个核心可以分别搭载、运行不同的操作系统或裸核程序,但需要一个内核作为主核来控制整个系统以及其它内核,各内核间有序启动且互不干扰,具有较高的能量效率。
[0003]然而,上述多核架构所采用的处理器启动方式均是采用主核引导从核的方式,必须要等到主核启动完成后才能唤醒从核启动,使得多核处理器之间耦合性比较高,同时,因智能感知终端业务数据之间的也存在一定的耦合性关系,业务数据之间需要高度保持一致,管理核一旦出现死机、异常复位等情况,将造成实时核无法加载或异常重启,极大影响正常的保护逻辑,也会造成拒动误动等问题。

技术实现思路

[0004]本申请提供了一种嵌入式SOC系统实现多核启动与业务的相互解耦方法,以解决现有技术中依赖人主观意愿进行人员选择导致的分配不合理的问题。
[0005]本申请提供了一种嵌入式SOC系统实现多核启动与业务的相互解耦方法,应用于由业务模块、实时核模块、管理核模块以及共享内存模块构成的AMP架构中,所述实时核模块中包括多个实时核,包括:
[0006]搭建与AMP架构对应的多核系统;
[0007]在多核系统中,根据多个实时核,将共享内存划分为与每个实时核对应的ARM核;其中,ARM核中包括主核ARM核0和从核ARM核1~N;
[0008]将系统外部存储器主分区划分为供每个ARM核执行的core0~N程序;
[0009]根据Bootrom引导加载FSBL程序至主核ARM核0内部RAM区,并跳转给FSBL执行地址;
[0010]主核初始化,读取外部存储器主分区,依次将core0~N的执行程序加载至对应的运行起始地址;
[0011]将主核的core0执行程序起始地址写入CPU执行地址,待命令执行完成后,执行SEV指令启动加载core0的执行程序;
[0012]主核根据SEV指令执行启动操作;
[0013]依次将core1~N执行程序起始地址写入CPU执行地址,待命令执行完成后,执行
SEV指令启动记载core1~N的执行程序;
[0014]从核根据SEV指令执行启动操作;
[0015]管理核启动引导加载操作系统,初始化操作系统内核,执行任务调度及相关业务参数的初始化,管理各个实时核的业务数据及文件。
[0016]在一些实施例中,所述主核根据SEV指令执行启动操作的步骤包括:
[0017]跳转到被写入地址执行程序;
[0018]资源初始化;
[0019]设置堆栈指针;
[0020]运行core0的main();
[0021]平台初始化;
[0022]业务参数初始化;
[0023]进入core0业务逻辑。
[0024]在一些实施例中,所述从核根据SEV指令执行启动操作的步骤包括:
[0025]检测固定地址值是否为0;
[0026]若否,则跳转到被写入地址执行程序;
[0027]资源初始化;
[0028]设置堆栈指针;
[0029]运行core1、2、...N

1或N的main();
[0030]平台初始化;
[0031]业务参数初始化;
[0032]进入core1、2、...N

1或N业务逻辑。
[0033]在一些实施例中,若固定地址值为0,则重新执行检测固定地址值是否为0的步骤。
[0034]在一些实施例中,搭建与AMP架构对应的多核系统后,所述方法还包括:
[0035]指定每个实时核对应的堆栈内存。
[0036]在一些实施例中,所述方法还包括:
[0037]多个业务模块之间通过共享内存中对应的ARM核完成数据的交互。
[0038]在一些实施例中,当管理核根据更新配置信息执行数据更新时,将自身配置更新同步至各个实时核。
[0039]在一些实施例中,所述多核系统包括主核实时系统、从核嵌入式实时系统及裸核系统;其中,所述主核实时系统被配置为执行下列步骤:
[0040]主核初始化,读取外部存储器主分区,依次将core0~N的执行程序加载至对应的运行起始地址;
[0041]将主核的core0执行程序起始地址写入CPU执行地址,待命令执行完成后,执行SEV指令启动加载core0的执行程序;
[0042]主核根据SEV指令执行启动操作;
[0043]所述从核嵌入式实时系统被配置为执行下列步骤:
[0044]依次将core1~N执行程序起始地址写入CPU执行地址,待命令执行完成后,执行SEV指令启动记载core1~N的执行程序;
[0045]从核根据SEV指令执行启动操作;
[0046]所述裸核系统被配置为直接在ARM上运行无操作系统程序的启动操作步骤。
[0047]在一些实施例中,所述搭建与AMP架构对应的多核系统的步骤中还包括设备驱动的移植及资源分配。
[0048]本专利技术提出的一种嵌入式SOC系统实现多核启动与业务的相互解耦方法,包括:搭建与AMP架构对应的多核系统;在多核系统中,根据多个实时核,将共享内存划分为与每个实时核对应的ARM核;将系统外部存储器主分区划分为供每个ARM核执行的core0~N程序;根据Bootrom引导加载FSBL程序至主核ARM核0内部RAM区,并跳转给FSBL执行地址;主核初始化,读取外部存储器主分区,依次将core0~N的执行程序加载至对应的运行起始地址;将主核的core0执行程序起始地址写入CPU执行地址,待命令执行完成后,执行SEV指令启动加载core0的执行程序;主核根据SEV指令执行启动操作;依次将core1~N执行程序起始地址写入CPU执行地址,待命令执行完成后,执行SEV指令启动记载core1~N的执行程序;从核根据SEV指令执行启动操作;管理核启动引导加载操作系统,初始化操作系统内核,执行任务调度及相关业务参数的初始化,管理各个实时核的业务数据及文件。本申请通过在智能感知终端上采用多核处理器,并采用AMP架构实现了多个核心之间的独立启动,以及业务配置的相互独立,使得多核系统之间的相互解耦,提高了智能感知终端的稳定性与可靠性;多核之间启动相对独立,实时核运行在主核上,管理核异常运行时,不影响实时核的业务逻辑,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种嵌入式SOC系统实现多核启动与业务的相互解耦方法,应用于由业务模块、实时核模块、管理核模块以及共享内存模块构成的AMP架构中,所述实时核模块中包括多个实时核,其特征在于,所述方法包括:搭建与AMP架构对应的多核系统;在多核系统中,根据多个实时核,将共享内存划分为与每个实时核对应的ARM核;其中,ARM核中包括主核ARM核0和从核ARM核1~N;将系统外部存储器主分区划分为供每个ARM核执行的core0~N程序;根据Bootrom引导加载FSBL程序至主核ARM核0内部RAM区,并跳转给FSBL执行地址;主核初始化,读取外部存储器主分区,依次将core0~N的执行程序加载至对应的运行起始地址;将主核的core0执行程序起始地址写入CPU执行地址,待命令执行完成后,执行SEV指令启动加载core0的执行程序;主核根据SEV指令执行启动操作;依次将core1~N执行程序起始地址写入CPU执行地址,待命令执行完成后,执行SEV指令启动记载core1~N的执行程序;从核根据SEV指令执行启动操作;管理核启动引导加载操作系统,初始化操作系统内核,执行任务调度及相关业务参数的初始化,管理各个实时核的业务数据及文件。2.根据权利要求1所述的一种嵌入式SOC系统实现多核启动与业务的相互解耦方法,其特征在于,所述主核根据SEV指令执行启动操作的步骤包括:跳转到被写入地址执行程序;资源初始化;设置堆栈指针;运行core0的main();平台初始化;业务参数初始化;进入core0业务逻辑。3.根据权利要求1所述的一种嵌入式SOC系统实现多核启动与业务的相互解耦方法,其特征在于,所述从核根据SEV指令执行启动操作的步骤包括:检测固定地址值是否为0;若否,则跳转到被写入地址执行程序;资源初始化;设置堆栈指针;运行core1、2、...N

1或N的main();平台初始化;业务参数初...

【专利技术属性】
技术研发人员:刘斯扬赵现平聂永杰曹敏薛旺喜李文云廖耀华陈叶李波李博
申请(专利权)人:云南电网有限责任公司电力科学研究院
类型:发明
国别省市:

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

1