本发明涉及嵌入式系统领域,具体地涉及一种多核系统及其动态模块加载方法、介质和处理器芯片。
背景技术:
1、动态模块加载是一种在嵌入式系统中,通过程序在运行时加载和卸载模块来扩展系统功能或添加新功能的技术。其中,参考图1,多核系统可以是cpu0和cpu1具有不同的体系结构、特性或用途的多核异构系统。对于多核系统的动态模块加载,现有方案是每个核由操作系统独立管理各自的动态模块加载,相互直接没有关联,当需要加载外部动态库时,往往是各个核通过自身外设比如网口、串口、usb等接口将动态模块文件传输到系统中,随后程序再进行动态加载。这对单核系统的动态模块加载是适用的,但是对于多核系统来说,就存在一定的弊端。
2、首先,当用户需要更新多核下的动态模块文件时,需要依次将动态模块文件传输至各个核的操作系统中,然后完成动态模块文件的加载工作,如果是同一个动态模块文件,系统需要重复多次传输操作,操作繁琐并且缺乏统一的入口。
3、其次,对于一些资源有限的多核系统,动态模块加载功能可能无法实现,因为在多核系统中,主核往往占据着较多的硬件资源,用于对外的数据通信和交互。因此,主核有足够的内外部资源来实现动态模块文件的传输及运行。而对于一些资源受限的从核芯片来说,由于内部没有足够的存储空间或者外部没有配备相应硬件存储资源,使得它们无法存放动态模块文件,或者出于成本考虑,没有分配传输接口如网口、usb口等,又或者它本身就运行在一个裸核环境,没有文件系统,自然很难实现动态模块加载功能,这必将影响多核系统的整体性能。
技术实现思路
1、本发明实施例的目的是提供一种多核系统及其动态模块加载方法、介质和处理器芯片,旨在实现多核系统的动态模块加载。
2、为了实现上述目的,本发明实施例提供一种多核系统,包括主核、从核以及所述主核和所述从核之间的共享内存,该共享内存中具有动态模块存放区,其中所述主核被配置为获取多个动态模块,并将从核需要的动态模块存放至所述动态模块存放区,所述从核被配置为从所述动态模块存放区加载所述需要的动态模块。
3、可选地,所述动态模块存放区包括动态模块共享区,且所述主核被配置为主动地将从核启动所需的动态模块存放至所述动态模块共享区,而所述从核被配置为在启动时从所述动态模块共享区加载其启动所需的动态模块。
4、可选地,所述动态模块存放区包括动态模块同步区,且所述主核被配置为将从核请求的动态模块存放至所述动态模块同步区,而所述从核被配置为在启动后从所述动态模块同步区加载其请求的动态模块。
5、可选地,所述动态模块被配置为以固定格式存放至所述动态模块存放区,该固定格式包括文件类型、文件总条目、当前条目、文件名、文件长度、文件内容和校验值。
6、可选地,所述共享内存中还具有共享内存状态区,用于存放针对所述共享内存的访问限制信息;并且所述主核在将所述从核需要的动态模块存放至所述动态模块存放区之后,还更新所述共享内存状态区中的所述访问限制信息,以使得所述从核基于所更新的访问限制信息来从所述动态模块存放区加载所述需要的动态模块。
7、可选地,所述动态模块是:提供用于存储器访问的动态库的资源模块;或者用于扩展所述从核的核间通信容量的资源模块。
8、另一方面,本发明实施例提供了一种基于上述任意的多核系统的动态模块加载方法,包括:在主核端,获取多个动态模块,并将从核需要的动态模块存放至所述动态模块存放区;以及在从核端,从所述动态模块存放区加载需要的动态模块。
9、可选地,所述动态模块存放区包括动态模块共享区和/或动态模块同步区,且在所述主核端,所述将从核需要的动态模块存放至所述动态模块存放区包括:主动地将从核启动需要的动态模块存放至所述动态模块共享区以供所述从核在启动时进行加载;或者响应于所述从核的请求而将指定动态模块存放至所述动态模块同步区以供所述从核加载。
10、可选地,所述动态模块加载方法还包括:在所述主核端,在主动地将从核启动需要的动态模块存放至所述动态模块共享区之后,通知所述从核进行启动并加载动态模块;或者在所述主核端,在响应于所述从核的请求而将指定动态模块存放至所述动态模块同步区之后,通知所述从核加载动态模块。
11、可选地,在所述从核端,所述从所述动态模块存放区加载需要的动态模块包括:在所述从核启动时,从所述动态模块共享区加载启动需要的动态模块;或者在所述从核启动后,向主核发送加载指定动态模块的请求,并在收到所述主核的通知之后,从所述动态模块同步区加载所述指定动态模块。
12、可选地,在共享内存中还具有用于存放针对所述共享内存的访问限制信息的共享内存状态区的情况下,且所述动态模块加载方法还包括:在所述主核端,在将所述从核需要的动态模块存放至所述动态模块存放区之后,更新所述共享内存状态区中的所述访问限制信息;以及在所述从核端,基于所更新的访问限制信息从所述动态模块存放区加载所述需要的动态模块。
13、另一方面,本发明实施例还提供一种机器可读存储介质,该机器可读存储介质上存储有指令,该指令用于使得机器上述任意的动态模块加载方法。
14、另一方面,本发明实施例还提供一种处理器芯片,所述处理器芯片包括上述任意的多核系统。
15、通过上述技术方案,本发明实施例对多核系统的核间共享内存进行了合理化的分配,保证了从核可以基于共享内容实现动态模块加载,且不必再针对从核配置获取外部动态模块的硬件接口,在一定程度上节约了软硬件资源。
16、本发明实施例的其它特征和优点将在随后的具体实施方式部分予以详细说明。
1.一种多核系统,其特征在于,包括主核、从核以及所述主核和所述从核之间的共享内存,该共享内存中具有动态模块存放区,其中所述主核被配置为获取多个动态模块,并将从核需要的动态模块存放至所述动态模块存放区,所述从核被配置为从所述动态模块存放区加载所述需要的动态模块。
2.根据权利要求1所述的多核系统,其特征在于,所述动态模块存放区包括动态模块共享区,且所述主核被配置为主动地将从核启动所需的动态模块存放至所述动态模块共享区,而所述从核被配置为在启动时从所述动态模块共享区加载其启动所需的动态模块。
3.根据权利要求1所述的多核系统,其特征在于,所述动态模块存放区包括动态模块同步区,且所述主核被配置为将从核请求的动态模块存放至所述动态模块同步区,而所述从核被配置为在启动后从所述动态模块同步区加载其请求的动态模块。
4.根据权利要求1所述的多核系统,其特征在于,所述动态模块被配置为以固定格式存放至所述动态模块存放区,该固定格式包括文件类型、文件总条目、当前条目、文件名、文件长度、文件内容和校验值。
5.根据权利要求1所述的多核系统,其特征在于,所述共享内存中还具有共享内存状态区,用于存放针对所述共享内存的访问限制信息;并且
6.根据权利要求1至5中任意一项所述的多核系统,其特征在于,所述动态模块是提供用于存储器访问的动态库的资源模块,或者是用于扩展所述从核的核间通信容量的资源模块。
7.一种基于权利要求1至6中任意一项所述的多核系统的动态模块加载方法,其特征在于,该动态模块加载方法包括:
8.根据权利要求7所述的动态模块加载方法,其特征在于,所述动态模块存放区包括动态模块共享区和/或动态模块同步区,且在所述主核端,将从核需要的动态模块存放至所述动态模块存放区包括:
9.根据权利要求8所述的动态模块加载方法,其特征在于,所述动态模块加载方法还包括:
10.根据权利要求8所述的动态模块加载方法,其特征在于,在所述从核端,从所述动态模块存放区加载需要的动态模块包括:
11.根据权利要求7至10中任意一项所述的动态模块加载方法,其特征在于,在共享内存中还具有用于存放针对所述共享内存的访问限制信息的共享内存状态区的情况下,所述动态模块加载方法还包括:
12.一种机器可读存储介质,其特征在于,该机器可读存储介质上存储有指令,该指令用于使得机器权利要求7-11中任意一项所述的动态模块加载方法。
13.一种处理器芯片,其特征在于,所述处理器芯片包括权利要求1至6中任意一项所述的多核系统。