CN117234607A - 多核***及其动态模块加载方法、介质和处理器芯片 - Google Patents
多核***及其动态模块加载方法、介质和处理器芯片 Download PDFInfo
- Publication number
- CN117234607A CN117234607A CN202311518931.6A CN202311518931A CN117234607A CN 117234607 A CN117234607 A CN 117234607A CN 202311518931 A CN202311518931 A CN 202311518931A CN 117234607 A CN117234607 A CN 117234607A
- Authority
- CN
- China
- Prior art keywords
- core
- dynamic
- dynamic module
- slave
- module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000011068 loading method Methods 0.000 title claims abstract description 78
- 238000000034 method Methods 0.000 claims description 25
- 230000004044 response Effects 0.000 claims description 8
- 238000004891 communication Methods 0.000 claims description 7
- 230000003993 interaction Effects 0.000 abstract description 3
- 230000009286 beneficial effect Effects 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 15
- 230000008569 process Effects 0.000 description 11
- 230000006870 function Effects 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 8
- 238000004590 computer program Methods 0.000 description 7
- 230000004048 modification Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 238000005192 partition Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000004888 barrier function Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Landscapes
- Stored Programmes (AREA)
Abstract
本发明实施例提供一种多核***及其动态模块加载方法、介质和处理器芯片,属于嵌入式***领域。所述多核***包括主核、从核以及所述主核和所述从核之间的共享内存,该共享内存中具有动态模块存放区,其中所述主核被配置为获取多个动态模块,并将从核需要的动态模块存放至所述动态模块存放区,所述从核被配置为从所述动态模块存放区加载所述需要的动态模块。本发明实施例对多核***的核间共享内存进行了合理化的分配,解决了多核间由于资源受限导致从核无法实现动态模块加载的问题,且通过选择动态模块提供的资源,有助于提高从核的高速存储器访存能力、核间高速数据交互能力等。
Description
技术领域
本发明涉及嵌入式***领域,具体地涉及一种多核***及其动态模块加载方法、介质和处理器芯片。
背景技术
动态模块加载是一种在嵌入式***中,通过程序在运行时加载和卸载模块来扩展***功能或添加新功能的技术。其中,参考图1,多核***可以是CPU0和CPU1具有不同的体系结构、特性或用途的多核异构***。对于多核***的动态模块加载,现有方案是每个核由操作***独立管理各自的动态模块加载,相互直接没有关联,当需要加载外部动态库时,往往是各个核通过自身外设比如网口、串口、USB等接口将动态模块文件传输到***中,随后程序再进行动态加载。这对单核***的动态模块加载是适用的,但是对于多核***来说,就存在一定的弊端。
首先,当用户需要更新多核下的动态模块文件时,需要依次将动态模块文件传输至各个核的操作***中,然后完成动态模块文件的加载工作,如果是同一个动态模块文件,***需要重复多次传输操作,操作繁琐并且缺乏统一的入口。
其次,对于一些资源有限的多核***,动态模块加载功能可能无法实现,因为在多核***中,主核往往占据着较多的硬件资源,用于对外的数据通信和交互。因此,主核有足够的内外部资源来实现动态模块文件的传输及运行。而对于一些资源受限的从核芯片来说,由于内部没有足够的存储空间或者外部没有配备相应硬件存储资源,使得它们无法存放动态模块文件,或者出于成本考虑,没有分配传输接口如网口、USB口等,又或者它本身就运行在一个裸核环境,没有文件***,自然很难实现动态模块加载功能,这必将影响多核***的整体性能。
发明内容
本发明实施例的目的是提供一种多核***及其动态模块加载方法、介质和处理器芯片,旨在实现多核***的动态模块加载。
为了实现上述目的,本发明实施例提供一种多核***,包括主核、从核以及所述主核和所述从核之间的共享内存,该共享内存中具有动态模块存放区,其中所述主核被配置为获取多个动态模块,并将从核需要的动态模块存放至所述动态模块存放区,所述从核被配置为从所述动态模块存放区加载所述需要的动态模块。
可选地,所述动态模块存放区包括动态模块共享区,且所述主核被配置为主动地将从核启动所需的动态模块存放至所述动态模块共享区,而所述从核被配置为在启动时从所述动态模块共享区加载其启动所需的动态模块。
可选地,所述动态模块存放区包括动态模块同步区,且所述主核被配置为将从核请求的动态模块存放至所述动态模块同步区,而所述从核被配置为在启动后从所述动态模块同步区加载其请求的动态模块。
可选地,所述动态模块被配置为以固定格式存放至所述动态模块存放区,该固定格式包括文件类型、文件总条目、当前条目、文件名、文件长度、文件内容和校验值。
可选地,所述共享内存中还具有共享内存状态区,用于存放针对所述共享内存的访问限制信息;并且所述主核在将所述从核需要的动态模块存放至所述动态模块存放区之后,还更新所述共享内存状态区中的所述访问限制信息,以使得所述从核基于所更新的访问限制信息来从所述动态模块存放区加载所述需要的动态模块。
可选地,所述动态模块是:提供用于存储器访问的动态库的资源模块;或者用于扩展所述从核的核间通信容量的资源模块。
另一方面,本发明实施例提供了一种基于上述任意的多核***的动态模块加载方法,包括:在主核端,获取多个动态模块,并将从核需要的动态模块存放至所述动态模块存放区;以及在从核端,从所述动态模块存放区加载需要的动态模块。
可选地,所述动态模块存放区包括动态模块共享区和/或动态模块同步区,且在所述主核端,所述将从核需要的动态模块存放至所述动态模块存放区包括:主动地将从核启动需要的动态模块存放至所述动态模块共享区以供所述从核在启动时进行加载;或者响应于所述从核的请求而将指定动态模块存放至所述动态模块同步区以供所述从核加载。
可选地,所述动态模块加载方法还包括:在所述主核端,在主动地将从核启动需要的动态模块存放至所述动态模块共享区之后,通知所述从核进行启动并加载动态模块;或者在所述主核端,在响应于所述从核的请求而将指定动态模块存放至所述动态模块同步区之后,通知所述从核加载动态模块。
可选地,在所述从核端,所述从所述动态模块存放区加载需要的动态模块包括:在所述从核启动时,从所述动态模块共享区加载启动需要的动态模块;或者在所述从核启动后,向主核发送加载指定动态模块的请求,并在收到所述主核的通知之后,从所述动态模块同步区加载所述指定动态模块。
可选地,在共享内存中还具有用于存放针对所述共享内存的访问限制信息的共享内存状态区的情况下,且所述动态模块加载方法还包括:在所述主核端,在将所述从核需要的动态模块存放至所述动态模块存放区之后,更新所述共享内存状态区中的所述访问限制信息;以及在所述从核端,基于所更新的访问限制信息从所述动态模块存放区加载所述需要的动态模块。
另一方面,本发明实施例还提供一种机器可读存储介质,该机器可读存储介质上存储有指令,该指令用于使得机器上述任意的动态模块加载方法。
另一方面,本发明实施例还提供一种处理器芯片,所述处理器芯片包括上述任意的多核***。
通过上述技术方案,本发明实施例对多核***的核间共享内存进行了合理化的分配,保证了从核可以基于共享内容实现动态模块加载,且不必再针对从核配置获取外部动态模块的硬件接口,在一定程度上节约了软硬件资源。
本发明实施例的其它特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本发明实施例的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明实施例,但并不构成对本发明实施例的限制。在附图中:
图1是现有的多核***加载动态模块的示意图;
图2是本发明实施例的多核***的结构示意图;
图3是本发明实施例的共享内存的分区示意图;
图4是本发明实施例的示例中基于动态模块共享区的动态模块加载流程的示意图;
图5是本发明实施例的示例中基于动态模块同步区的动态模块加载流程的示意图;
图6是本发明实施例的示例中基于从核角度的动态模块加载流程的示意图;
图7是完整动态模块加载过程的原理示意图;以及
图8是本发明实施例的共享内存的优选分区示意图。
附图标记说明
100、主核;200、从核;300、共享内存;310、动态模块存放区;311、动态模块共享区;312、动态模块同步区;320、共享内存状态区。
具体实施方式
以下结合附图对本发明实施例的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明实施例,并不用于限制本发明实施例。
如图2所示,本发明实施例提供了一种多核***,包括主核100、从核200以及所述主核100和所述从核200之间的共享内存300,该共享内存中具有动态模块存放区310,其中所述主核100被配置为获取多个动态模块,并将从核200需要的动态模块存放至所述动态模块存放区310,所述从核200被配置为从所述动态模块存放区310加载所述需要的动态模块。
举例而言,本发明实施例的多核异构***规定所有的动态模块文件都是通过主核来获取,主核作为唯一的动态模块传输途径,将利用硬件接口从外部获取的动态模块放置在本地,并统一管理分配模块资源;另外,本发明实施例对核间共享内存进行分区管理,以前的共享内存主要用于核间消息和数据的传递,而本发明实施例在原有核间共享内存的基础上,新划分了动态模块存放区,使得主核能够将从核需要的动态模块存放于该动态模块存放区,以供从核根据需求进行加载。如此,在没有额外的硬件接口的情况下,从核可以基于共享内存的方式来加载动态模块,在一定程度上节约了软硬件资源,且避免了多核间由于资源受限导致从核无法实现动态模块加载的问题。
在优选的实施例中,如图3所示,所述动态模块存放区310包括动态模块共享区311和/或动态模块同步区312。
更为优选地,针对所述动态模块共享区311,所述主核100被配置为主动地将从核启动所需的动态模块存放至所述动态模块共享区311,而所述从核200被配置为在启动时从所述动态模块共享区311加载其启动所需的动态模块。
更为优选地,针对所述动态模块同步区312,所述主核100被配置为将从核200请求的动态模块存放至所述动态模块同步区312,而所述从核200被配置为在启动后从所述动态模块同步区312加载其请求的动态模块。
因此,易知本发明优选的实施例进一步在原有核间共享内存的动态模块存放区310的基础上新划分了两块区域,即动态模块共享区311和动态模块同步区312。下面将进一步结合示例描述关于动态模块共享区311和动态模块同步区312的应用。
一、关于动态模块共享区311。
在第一示例中,动态模块共享区311可理解为主核特定共享给从核的动态模块区域。如图4所示,主核与从核之间基于动态模块共享区311的动态模块加载方案可描述为包括以下步骤:
步骤S401,***上电。此时主核启动,从核还未启动。
步骤S402,主核启动并加载动态模块到动态模块共享区。
步骤S403,主核通知从核启动。
步骤S404,从核启动。
步骤S405,从核从动态模块共享区读取并加载动态模块。
据此,实现了主核对从核启动所需的动态模块的管理,以及实现了从核在启动时的动态模块加载功能。
二、关于动态模块同步区312。
在第二示例中,动态模块同步区312可理解为主核同步给从核的动态模块区域。如图5所示,主核与从核之间基于动态模块同步区312的动态模块加载方案可描述为包括以下步骤:
步骤S501,***上电。此时主核和从核均已经正常启动。
步骤S502,从核向主核请求加载动态模块。举例而言,如果从核想要加载某个动态模块,其通过核间通信机制,例如IPC或者RPMSG的方式通知主核。
步骤S503,主核响应于从核的请求,加载动态模块到动态模块同步区。
步骤S504,主核通知从核同步动态模块。
步骤S505,从核从动态模块同步区读取并加载动态模块。
据此,实现了主核对从核的动态模块加载请求的响应,以及实现了从核在启动后的动态模块加载功能。
通过上述第一示例和第二示例,可知通过本发明实施例方案,在不针对从核配置额外的用于获取动态模块的硬件接口的基础上,可实现从核在启动时及启动后的两种场景下的动态模块加载。需说明的是,以上的动态模块共享区311和动态模块同步区312在共享内存中的地址都是固定的,进而可以确保主核和从核都能够正确访问相应区域。
在优选的实施例中,上述涉及的动态模块被配置为以固定格式存放至所述动态模块存放区,该固定格式包括文件类型、文件总条目、当前条目、文件名、文件长度、文件内容和校验值。在此,以固定格式存放动态模块,便于保证动态模块文件在共享内存中的安全性及完整性,该固定格式的各项的所占的字节可参考下面的表1配置。
表1
另外,上述固定格式的各项的具体定义如下所示:
1)文件类型:用于指示动态模块文件的类型,包括无效文件、共享区文件、同步区文件三种类型;
2)文件总条目:用于指示该区域总共包括的动态模块文件的数量;
3)当前条目:用于指示当前动态模块文件为该区域的第几个文件;
4)文件名:用于指示当前动态模块的文件名;
5)文件长度:用于指示接下来模块文件的总长度;
6)文件内容:用于指示动态模块文件的具体数据;
7)校验值:用于指示当前文件条目所有数据的校验值,确保文件的完整性。
据此,本发明实施例统一了动态模块存放格式,有助于提升动态模块文件传输的安全性。在示例中,所述动态模块例如是提供用于存储器访问的动态库的资源模块,该动态库用于提供针对外部存储器的访问接口、程序资源等,以辅助从核实现高速存储器访存。所述动态模块还例如是用于扩展所述从核的核间通信容量的资源模块,以使得从核具备大容量的核间通信能力,间接提升两个内核之间的核间高速数据交互。
进一步地,采用本发明实施例的多核***,基于从核的角度,在没有额外的硬件接口的情况下,如图6所示,动态模块的加载流程具体包括:
步骤S601,在从核启动时,从动态模块共享区加载动态模块。
步骤S602,在从核启动后,通过核间通信向主核请求动态模块,再从动态模块同步区加载动态模块。
步骤S603,将从共享内存加载的动态模块进一步加载到从核自身的内存,执行后续动态模块加载过程。
需说明的是,从核加载动态模块至自身内存仅是整个完整动态模块加载过程的部分,后续还涉及链接、执行动态模块等步骤。具体地,如图7所示,完整的动态模块加载过程包括以下环节:
1、获取动态模块。***首先获取需要加载的动态模块,常规方案主要通过两种方式:一种是通过内部获取,动态模块会跟随文件***一并烧录到芯片内部;另一种是通过外部获取,***上电后,通过网口、串口、USB等外部传输接口获取。而在本发明实施例中,主核依靠外部获取,而从核则采用了新颖的利用共享内存获取的方案。
2、加载模块。程序运行时会将获取到的动态模块加载到内存中,并为其分配相应的内存空间。
3、链接模块。动态模块加载到内存后,***会将该模块链接到程序中。这通常包括将该模块的代码段、数据段和其他资源与程序中的其他模块进行链接,并将该模块的符号解析为内存地址,并更新程序的符号表。
4、执行模块。一旦动态模块的加载和链接完成后,***会将控制权交回给程序,接下来,该动态模块就可以调用程序中的其他模块,也可以被其他模块所调用。
5、卸载模块。当不再需要某个模块时,***可以将其卸载。在卸载过程中,***会释放该模块占用的内存空间,并执行该模块中的清理代码,以确保该模块在卸载时不会留下任何未释放的资源。
据此,本发明实施例统一了多核间动态模块加载方式,明确了动态模块的加载流程。
更进一步地,在示例中针对多核异构***中,不同类型的处理器核心具有不同的架构、性能特征和功耗特性。这种设计可以根据不同的应用需求和工作负载,将任务分配到最适合的处理器核心上,以提供更好的性能、效率和能耗控制。举例而言,参考图1,在其为多核异构***时,有多个ARM控制核(均可以作为主核或者从核,且包括一个主核和多个从核),每个核都独立的运行不同的任务,其中一个ARM核运行Linux***,而另一个ARM核运行RTOS,如FreeRTOS,或者裸机运行,RTOS端进行低延时的高速数据交换,满足实时任务需求,而运行Linux的ARM核可以作为上层应用,处理更复杂的业务逻辑。本发明实施例中,主核在程序执行前,将需要加载的动态库文件放到自身所挂载运行的文件***中,即是使得动态模块都以文件的形式存在于操作***中,它们具有特定的文件格式,如Windows的.DLL文件、Linux的.SO文件等。当需要加载外部动态库时,往往通过自身外设比如网口、串口、USB等接口将动态模块文件传输到***中,随后程序再进行动态加载,以及通过程序来执行本发明实施例的基于共享内存的动态模块分配。
更进一步地,在上述多核异构***的示例中,由于***所需的动态模块文件都是由主核提供,随后同步到共享内存中,再由从核加载到***上运行。因此,对于主核而言,共享内存的操作包括了读和写,而对于从核,仅存在读操作。针对这一情况,为防止除主核外的非法修改,导致动态模块不可用,本发明优选的实施例进一步提出了如图8所示的共享内存的优化分区示意图。如图8所示,所述共享内存300中还具有共享内存状态区320,用于存放针对所述共享内存的访问限制信息。
基于此,所述主核在将所述从核需要的动态模块存放至所述动态模块存放区之后,还更新所述共享内存状态区中的所述访问限制信息,以使得所述从核基于所更新的访问限制信息来从所述动态模块存放区加载所述需要的动态模块。其中,所述访问限制信息包括地址范围、读写权限等,以读写权限而言,可使得主核拥有对共享内存的唯一修改权限。举例而言,上电后,主核会将动态模块文件同步到共享内存,随后更新共享内存状态区内的访问限制信息,标记对应共享内存区域为只读;接下来从核在访问共享内存前,会先读取共享内存状态区的访问限制信息,获取读写权限,如果是只读,将禁止其写操作,从而实现对该共享内存区的保护。
如此,相当于由主核提供了一个对动态模块存放区的内存屏障,可防止针对动态模块的除主核外的非法修改,确保共享内存资源的互斥性和安全性。本发明另一实施例还提供了一种基于上述任意的多核***的动态模块加载方法,包括:在主核端,获取多个动态模块,并将从核需要的动态模块存放至所述动态模块存放区;以及在从核端,从所述动态模块存放区加载需要的动态模块。
在优选的实施例,参考图4和图5,所述动态模块存放区包括动态模块共享区和/或动态模块同步区,且在所述主核端,将从核需要的动态模块存放至所述动态模块存放区可以包括:主动地将从核启动需要的动态模块存放至所述动态模块共享区以供所述从核在启动时进行加载;或者,响应于所述从核的请求而将指定动态模块存放至所述动态模块同步区以供所述从核加载。
更为优选地,所述动态模块加载方法还包括:在所述主核端,在主动地将从核启动需要的动态模块存放至所述动态模块共享区之后,通知所述从核进行启动并加载动态模块;或者在所述主核端,在响应于所述从核的请求而将指定动态模块存放至所述动态模块同步区之后,通知所述从核加载动态模块。
在优选的实施例中,在所述从核端,从所述动态模块存放区加载需要的动态模块包括:在所述从核启动时,从所述动态模块共享区加载启动需要的动态模块;或者在所述从核启动后,向主核发送加载指定动态模块的请求,并在收到所述主核的通知之后,从所述动态模块同步区加载所述指定动态模块。
在优选的实施例中,如图8所示,所述共享内存中还具有用于存放针对所述共享内存的访问限制信息的共享内存状态区,进而所述动态模块加载方法还包括:在所述主核端,在将所述从核需要的动态模块存放至所述动态模块存放区之后,更新所述共享内存状态区中的所述访问限制信息;以及在所述从核端,基于所更新的访问限制信息从所述动态模块存放区加载所述需要的动态模块。
据此,本发明实施例创造性提出了一种多核***的基于共享内存的动态模块加载方法,其明确了多核间的动态模块加载方式,仅需主核设置对外的动态模块加载接口,而从核则利用共享内存实现动态模块加载,使得整体操作上更加简单、明确,为多核***中的从核动态加载的多样性提供了方法,并在一定程度上节约了软硬件资源。
该动态模块加载方法的更多实施细节和效果可参考前述关于多核***的实施例,在此则不再进行赘述。
本发明实施例还提供了一种机器可读存储介质,该机器可读存储介质上存储有指令,该指令用于使得机器上述任意的动态模块加载方法。所述机器例如是核间控制器。
本发明实施例还提供了一种处理器芯片,所述处理器芯片包括上述任意的多核***。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器 (CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存 (PRAM)、静态随机存取存储器 (SRAM)、动态随机存取存储器 (DRAM)、其他类型的随机存取存储器 (RAM)、只读存储器 (ROM)、电可擦除可编程只读存储器 (EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘 (DVD) 或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体 (transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (13)
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中任意一项所述的多核***。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311518931.6A CN117234607B (zh) | 2023-11-15 | 2023-11-15 | 多核***及其动态模块加载方法、介质和处理器芯片 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311518931.6A CN117234607B (zh) | 2023-11-15 | 2023-11-15 | 多核***及其动态模块加载方法、介质和处理器芯片 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117234607A true CN117234607A (zh) | 2023-12-15 |
CN117234607B CN117234607B (zh) | 2024-01-26 |
Family
ID=89086582
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311518931.6A Active CN117234607B (zh) | 2023-11-15 | 2023-11-15 | 多核***及其动态模块加载方法、介质和处理器芯片 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117234607B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080005388A1 (en) * | 2006-05-12 | 2008-01-03 | Kyocera Mita Corporation | Image forming device |
CN101464807A (zh) * | 2009-01-08 | 2009-06-24 | 杭州华三通信技术有限公司 | 一种应用程序的加载方法及装置 |
CN110825690A (zh) * | 2019-11-14 | 2020-02-21 | 北京华捷艾米科技有限公司 | 多核处理器的核间通信方法及装置 |
CN116414548A (zh) * | 2021-12-30 | 2023-07-11 | 山东科技大学 | 一种基于神威框架的数据信息制导自动优化方法 |
-
2023
- 2023-11-15 CN CN202311518931.6A patent/CN117234607B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080005388A1 (en) * | 2006-05-12 | 2008-01-03 | Kyocera Mita Corporation | Image forming device |
CN101464807A (zh) * | 2009-01-08 | 2009-06-24 | 杭州华三通信技术有限公司 | 一种应用程序的加载方法及装置 |
CN110825690A (zh) * | 2019-11-14 | 2020-02-21 | 北京华捷艾米科技有限公司 | 多核处理器的核间通信方法及装置 |
CN116414548A (zh) * | 2021-12-30 | 2023-07-11 | 山东科技大学 | 一种基于神威框架的数据信息制导自动优化方法 |
Also Published As
Publication number | Publication date |
---|---|
CN117234607B (zh) | 2024-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9411646B2 (en) | Booting secondary processors in multicore system using kernel images stored in private memory segments | |
US6289424B1 (en) | Method, system and computer program product for managing memory in a non-uniform memory access system | |
CN106406983B (zh) | 一种集群中的任务调度方法及装置 | |
US12026100B2 (en) | Method and system for low latency data management | |
CN102667714B (zh) | 支持访问由操作***环境外的资源提供的功能的方法和*** | |
JP2016508647A5 (zh) | ||
US11966599B2 (en) | Method and system for low latency data management | |
CN107615243B (zh) | 一种调用操作***库的方法、装置及*** | |
EP4273700A2 (en) | Computing resource allocation | |
WO2021103646A1 (zh) | 一种部署pod的方法及装置 | |
CN113010265A (zh) | Pod的调度方法、调度器、存储插件及*** | |
CN117234607B (zh) | 多核***及其动态模块加载方法、介质和处理器芯片 | |
CN116560878B (zh) | 一种内存共享方法和相关装置 | |
CN117914675A (zh) | 一种分布式缓存***的构建的方法及装置 | |
US20210389994A1 (en) | Automated performance tuning using workload profiling in a distributed computing environment | |
JPH08221372A (ja) | 分散処理システムにおける空き資源管理装置 | |
CN117008984A (zh) | 一种基于多核异构的可执行文件加载***和芯片 | |
CN111880905B (zh) | 一种openstack跨越cell迁移虚拟机的方法 | |
CN111737013B (zh) | 芯片的资源管理方法、装置、存储介质及***芯片 | |
CN115794368A (zh) | 业务***、内存管理方法及装置 | |
CN115827745A (zh) | 内存数据库集群的实现方法、装置及内存数据库集群 | |
CN113867776A (zh) | 中台应用的发布方法、装置、电子设备和存储介质 | |
JP2012185660A (ja) | コンピュータシステム及びコンピュータシステム起動方法 | |
CN112559164A (zh) | 一种资源共享方法及装置 | |
CN115098233B (zh) | 缓存分区感知的调度方法及*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |