CN117667822A - 一种基于amp架构的多核启动及核间通信方法 - Google Patents
一种基于amp架构的多核启动及核间通信方法 Download PDFInfo
- Publication number
- CN117667822A CN117667822A CN202311669805.0A CN202311669805A CN117667822A CN 117667822 A CN117667822 A CN 117667822A CN 202311669805 A CN202311669805 A CN 202311669805A CN 117667822 A CN117667822 A CN 117667822A
- Authority
- CN
- China
- Prior art keywords
- core
- slave
- master
- communication
- inter
- 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.)
- Pending
Links
- 238000004891 communication Methods 0.000 title claims abstract description 52
- 238000000034 method Methods 0.000 title claims abstract description 36
- 230000008569 process Effects 0.000 claims abstract description 12
- 230000007246 mechanism Effects 0.000 claims description 9
- 230000005540 biological transmission Effects 0.000 claims description 8
- 230000000977 initiatory effect Effects 0.000 claims description 8
- 230000002093 peripheral effect Effects 0.000 claims description 6
- 230000006870 function Effects 0.000 abstract description 6
- 230000004044 response Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Stored Programmes (AREA)
Abstract
本发明针对需要高可靠、高确定性的使用场景,提出一种基于AMP架构的多核启动及核间通信方法,用于在多核处理器上启动以及在AMP架构下不同处理器核间通信。在主核操作系统启动过程中进行其他核操作系统的启动进程(可以启动其他核的操作系统所处的处理器核被称为主核),采用RPMsg协议完成核间通信功能,RPMsg协议是一个轻量级的相对成熟的通信协议,可以支持在使用资源较少的情况下提供较高效的通信,并提供异步通信及多对多通信。进而,解决多核启动需要额外空间额外程序及核间通信占用资源过多或不能保证多个核间通信正确性的问题,同时解决了常用的多核启动方法需要依赖引导软件提供相应功能,还解决了在资源受限的环境下需要高效通信的情况。
Description
技术领域
本发明涉及多核操作系统技术领域,具体涉及一种基于AMP架构的多核启动及核间通信方法。
背景技术
在多核处理器上运行操作系统主要有三种方案:对称式多处理(SMP,SymmetricMultiprocessing)、绑定式多处理(BMP,Bound Multiprocessing)和非对称式多处理(AMP,Asymmetric Multiprocessing),它们的主要差别是在操作系统对处理器核及外围设备的使用及管理方式上。
其中,AMP架构里每一个CPU处理器的核分别运行一个独立的操作系统,可以是相同的操作系统,也可以是不同的操作系统,多个CPU处理器的核相对独立的运行不同的任务。AMP架构还需要使用一些同步和通信机制,如消息传递和共享内存等,来实现处理器核之间的通信和协作,从而提供更好的实时性和可靠性。
发明内容
本发明需要解决的技术问题是:1、常用的多核启动方法需要依赖引导软件提供相应功能;2、在资源受限的环境下需要高效通信的情况。
为了解决上述技术问题,本发明的技术方案提供了一种基于AMP架构的多核启动及核间通信方法,其特征在于,所述多核启动包括以下步骤:
在主核编译系统镜像的过程中,将从核编译的系统镜像嵌入到主核编译的系统镜像数据段中;将主核的系统镜像拷贝到主核相对应的RAM地址,并执行主核的系统镜像,从而启动主核操作系统;主核操作系统将从核的系统镜像拷贝到从核相对应的RAM地址,并执行从核的系统镜像,从而启动从核操作系统。所述核间通信包括以下步骤:在主核和从核上分别初始化RPMsg驱动程序和相关资源,并创建主核和从核之间进行通信的RPMsg通道;主核通过RPMsg通道将消息发送至从核;从核通过RPMsg通道接收来自主核的消息,并根据消息的内容进行相应的处理得到回复消息,从核通过RPMsg通道将回复消息发送回主核;主核接收来自从核的回复消息,根据回复消息进行相应处理。
当从核操作系统访问主核上的设备时,通过所述核间通信方法进行数据传递,从核操作系统将数据发送到主核操作系统,主核操作系统发送数据至外围设备或接收外围设备发送的数据。
优选地,所述主核将消息发送至从核后,发送消息触发中断通知从核接收后,主核继续执行任务。
优选地,在所述主核根据回复消息进行相应处理之后,主核能够主动选择是否关闭RPMsg通道,从而释放相关资源。
优选地,在所述从核操作系统启动之后,初始化时钟和中断控制器,并调度到创建的任务或线程中,等待主核进行通信。
优选地,在所述主核通过RPMsg通道将消息发送至从核之前,所述主核将发送的消息传输至共享内存缓冲区,并通过中断机制通知远程设备进行消息接收。
本发明针对需要高可靠、高确定性的使用场景,提出一种基于AMP架构的多核启动及核间通信方法,用于在多核处理器上启动以及在AMP架构下不同处理器核间通信。在主核操作系统启动过程中进行其他核操作系统的启动进程(可以启动其他核的操作系统所处的处理器核被称为主核),采用RPMsg协议完成核间通信功能,RPMsg协议是一个轻量级的相对成熟的通信协议,可以支持在使用资源较少的情况下提供较高效的通信,并提供异步通信及多对多通信。进而,解决多核启动需要额外空间额外程序及核间通信占用资源过多或不能保证多个核间通信正确性的问题,同时解决了常用的多核启动方法需要依赖引导软件提供相应功能,还解决了在资源受限的环境下需要高效通信的情况。
附图说明
图1为多核启动原理图;
图2为核间通信流程图;
图3为整体技术方案路线图;
图4为AMP架构下多核操作系统启动的流程示意图;
图5为AMP架构下多核操作系统核间通信的流程示意图。
具体实施方式
下面结合具体实施例,进一步阐述本发明。应理解,这些实施例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本申请所附权利要求书所限定的范围。
在本实施例中,一种基于AMP架构的多核启动及核间通信方法,如图1-3所示,其中,多核启动方法包括如下步骤:
步骤1:分别编译主核和从核的系统镜像。主核可启动从核,并负责所有设备数据间的交互;从核通过主核进行启动,主要负责进行数据运算,两个核间的任务可通过核间通信的协议来进行通信。首先编译从核的系统镜像,之后在主核编译的过程中通过incbin汇编指令将从核编译出的系统镜像嵌入到主核编译出的系统镜像的数据段中。
步骤2:启动主核系统镜像。通过bootloader引导主核的系统镜像,bootloader将主核的系统镜像拷贝到指定的RAM地址,之后执行主核的系统镜像,完成必要的寄存器初始化并对MMU进行初始化。
步骤3:启动从核系统镜像。主核操作系统在对MMU进行初始化之后,会将从核系统镜像拷贝到指定的RAM地址,之后启动从核的系统镜像。从核系统镜像启动后,只初始化时钟和中断控制器来保障基本调度需求,在完成时钟和中断控制器的初始化后调度到所创建的任务或线程中等待主核进行通信。
步骤4:主核与从核间进行通信。主核上操作系统控制全部外围设备,从核若想访问主核上的设备,需通过核间通信的方法进行数据传递,将所需发送的数据先发送到主核上,再通过主核发送数据给设备或接收设备的数据。
AMP架构下的核间通信方法包括如下步骤:
步骤1:在主核和从核上分别初始化RPMsg驱动程序和相关资源。主核与从核系统镜像启动后会初始化RPMsg驱动程序并创建RPMsg通道,通道是两个处理核心之间进行通信的虚拟通道。其中主核充当主机(master),从核充当远程设备(remote)。
步骤2:主核主机向从核远程设备发送消息。当RPMsg通道创建成功后,主核主机便可使用RPMsg API将消息发送到从核远程设备上,发送的消息可以是任意大小的数据块。发送消息触发中断通知从核接收后,主核可以继续执行其他任务,而不需要等待从核的响应。
步骤3:从核远程设备接收、处理并回复消息。从核远程设备通过RPMsg API接收来自主核主机的消息。它可以使用相同的API来处理接收到的消息。当从核远程设备接收到消息后,可以根据消息的内容进行相应的处理,得到回复信息,这可能涉及到数据处理、状态更新或执行特定的操作等。从核远程设备在处理完消息后,可以使用RPMsg API将回复消息发送回主核主机。
步骤4:主核主机接收从核远程设备的回复消息并关闭通道。从核远程设备回复消息后,主核主机可以接收其响应,并根据其相应信息进行相应处理等。同时,完成一轮通信后,主核主机可选择是否关闭通道从而释放相关资源。
在本实施例中,如图4所示,图4为AMP架构下多核操作系统启动的流程图,包括以下步骤:
步骤S41:编译主核与从核的系统镜像。
其中,首先编译从核系统镜像,之后编译主核系统镜像并将从核系统镜像嵌入到其数据段内。
步骤S42:启动主核系统镜像。
其中,主核系统镜像通过bootloader提供的tftp服务进行网络加载,下载到0x100000的RAM地址后启动,主核操作系统启动后初始化必要的组件等。
步骤S43:启动从核系统镜像。
其中,主核操作系统完成MMU初始化后,将从核系统镜像拷贝到0x20100000的RAM地址(此实施例仅有一个从核),完成后启动从核操作系统。从核操作系统启动后初始化时钟和中断控制器等。
步骤S44:主核与从核间等待进行通信。
其中,从核操作系统完成必要的初始化后调度到从核中创建的任务等待与主核进行通信。主核操作系统在需要传递消息时,采用核间通信的方法与从核进行消息传递。
在本实施例中,如图5所示,图5为AMP架构下多核操作系统核间通信的流程图,包括以下步骤:
步骤S51:主核与从核分别初始化RPMsg驱动程序和相关资源。
其中,RPMsg主要使用共享内存和中断机制来实现消息传递,初始化相关资源主要包括分配内存,设置中断处理程序等。
步骤S52:主核与从核间创建RPMsg通道。
其中,通道是两个处理器核心之间进行通信的虚拟通道,且每个虚拟通道都有唯一的标识符,使得不同的处理核心可以通过不同的虚拟通道进行独立的通信,避免冲突和混淆。通道两端分别为主机和远程设备,此实施例将主核设置为主机,其他所有从核皆为远程设备。
步骤S53:主核主机向从核远程设备发送消息。
其中,主核主机会将要发送的消息放到共享内存缓冲区中,并通过中断机制通知远程设备进行消息接收,这里发送的消息在不超过共享内存缓冲区大小的前提下,可以是任意大小的数据块。
步骤S54:从核远程设备接收并处理主核主机发送的消息。
其中,从核远程设备收到来自主核主机的通知后,从共享内存缓存区中读取消息,并对消息内容进行相应的处理,如:数据处理、状态更新或执行特定的操作等。
步骤S55:从核远程设备向主核主机回复消息。
其中,从核远程设备完成对消息的接收和处理后,向主核主机进行回复,告知其此次通信已完成。此时从核远程设备等待主核主机的下一次消息发送或建立通道。
步骤S56:主核主机收到回复消息后,关闭通道。
其中,主核主机在收到回复后,可选择是否关闭通道,若不关闭即保持通道存在以便下次的消息传递,若关闭即代表此次消息传递结束,下次需传递消息时再重新建立。此实施例中主核主机选择关闭通道,结束此次核间通信。
由于采用了上述技术方案,本发明的有益效果是:
1)针对多核启动现有技术是依靠bootloader提供支持的现状,本申请提出一种无需bootloader具有相应多核启动功能,而是通过操作系统来完成多核启动的方法。主核操作系统在完成必要的初始化后会把从核的系统镜像拷贝到相应的RAM处并启动从核操作系统,可以为当引导软件不支持多核启动时提供解决方案。
2)针对资源受限的情况下,又需要高效的核间通信,本申请采用轻量级的通信协议RPMsg。RPMsg协议的核心是消息传递机制,它使用共享内存和中断机制来实现高效的消息传递。具体来说,RPMsg协议通过在本地处理器和远程处理器之间共享内存缓冲区来传递消息。当有新的消息到达时,本地处理器会通过中断机制通知远程处理器进行消息处理,这种机制可以实现快速的数据传输和低延迟。本申请采用此协议为资源受限的应用场景提供了解决方案。
Claims (5)
1.一种基于AMP架构的多核启动及核间通信方法,其特征在于,
所述多核启动包括以下步骤:
在主核编译系统镜像的过程中,将从核编译的系统镜像嵌入到主核编译的系统镜像数据段中;
将主核的系统镜像拷贝到主核相对应的RAM地址,并执行主核的系统镜像,从而启动主核操作系统;
主核操作系统将从核的系统镜像拷贝到从核相对应的RAM地址,并执行从核的系统镜像,从而启动从核操作系统;
所述核间通信包括以下步骤:
在主核和从核上分别初始化RPMsg驱动程序和相关资源,并创建主核和从核之间进行通信的RPMsg通道;
主核通过RPMsg通道将消息发送至从核;
从核通过RPMsg通道接收来自主核的消息,并根据消息的内容进行相应的处理得到回复消息,从核通过RPMsg通道将回复消息发送回主核;
主核接收来自从核的回复消息,根据回复消息进行相应处理;
当从核操作系统访问主核上的设备时,通过所述核间通信方法进行数据传递,从核操作系统将数据发送到主核操作系统,主核操作系统发送数据至外围设备或接收外围设备发送的数据。
2.如权利要求1所述的一种基于AMP架构的多核启动及核间通信方法,其特征在于,所述主核将消息发送至从核后,主核发送消息触发中断通知从核接收后,主核继续执行任务。
3.如权利要求1所述的一种基于AMP架构的多核启动及核间通信方法,其特征在于,在所述主核根据回复消息进行相应处理之后,主核能够主动选择是否关闭RPMsg通道,从而释放相关资源。
4.如权利要求1所述的一种基于AMP架构的多核启动及核间通信方法,其特征在于,在所述从核操作系统启动之后,初始化时钟和中断控制器,并调度到创建的任务或线程中,等待主核进行通信。
5.如权利要求1所述的一种基于AMP架构的多核启动及核间通信方法,其特征在于,在所述主核通过RPMsg通道将消息发送至从核之前,所述主核将发送的消息传输至共享内存缓冲区,并通过中断机制通知远程设备进行消息接收。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311669805.0A CN117667822A (zh) | 2023-12-06 | 2023-12-06 | 一种基于amp架构的多核启动及核间通信方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311669805.0A CN117667822A (zh) | 2023-12-06 | 2023-12-06 | 一种基于amp架构的多核启动及核间通信方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117667822A true CN117667822A (zh) | 2024-03-08 |
Family
ID=90076653
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311669805.0A Pending CN117667822A (zh) | 2023-12-06 | 2023-12-06 | 一种基于amp架构的多核启动及核间通信方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117667822A (zh) |
-
2023
- 2023-12-06 CN CN202311669805.0A patent/CN117667822A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2639693C1 (ru) | Способ обработки ресурса, операционная система и устройство | |
JP2009265963A (ja) | 情報処理システム及びタスクの実行制御方法 | |
EP0358292A2 (en) | Remote boot | |
CN108064377B (zh) | 一种多系统共享内存的管理方法及装置 | |
US9218201B2 (en) | Multicore system and activating method | |
CN114553635B (zh) | Dpu网络设备中的数据处理方法、数据交互方法及产品 | |
CN106897299B (zh) | 一种数据库访问方法及装置 | |
CN107577539B (zh) | 用于内核态和用户态通讯的共享内存结构及其应用 | |
US11474853B2 (en) | Storage device operation method and physical server | |
CN116243995B (zh) | 通信方法、装置、计算机可读存储介质以及电子设备 | |
JP2008186175A (ja) | オペレーティングシステムの起動制御方法及び情報処理装置 | |
CN116302617B (zh) | 共享内存的方法、通信方法、嵌入式系统以及电子设备 | |
CN115203142A (zh) | 一种多核核间实时通信系统及方法 | |
CN115361451B (zh) | 一种网络通信并行处理方法及系统 | |
CN115080479B (zh) | 传输方法、服务器、设备、裸金属实例及基板管理控制器 | |
CN117667822A (zh) | 一种基于amp架构的多核启动及核间通信方法 | |
KR100921504B1 (ko) | 다중 프로세서를 구비한 시스템 온 칩 시스템 내의프로세서간 통신 장치 및 방법 | |
CN113204438B (zh) | 一种amp系统核间通讯方法及系统 | |
CN117149472B (zh) | 通信方法、装置、计算机可读存储介质以及电子设备 | |
US20090019259A1 (en) | Multiprocessing method and multiprocessor system | |
CN117251293B (zh) | 一种云桌面共享gpu的实现方法及系统、宿主机、虚拟机 | |
CN110908952B (zh) | 一种数据处理方法、装置、cpu及计算机 | |
EP4250109A1 (en) | Graphics processing unit invoking method, central processing unit and apparatus | |
CN110928703B (zh) | 多进程通讯注册方法和装置 | |
CN111209103A (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 |