一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

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

2022-02-25 23:01:36 来源:中国专利 TAG:

一种嵌入式soc系统实现多核启动与业务的相互解耦方法
技术领域
1.本技术涉及嵌入式技术领域,尤其涉及一种嵌入式soc系统实现多核启动与业务的相互解耦方法。


背景技术:

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


技术实现要素:

4.本技术提供了一种嵌入式soc系统实现多核启动与业务的相互解耦方法,以解决现有技术中依赖人主观意愿进行人员选择导致的分配不合理的问题。
5.本技术提供了一种嵌入式soc系统实现多核启动与业务的相互解耦方法,应用于由业务模块、实时核模块、管理核模块以及共享内存模块构成的amp架构中,所述实时核模块中包括多个实时核,包括:
6.搭建与amp架构对应的多核系统;
7.在多核系统中,根据多个实时核,将共享内存划分为与每个实时核对应的arm核;其中,arm核中包括主核arm核0和从核arm核1~n;
8.将系统外部存储器主分区划分为供每个arm核执行的core0~n程序;
9.根据bootrom引导加载fsbl程序至主核arm核0内部ram区,并跳转给fsbl执行地址;
10.主核初始化,读取外部存储器主分区,依次将core0~n的执行程序加载至对应的运行起始地址;
11.将主核的core0执行程序起始地址写入cpu执行地址,待命令执行完成后,执行sev指令启动加载core0的执行程序;
12.主核根据sev指令执行启动操作;
13.依次将core1~n执行程序起始地址写入cpu执行地址,待命令执行完成后,执行
sev指令启动记载core1~n的执行程序;
14.从核根据sev指令执行启动操作;
15.管理核启动引导加载操作系统,初始化操作系统内核,执行任务调度及相关业务参数的初始化,管理各个实时核的业务数据及文件。
16.在一些实施例中,所述主核根据sev指令执行启动操作的步骤包括:
17.跳转到被写入地址执行程序;
18.资源初始化;
19.设置堆栈指针;
20.运行core0的main();
21.平台初始化;
22.业务参数初始化;
23.进入core0业务逻辑。
24.在一些实施例中,所述从核根据sev指令执行启动操作的步骤包括:
25.检测固定地址值是否为0;
26.若否,则跳转到被写入地址执行程序;
27.资源初始化;
28.设置堆栈指针;
29.运行core1、2、...n-1或n的main();
30.平台初始化;
31.业务参数初始化;
32.进入core1、2、...n-1或n业务逻辑。
33.在一些实施例中,若固定地址值为0,则重新执行检测固定地址值是否为0的步骤。
34.在一些实施例中,搭建与amp架构对应的多核系统后,所述方法还包括:
35.指定每个实时核对应的堆栈内存。
36.在一些实施例中,所述方法还包括:
37.多个业务模块之间通过共享内存中对应的arm核完成数据的交互。
38.在一些实施例中,当管理核根据更新配置信息执行数据更新时,将自身配置更新同步至各个实时核。
39.在一些实施例中,所述多核系统包括主核实时系统、从核嵌入式实时系统及裸核系统;其中,所述主核实时系统被配置为执行下列步骤:
40.主核初始化,读取外部存储器主分区,依次将core0~n的执行程序加载至对应的运行起始地址;
41.将主核的core0执行程序起始地址写入cpu执行地址,待命令执行完成后,执行sev指令启动加载core0的执行程序;
42.主核根据sev指令执行启动操作;
43.所述从核嵌入式实时系统被配置为执行下列步骤:
44.依次将core1~n执行程序起始地址写入cpu执行地址,待命令执行完成后,执行sev指令启动记载core1~n的执行程序;
45.从核根据sev指令执行启动操作;
46.所述裸核系统被配置为直接在arm上运行无操作系统程序的启动操作步骤。
47.在一些实施例中,所述搭建与amp架构对应的多核系统的步骤中还包括设备驱动的移植及资源分配。
48.本发明提出的一种嵌入式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架构实现了多个核心之间的独立启动,以及业务配置的相互独立,使得多核系统之间的相互解耦,提高了智能感知终端的稳定性与可靠性;多核之间启动相对独立,实时核运行在主核上,管理核异常运行时,不影响实时核的业务逻辑,提高了智能感知终端的可靠性。
附图说明
49.为了更清楚地说明本技术的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
50.图1为本技术基于的amp架构示意图;
51.图2为本技术一种嵌入式soc系统实现多核启动与业务的相互解耦方法的流程图;
52.图3为本技术提供方法的操作示意图。
具体实施方式
53.如图1所示,本技术的方法是应用于由业务模块、实时核模块、管理核模块以及共享内存模块构成的amp架构中,与现有技术中不同的是,在本实施例中,所述实时核模块中包括多个实时核,并且在本技术中设计了一种基于amp架构的新的执行方法。
54.参见图2,为本技术一种嵌入式soc系统实现多核启动与业务的相互解耦方法的流程图;参见图3,为本技术提供方法的操作示意图;
55.下面结合图2和图3对本技术的方法进行说明,方法包括:
56.s100:首先要搭建与amp架构对应的多核系统;amp架构是从硬件角度进行说明的,其中表示硬件的结构,例如业务模块,通常可认为是外设接口,共享内存模块,通常可认为是内存存储器等,而实时核模块和管理核模块通常可认为是系统的多个承担不同功能的内核;而多核系统是从软件角度实现具体功能的,具体可表述为包含引导程序、内核镜像、业务程序等软件部分。
57.在步骤s100中,搭建多核系统的另一方面含义也包括设备驱动的移植,即各种设
备驱动的准备、筹集工作,还包括系统资源分配等。
58.根据功能的不同,在一些实施例中,由可将多核系统进一步分为主核实时系统、从核嵌入式实时系统及裸核系统。在后续说明中再对这三种系统进行功能介绍。
59.s200:在多核系统中,根据多个实时核,将共享内存划分为与每个实时核对应的arm核;其中,arm核中包括主核arm核0和从核arm核1~n,每一个arm核可单独执行某一项任务,并且相互之间不产生有害影响,这种设置符合amp架构的主题思想。需要说明的是,在划分为多个arm核后,需要在启动时各自初始化所需资源,保证系统恢复至原始状态。
60.与步骤s200可同步发生的,s300:将系统外部存储器主分区划分为供每个arm核执行的core0~n程序;该步骤是将划分后的共享内存分配给各个核心,使得每一个实时核能单独在一个arm核中执行对应的某一项程序,对于不同的core程序来说,其相互之间的执行不受影响,无需等待一项程序完全启动后再执行下一项程序,因此,步骤s200和s300是实现解决本技术技术问题的根本性技术特征。
61.s400:多核上电时,执行bootrom引导加载fsbl程序至主核arm核0内部ram区,并跳转给fsbl执行地址;
62.bootrom的作用:上电复位以后,ps端即开始进行配置。在不使用jtag的情况下,arm将在片上的bootrom中开始执行代码。bootrom中的代码对nand、nor、quad-spi、sd与pcap的基本外设控制器进行初始化,使得arm核可以访问、使用这些外设。
63.而ddr等其他外设将在阶段1或者之后进行初始化。bootrom中的代码还负责加载阶段1的启动镜像。ps的启动源是由外部模式引脚的高低电平来选择的,也就是指bootrom将根据外部配置引脚的设置来从不同的外部存储中加载阶段1的启动镜像,当然也支持在线性flash上直接运行。需要注意的是pl的配置并不在bootrom中完成,bootrom只为配置pl做好准备。
64.fsbl(first stage boot loader)是在bootrom之后启动的引导程序。由bootrom加载到ocm或者直接在线性flash上运行。fsbl主要完成以下工作:
65.1)根据xps中的配置,完成ps端的初始化。
66.2)使用比特流文件对pl进行配置。
67.3)加载第二阶段引导程序(ssbl)或者裸跑程序(直接在arm上运行无操作系统程序)到内存空间。
68.4)跳转执行ssbl或者裸跑程序(基于裸核系统)。注意:fsbl在跳转到ssbl或者裸跑程序前,并不使能mmu。这是因为许多操作系统,例如linux假设mmu在启动时是禁用的。
69.s500:主核初始化(时钟、复位及中断等),读取外部存储器主分区,依次将core0~n的执行程序加载至对应的运行起始地址;
70.在本步骤中,仅是将core0~n的执行程序加载至对应的运行起始地址,而并非是如现有技术中直接运行执行程序,这样,其它从核就不需要等待主核启动完成后再开始启动,能够极大增加整体的启动效率,并且,由于上述步骤s200和s300实现了每一个arm核执行一个启动程序,使得各个内核的启动程序相互不受影响,从而体现了本技术方法的解耦性能。
71.s600:将主核的core0执行程序起始地址写入cpu执行地址,待命令执行完成后,执行sev指令启动加载core0的执行程序;
72.s700:主核根据sev指令执行启动操作;
73.s800:依次将core1~n执行程序起始地址写入cpu执行地址,待命令执行完成后,执行sev指令启动记载core1~n的执行程序;
74.s900:从核根据sev指令执行启动操作;
75.步骤s600-s900介绍了所有内核的执行程序过程,需要说明的是,在其它实时核上电时,应当进入等待循环的状态,等待唤醒,当分布加载执行写入起始地址时,其它实时核跳转到执行地址,依次启动各个实时核,最终完成相关操作。
76.s1000:当执行到管理核时,由管理核启动引导加载操作系统,初始化操作系统内核,开始执行任务调度及相关业务参数的初始化,统一管理各个实时核的业务数据及文件。
77.进一步的,在上述步骤s700和s800中,执行启动操作的步骤具体包括:
78.主核(通过主核实时系统)执行:
79.跳转到被写入地址执行程序;
80.资源初始化;
81.设置堆栈指针;
82.运行core0的main();
83.平台初始化;
84.业务参数初始化;
85.进入core0业务逻辑。
86.从核(通过从核嵌入式实时系统)执行:
87.检测固定地址值是否为0;
88.若否,则跳转到被写入地址执行程序;
89.资源初始化;
90.设置堆栈指针;
91.运行core1、2、...n-1或n的main();
92.平台初始化;
93.业务参数初始化;
94.进入core1、2、...n-1或n业务逻辑。
95.在上述两种执行方法中,若固定地址值为0,则重新执行检测固定地址值是否为0的步骤,直至固定地址值不为0,再继续执行后续步骤。
96.进一步的,在搭建与amp架构对应的多核系统后,所述方法还包括:
97.指定每个实时核对应的堆栈内存。
98.进一步的,在步骤s1000后,所述方法还包括:
99.多个业务模块之间通过共享内存中对应的arm核完成数据的交互,由于共享内存已被划分,易于处理各项不同业务之间的数据交互,并且多项数据交互可利用不同的arm核处理,相互之间无影响,可同步进行。
100.进一步的,当管理核根据更新配置信息执行数据更新时,将自身配置更新同步至各个实时核,从而保持数据的一致性。
101.由上述技术方案可知,本发明提出的一种嵌入式soc系统实现多核启动与业务的相互解耦方法,包括:搭建与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指令执行启动操作;管理核启动引导加载操作系统,初始化操作系统内核,执行任务调度及相关业务参数的初始化,管理各个实时核的业务数据及文件。本技术通过在智能感知终端上采用多核处理器,并采用amp架构实现了多个核心之间的独立启动,以及业务配置的相互独立,使得多核系统之间的相互解耦,提高了智能感知终端的稳定性与可靠性;多核之间启动相对独立,实时核运行在主核上,管理核异常运行时,不影响实时核的业务逻辑,提高了智能感知终端的可靠性。
102.本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本技术旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
103.应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献