CN109634672A - 一种基于核间通信的多核处理器加载方法 - Google Patents
一种基于核间通信的多核处理器加载方法 Download PDFInfo
- Publication number
- CN109634672A CN109634672A CN201811471382.0A CN201811471382A CN109634672A CN 109634672 A CN109634672 A CN 109634672A CN 201811471382 A CN201811471382 A CN 201811471382A CN 109634672 A CN109634672 A CN 109634672A
- Authority
- CN
- China
- Prior art keywords
- core
- program
- main
- processor
- main core
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4406—Loading of operating system
- G06F9/441—Multiboot arrangements, i.e. selecting an operating system to be loaded
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开一种基于核间通信的多核处理器程序加载方法,包括一个主核、一个或若干个从核、主核外部存储器以及主核EMI接口,EMI接口用于主核外部总线接口与外部存储器的互联,主核的内部RAM存储器与主核相连,用于存放加载后在主核中运行的程序与数据;一个或者多个从核分别与其对应的内部RAM存储器相连,用于存放加载后在从核中运行的程序或数据;主核与一个或者多个从核之间具有核间通信控制器。实现相同架构下的不同型号同构、异构多核处理器采用主核boot loader和主核加载程序完成主、从核加载,可并行独立开发主、从各核应用程序,在最小化***外部硬件电路基础上实现处理器多核程序加载,降低硬件设计难度、提高了设计开发效率,降低了产品成本。
Description
技术领域
本发明属于嵌入式***技术领域,尤其是一种多核处理器***加载电路及方法,更进一步涉及多核处理器采用核间通信技术加载主、从核加载的电路及方法。
背景技术
随着电子技术的飞速发展,嵌入式***的综合化程度越来越高。综合化***的开发难度越来越大,硬件复杂度越来越高,设计成本越来越高,开发周期越来越长。为了满足***综合化日益提高的需求,降低硬件接口设计的复杂性,提高软硬件设计开发效率,节约成本,多核处理器技术应用而生。在最小化***硬件的同时,不影响***软件的开发效率,实现多核处理器加载,成为重要的研究内容。
中兴通讯股份有限公司申请的专利“加载多核不同操作***映像的管理方法”(申请号200810085503.8,公开号101246431A)中公开了一种多核不同操作***映像的管理方法,同样采用了将主核操作***映像和从核操作***映像编译到同一映像文件中。采用加载代码指针方法加载多核处理器,这种方法对于操作***较为适用,但对于多任务、多应用的多核处理器应用***,其不足是影响应用代码并行开发,且代码融合工作量较大。
中国电子科技集团公司第五十八研究所申请的专利“一种多核处理器BOOT启动***及方法”(申请号201611080574.X,公布号106648758A)中公开了一种多核处理器BOOT启动***及方法,用于多核处理器加载。该方法提出通过一个主核和多个从核,采用网络节点控制器和路由控制器,达到多核加载的目的。该方法能够实现多核处理器加载,并且通用性较强,但其存在两个较大问题,第一个问题是:各核程序不能独立且开发后需统一融合,无法实现协同工作,开发效率较低,多核加载程序时均需要从外部存储器加载到主核的内部RAM,加载时间较长、效率较低。第二个问题是:不同的从核程序一般完成不同的任务目标,在应用该技术方案时,当编译到同一程序文件发生故障时,所有功能均会丧失,不能抑制***故障的蔓延,极大地降低了***可靠性,***容错能力很低。
另外,当前在设计在任务方法组织时,普遍采用了多个任务目标程序编译成同一文件,存储在外部存储器某一固定空间。如图4所示,存储器故障一般表现为不能由0变1或不能由1变0的故障坏块,发生故障时候,多核处理器的所有任务功能程序编译在同一地址空间,所有功能均丧失,以多核处理器应用某飞机飞控和机电综合任务管理为例,具体情况如图4所示。而本发明将不同的程序存储在不同的存储器空间,当某一空间发生故障时,仅会丧失某一功能,并不影响***其他的任务目标,以多核处理器应用某飞机飞控和机电综合任务管理为例,具体情况如图5所示。
发明内容
本发明的目的是克服现有技术中存在的不足,提供一种多核处理器加载方法,其能实现相同架构下的不同型号的多核同构处理器以及相同系列的多核异构处理器使用同一个加载程序(Bootloader),提高多核处理器Bootloader的兼容性和灵活性。
技术方案:一种基于核间通信的多核处理器程序加载方法,其特征在于,多核处理器从不同的存储器空间先加载Bootloader程序,再加载主核程序,而后加载从核程序,多核处理器的主核通过多核处理器内部的核间通信控制器将程序加载到各个从核内部,具体包括以下步骤:
(1)核间通信的组织架构构建:确定主核以及所需数量从核,主核通过EMI接口模块与外部存储器连接,主核与主核内部RAM存储器直接相连,主核与核间通信控制器通过核间通信主通道相连,核间通信控制器与各从核通过核间通信子通道相连,每个从核与核间通信子通道一一对接,每个从核其对应的从核内部RAM存储器一一相连;
(2)生成相关程序和目标文件:将主核、从核加载程序(Bootloader程序)编译生成合并成一个目标bin或dat文件;生成主核程序对应的目标bin或dat文件以及每个从核程序对应的目标bin或dat文件,并将所述Bootloader目标文件、主核目标文件、一个或多个从核目标文件分别写入到外部存储器不同空间内;
(3)Bootloader程序由处理器自动加载,初始化主核;
(4)处理器主核程序加载;
(5)处理从核程序依次加载。
所述的处理器主核的外部存储器存储空间划分为多个分区,Bootloader程序、主核程序、不同任务目标的从核程序分别存储于各分区内。
所述的多核处理器启动电路包括:
多核处理器:用于电路中所有处理器核的程序加载、接口管理和综合任务调度,包含一个主核、一个或者多个从核、核间通信控制器、外部EMI接口、主核内部RAM存储器和从核内部RAM存储器;
外部存储器:用于存放存储boot loader程序、主核源程序、从核源程序和数据信息。
所述的多核处理器的主核,用于***的综合任务管理和其他从核程序加载;所述的多核处理器的从核,可完成相关任务,能够进行程序运算;所述的多核处理器的核间通信控制器,用于主核和从核核间通信;所述的多核处理器的外部EMI接口,是与主核相连的外部存储器访问接口,可读取相关程序信息;所述的主核内部RAM存储器、从核内部RAM存储器为若干kB的RAM存储器,作为运行主、从核程序的存储空间;其所述的外部存储器的可通过8位、16位或32位访问。
有益效果:
第一,多核处理器加载程序、主核主程序、一个或多个从核程序均独立编写,软件耦合性较低,当某一从核发生故障时,不会影响主核或其他从核的程序运行,有效抑制***故障蔓延,极大提高了软件鲁棒性;
第二、多核处理器程序分配不同空间,由多个bin(或dat)文件构成,有效降低了软件复杂度,降低了***的设计难度,易于多团队对多任务复杂***的并行协同开发,提高了***开发效率;
第三、充分利用多核处理器内部核间通信技术,实现多核多个程序的快速加载,简化了外部硬件设计难度,提高了***的可靠性。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限制,在附图中:
图1示出了根据本发明实施例的基于核间通信的多核处理器加载电路的组成图。
图2示出了根据本发明实施例的外部存储器空间划分。
图3示出了根据本发明实施例的多核程序加载方法。
图4为现有***故障的蔓延示意图。
图5为本发明本发明抑制***故障蔓延示意图。
具体实施方式
下面结合附图对本发明做进一步的描述。参照附图1,对本发明实现的具体步骤做进一步的描述。本发明所述的一种基于核间通信的多核处理器加载电路及方法已经在某导航控制计算机中成功实施。
本发明的第一实施例中,一种基于核间通信的多核处理器加载电路,选用基于多核DSP的多核处理器加载电路,其中多核处理器选用国防科大研制的FT-Q6713四核DSP处理器,外部存储器选用深圳国微公司Flash芯片SM29LV256,存储32Mbyte的程序数据,多核通信通道为处理器内部的核间HPI通道,处理器EMI接口为DSP处理器的EMIF总线接口。
本发明所述的一种基于核间通信的多核处理器加载方法具体示例如下:
(1)***架构搭建
按照本发明所述的电路,组织搭建***架构,包括多核DSP处理器FT-Q6713,外部程序存储器Flash存储器SM29LV256。将DSP的四个核启动模式按照内部HPI加载方式控制,详细配置方法如下:
根据***的任务分配,将DSP核1做为***主核,DSP核1的启动模式设置为芯片外部Rom Boot模式,而其他DSP核设置为HPI Boot模式,并且将HPI_*_en(*=1、2、3、4)全部浮空或者接地。
DSP核1的程序构造中,除了包含自身的功能程序,还需要配置打开片上DSP核1的EMIF和DSP核1到其他DSP从核的HPI接口,并将DSP核2、DSP核3、DSP核4等从核的程序以数据的形式放在主核1程序的数据区;
DSP核1外部Flash空间分配:将DSP核1外部Flash空间分为5个程序区和1个数据区共计6个区间,分配如下:第1个空间为boot loader程序,即搬移DSP核1应用程序的加载代码,该区域大小为1kB;第2个空间为DSP核1的应用程序区,该区域根据应用程序大小,占若干kB空间;第3个空间为DSP从核2的应用程序区,该区域根据应用程序大小,占若干kB空间;第4个空间为DSP从核3的应用程序区,该区域根据应用程序大小,占若干kB空间;第5个空间为DSP核4的应用程序区,该区域根据应用程序大小,占若干kB空间;第6个空间为DSP的应用数据区,该区域根据应用程序功能数据大小,占若干MB空间;
(2)生成相关程序和目标文件
根据***的任务划分按照本发明所述的方法,生成相关程序和目标文件:
a.Bootloader程序生成。根据FT-Q6713处理器的功能特点,编写并生成Bootloader程序,用于完成主核的初始化配置、核间通信配置、从核初始化配置和获取从核程序基本信息;
b.DSP主核程序生成。根据***的任务规划,DSP核1作为***控制核心,用于完成***多核程序加载、导航控制***和综合航电***的数据交互等,按照上述任务目标,生成DSP核1的目标文件;
c.DSP从核程序生成。根据***的任务规划,DSP核2做为***的电机控制核,用于控制***内三路无刷直流电机和两路有刷直流电机,DSP核3用于惯性导航任务解算和目标对准,DSP核3用于惯导***的数据标定和健康管理,根据相关任务生成相关的目标程序。
(3)Bootloader中包含DSP的自动搬移程序,该程序由***上电后处理器自动完成,该自动搬移程序加载后,再搬移Bootloader程序,该程序在DSP核1内部的RAM中运行,初始化DSP核1(主核);
(4)搬移主核程序,DSP核1从其外部存储器(Flash)完成启动并在其内部存储器中运行;
(5)搬移从核程序。HPI片上使能:DevCfg寄存器(0x019c0200)的[15:13]分别对应从核4、从核3、从核2,高有效;主核打开其与其他DSP从核通信HPI通道,并将各个从核的程序分别加载;
(6)多处理器程序并行执行;
步骤3),4),5),6)顺序执行。
在此说明中,本发明已参照其特定的实施例作了描述。但是,很显然仍可以作出各种修改和变换而不背离本发明的精神和范围。因此,说明书和附图应被认为是说明性的而非限制性的。
Claims (4)
1.一种基于核间通信的多核处理器程序加载方法,其特征在于,多核处理器从不同的存储器空间先加载Bootloader程序,再加载主核程序,而后加载从核程序,多核处理器的主核通过多核处理器内部的核间通信控制器将程序加载到各个从核内部,具体包括以下步骤:
(1)核间通信的组织架构构建:确定主核以及所需数量从核,主核通过EMI接口模块与外部存储器连接,主核与主核内部RAM存储器直接相连,主核与核间通信控制器通过核间通信主通道相连,核间通信控制器与各从核通过核间通信子通道相连,每个从核与核间通信子通道一一对接,每个从核其对应的从核内部RAM存储器一一相连;
(2)生成相关程序和目标文件:将主核、从核加载程序(Bootloader程序)编译生成合并成一个目标bin或dat文件;生成主核程序对应的目标bin或dat文件以及每个从核程序对应的目标bin或dat文件,并将所述Bootloader目标文件、主核目标文件、一个或多个从核目标文件分别写入到外部存储器不同空间内;
(3)Bootloader程序由处理器自动加载,初始化主核;
(4)处理器主核程序加载;
(5)处理从核程序依次加载。
2.根据权利要求1的一种基于核间通信的多核处理器程序加载方法,其特征在于,所述的处理器主核的外部存储器存储空间划分为多个分区,Bootloader程序、主核程序、不同任务目标的从核程序分别存储于各分区内。
3.根据权利要求1的一种基于核间通信的多核处理器程序加载方法,其特征在于,所述的多核处理器启动电路包括:
多核处理器:用于电路中所有处理器核的程序加载、接口管理和综合任务调度,包含一个主核、一个或者多个从核、核间通信控制器、外部EMI接口、主核内部RAM存储器和从核内部RAM存储器;
外部存储器:用于存放存储boot loader程序、主核源程序、从核源程序和数据信息。
4.根据权利要求3的一种基于核间通信的多核处理器程序加载方法,其特征在于,所述的多核处理器的主核,用于***的综合任务管理和其他从核程序加载;所述的多核处理器的从核,可完成相关任务,能够进行程序运算;所述的多核处理器的核间通信控制器,用于主核和从核核间通信;所述的多核处理器的外部EMI接口,是与主核相连的外部存储器访问接口,可读取相关程序信息;所述的主核内部RAM存储器、从核内部RAM存储器为若干KB的RAM存储器,作为运行主、从核程序的存储空间;其所述的外部存储器的可通过8位、16位或32位访问。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811471382.0A CN109634672A (zh) | 2018-12-04 | 2018-12-04 | 一种基于核间通信的多核处理器加载方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811471382.0A CN109634672A (zh) | 2018-12-04 | 2018-12-04 | 一种基于核间通信的多核处理器加载方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109634672A true CN109634672A (zh) | 2019-04-16 |
Family
ID=66070803
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811471382.0A Pending CN109634672A (zh) | 2018-12-04 | 2018-12-04 | 一种基于核间通信的多核处理器加载方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109634672A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110262900A (zh) * | 2019-06-20 | 2019-09-20 | 山东省计算中心(国家超级计算济南中心) | 一种基于申威众核处理器的主核与核组之间通信锁同步运行加速方法 |
CN111475213A (zh) * | 2020-04-03 | 2020-07-31 | 深圳忆联信息***有限公司 | 多核结构固态硬盘的功耗降低方法、装置和计算机设备 |
CN113434087A (zh) * | 2021-06-28 | 2021-09-24 | 山东航天电子技术研究所 | 基于共享空间的多核启动方法 |
CN113672549A (zh) * | 2021-07-28 | 2021-11-19 | 北京时代民芯科技有限公司 | 一种基于非共享存储多核处理器的微***架构 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101246431A (zh) * | 2008-03-10 | 2008-08-20 | 中兴通讯股份有限公司 | 加载多核不同操作***映像的管理方法 |
CN101256512A (zh) * | 2008-03-20 | 2008-09-03 | 中兴通讯股份有限公司 | 异构多核体系中主引导核的自动选举方法 |
CN101533355A (zh) * | 2009-04-15 | 2009-09-16 | 杭州华三通信技术有限公司 | 一种启动多操作***的方法和装置 |
CN102929834A (zh) * | 2012-11-06 | 2013-02-13 | 无锡江南计算技术研究所 | 众核处理器及其核间通信的方法、主核和从核 |
CN103219037A (zh) * | 2013-04-22 | 2013-07-24 | 中国科学院半导体研究所 | 多端口读写的片内存储器 |
CN106407156A (zh) * | 2016-09-23 | 2017-02-15 | 深圳震有科技股份有限公司 | 一个bootrom引导多核cpu启动的方法及*** |
CN106648758A (zh) * | 2016-11-30 | 2017-05-10 | 中国电子科技集团公司第五十八研究所 | 一种多核处理器boot启动***及方法 |
-
2018
- 2018-12-04 CN CN201811471382.0A patent/CN109634672A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101246431A (zh) * | 2008-03-10 | 2008-08-20 | 中兴通讯股份有限公司 | 加载多核不同操作***映像的管理方法 |
CN101256512A (zh) * | 2008-03-20 | 2008-09-03 | 中兴通讯股份有限公司 | 异构多核体系中主引导核的自动选举方法 |
CN101533355A (zh) * | 2009-04-15 | 2009-09-16 | 杭州华三通信技术有限公司 | 一种启动多操作***的方法和装置 |
CN102929834A (zh) * | 2012-11-06 | 2013-02-13 | 无锡江南计算技术研究所 | 众核处理器及其核间通信的方法、主核和从核 |
CN103219037A (zh) * | 2013-04-22 | 2013-07-24 | 中国科学院半导体研究所 | 多端口读写的片内存储器 |
CN106407156A (zh) * | 2016-09-23 | 2017-02-15 | 深圳震有科技股份有限公司 | 一个bootrom引导多核cpu启动的方法及*** |
CN106648758A (zh) * | 2016-11-30 | 2017-05-10 | 中国电子科技集团公司第五十八研究所 | 一种多核处理器boot启动***及方法 |
Non-Patent Citations (2)
Title |
---|
佘黎煌 等主编: "《W90P710嵌入式***实验教程》", 30 September 2011, 沈阳:东北大学出版社 * |
程敬原 编著: "《VxWorks软件开发项目实例完全解析》", 31 October 2005, 北京:中国电力出版社 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110262900A (zh) * | 2019-06-20 | 2019-09-20 | 山东省计算中心(国家超级计算济南中心) | 一种基于申威众核处理器的主核与核组之间通信锁同步运行加速方法 |
CN110262900B (zh) * | 2019-06-20 | 2023-09-29 | 山东省计算中心(国家超级计算济南中心) | 一种基于申威众核处理器的主核与核组之间通信锁同步运行加速方法 |
CN111475213A (zh) * | 2020-04-03 | 2020-07-31 | 深圳忆联信息***有限公司 | 多核结构固态硬盘的功耗降低方法、装置和计算机设备 |
CN111475213B (zh) * | 2020-04-03 | 2023-04-28 | 深圳忆联信息***有限公司 | 多核结构固态硬盘的功耗降低方法、装置和计算机设备 |
CN113434087A (zh) * | 2021-06-28 | 2021-09-24 | 山东航天电子技术研究所 | 基于共享空间的多核启动方法 |
CN113434087B (zh) * | 2021-06-28 | 2022-09-23 | 山东航天电子技术研究所 | 基于共享空间的多核启动方法 |
CN113672549A (zh) * | 2021-07-28 | 2021-11-19 | 北京时代民芯科技有限公司 | 一种基于非共享存储多核处理器的微***架构 |
CN113672549B (zh) * | 2021-07-28 | 2024-04-02 | 北京时代民芯科技有限公司 | 一种基于非共享存储多核处理器的微***架构 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109634672A (zh) | 一种基于核间通信的多核处理器加载方法 | |
CN102736945B (zh) | 一种运行应用程序的多个实例的方法和*** | |
CN103514053B (zh) | 一种基于共享内存的进程间通讯方法 | |
Jones et al. | GRIP—a high-performance architecture for parallel graph reduction | |
Der Jeng et al. | A review of synthesis techniques for Petri nets with applications to automated manufacturing systems | |
CN104980454B (zh) | 一种资源数据共享方法、服务器及*** | |
CN103635875A (zh) | 用于通过使用由可分区引擎实例化的虚拟核来支持代码块执行的存储器片段 | |
CN103547993A (zh) | 通过使用由可分割引擎实例化的虚拟核来执行指令序列代码块 | |
US20080133861A1 (en) | Silent memory reclamation | |
Hu et al. | Exploring AADL verification tool through model transformation | |
Briot | From objects to actors: study of a limited symbiosis in smalltalk-80 | |
CN110457033A (zh) | 用于在gpu上生成动态踪迹数据的装置和方法 | |
CN105849698A (zh) | 动态编程中的执行防护 | |
CN111860805A (zh) | 分形计算装置、方法、集成电路及板卡 | |
CN109656868A (zh) | 一种cpu与gpu之间的内存数据转移方法 | |
US20210255866A1 (en) | Acceleration unit, system-on-chip, server, data center, and related method | |
CN111767995A (zh) | 运算方法、装置及相关产品 | |
CN108427584A (zh) | 快速启动的具有并行计算核的芯片及该芯片的配置方法 | |
CN102331961A (zh) | 并行模拟多个处理器的方法及***、调度器 | |
Kambayashi et al. | The separation principle: A programming paradigm | |
CN112346879B (zh) | 进程管理方法、装置、计算机设备及存储介质 | |
Hoare et al. | Unifying models of data flow | |
CN114004730A (zh) | 一种基于图形处理器的深度神经网络多模型并行推理方法 | |
Singh | Communication Coroutines For Parallel Program Using DW26010 Many Core Processor | |
CN104731603A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190416 |
|
RJ01 | Rejection of invention patent application after publication |