CN105653377A - 一种异构多核系统核间通讯方法及控制器 - Google Patents
一种异构多核系统核间通讯方法及控制器 Download PDFInfo
- Publication number
- CN105653377A CN105653377A CN201510976846.3A CN201510976846A CN105653377A CN 105653377 A CN105653377 A CN 105653377A CN 201510976846 A CN201510976846 A CN 201510976846A CN 105653377 A CN105653377 A CN 105653377A
- Authority
- CN
- China
- Prior art keywords
- task
- symbol
- mcu
- module
- real
- 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
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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/543—Local
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
- Multi Processors (AREA)
Abstract
本发明涉及一种异构多核系统核间通讯方法及控制器,本发明实施例所提供的方法包括:确定至少一个CPU产生的实时任务的任务符号;查看存储于MCU中的系统符号表,判断任务符号是否存在于系统符号表;当任务符号不存在于系统符号表时,将存储于共享内存的任务模块加载至MCU,运行实时任务;当实时任务结束时,将任务符号从系统符号表删除,以及卸载任务模块或关闭任务模块所在缓存。本发明提供的一种异构多核系统核间通讯方法及控制器,将任务模块存储与共享内存中,通过动态加载的方式完成多核异构系统中的核间协作,克服了现有技术的不足,延长了MCU的使用寿命,实现了对MCU功能的扩展,使核间通讯更灵活,加快了系统的运行速度,降低了系统的能耗。
Description
技术领域
本发明涉及异构多核的异构多核系统的通讯技术领域,尤其涉及一种异构多核系统核间通讯方法及控制器。
背景技术
在现有的异构多核系统中,需要通过核间通讯来完成多核之间的协同工作。图1为现有技术异构双核核间通讯过程示意图,如图1所示,现有技术异构多核核间通讯是通过核间通讯完成多核之间的数据共享以及消息传递。如图1所示,以CPU(中央处理器)加MCU(微控制单元)的异构双核系统为例,且在CPU中运行Linux(Linux是操作系统,用户可以通过网络或其他途径免费获得,并可以任意修改其源代码),在MCU中运行RTOS(实时操作系统是指当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统做出快速响应,调度一切可利用的资源完成实时任务,并控制所有实时任务协调一致运行的操作系统),为了完成Linux对RTOS的调用,RTOS中需预置一些实施任务在系统中,以便Linux调用,Linux通过核间通讯模块向RTOS的核间通讯任务下达任务指令,核间通讯任务结束任务指令启动相应实时任务。但这样的通讯方式增加了系统的代码量,并且不能对RTOS的功能实现动态扩展,核间通讯不灵活,减少了MCU存储的使用寿命。
发明内容
第一方面,本发明提供了一种异构多核系统中核间通讯方法,该系统包括至少一个CPU、至少一个MCU和共享内存,方法包括:确定至少一个CPU产生的实时任务的任务符号;查看存储于MCU中的系统符号表,判断任务符号是否存在于系统符号表;当任务符号不存在于系统符号表时,将存储于共享内存的任务模块加载至MCU,运行实时任务;当实时任务结束时,将任务符号从系统符号表删除,以及卸载任务模块或关闭任务模块所在缓存。
优选地,当任务符号不存在于系统符号表时,将任务模块加载至MCU,运行实时任务,包括:根据任务符号确定运行实时任务的任务模块;从共享内存中获取任务模块的模块依赖符号表,确定任务模块的至少一个分任务模块以及每个分任务模块的导出符号;根据导出符号,查找存储于共享内存的导出符号表,确定每个分任务模块的存储地址;将至少一个分任务模块加载到MCU的缓存中,运行实时任务。
优选地,上述方法还包括:当系统符号表存在任务符号时,MCU直接运行实时任务,并在实时任务结束时,关闭任务模块所在缓存或卸载任务模块。
优选地,系统符号表用于记载MCU已加载任务的任务符号,本模块依赖符号表用于记载分任务模块的导出符号,导出符号表用于记载导出符号以及导出符号对应分任务模块的存储地址。
优选地,任务模块的存储位置包括MCU存储和共享内存,且所述CPU及所述MCU能够访问所述共享内存。
第二方面,本发明提供一种异构多核系统的核间通讯控制器,该系统包括至少一个CPU、至少一个MCU和共享内存,核间通讯控制器包括:接收单元、判断单元、加载单元和处理单元;其中,
接收单元用于接收至少一个CPU产生的实时任务,确定实时任务的任务符号;判断单元用于判断任务符号是否存在于存储在MCU中的系统符号表,当系统符号表存在任务符号时,产生并输出第一运行信号,否则产生并输出判断信号;加载单元用于根据判断信号将任务符号写入系统符号表,及根据判断信号加载用于运行实时任务的任务模块,并产生第二运行信号;MCU用于根据第一运行信号或第二运行信号运行实时任务,并在实时任务结束时产生结束信号;处理单元用于根据结束信号将任务符号从系统符号表中删除,并卸载所述任务模块。
优选地,加载单元,用于根据任务符号确定运行实时任务的任务模块;从共享内存中获取任务模块的模块依赖符号表,确定任务模块的至少一个分任务模块以及每个分任务模块的导出符号;根据导出符号,查找存储于共享内存的导出符号表,确定每个分任务模块的存储地址;将至少一个分任务模块加载到MCU的缓存中。
优选地,处理单元能够控制MCU缓存的开启和关闭。
本发明提供的一种异构多核系统核间通讯方法及控制器,将任务模块存储与共享内存中,通过动态加载的方式完成多核异构系统中的核间协作,克服了现有技术的不足,延长了MCU的使用寿命,实现了对MCU功能的扩展,使核间通讯更灵活,加快了系统的运行速度,降低了系统的能耗。
附图说明
图1为现有技术异构双核核间通讯过程示意图;
图2为本发明实施例提供的一种异构多核系统中核间通讯方法;
图3为本发明实施例所提供的异构多核系统;
图4为本发明是实施例所提供的核间通讯控制器的具体应用场景示意图;
图5为本发明实施例提供的一种异构多核系统的核间通讯控制器;
图6为本发明实施例系统符号表示意图;
图7为本发明实施例本模块依赖符号表示意图;
图8为本发明实施例导出符号表符号表示意图。
具体实施方式
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
图2为本发明实施例提供的一种异构多核系统中核间通讯方法,且异构多核系统中具有至少一个CPU、至少一个MCU,该方法包括步骤S101-步骤S104:
步骤S101,确定至少一个CPU产生的实时任务的任务符号;
每个CPU在运行的过程中均会下发不同的实时任务给至少一个MCU,每个实时任务都有相应的任务符号,而MCU则根据不同的任务符号运行不同的实时任务。
步骤S102,查看存储于MUC中的系统符号表,判断任务符号是否存在于系统符号表;
需要说明的是,已经加载在MCU中的实时任务的任务符号均会记录在系统符号表中,此步骤的目的在于确定MCU中是否存在用于实现当前实时任务的任务模块。
步骤S103,当任务符号不存在于系统符号表时,将任务模块加载至MCU中,运行实时任务;
根据步骤S102的判断结果,步骤S103存在两种不同的实施方式:
若系统符号表中不存在任务符号,根据任务符号确定运行实时任务的任务模块;从共享内存中获取任务模块的模块依赖符号表,确定任务模块的至少一个分任务模块以及分任务模块的导出符号;根据导出符号,从共享内存中查找导出符号表,确定每个分任务模块的存储地址;将至少一个分任务模块加载到MCU的缓存中,运行实时任务;
若系统符号表存在任务符号,MCU直接运行实时任务。
该步骤所涉及的存储地址有两种可能:第一是指MCU中flash的地址、第二是指共享内存中的地址。并且,存储于MCU中flash的任务模块,其所能运行的任务为常规任务(MCU可以自运行,也可以通过CPU分派任务运行);而存储于共享内存中的任务模块,可以供给CPU和MCU二者访问,也就是说CPU可以根据实时任务加载相应任务模块运行任务,也可以将实时任务下发给MCU运行。
步骤S104,当实时任务结束时,将任务符号从系统符号表删除,以及卸载任务模块或关闭任务模块所在缓存。
具体地,当实时任务结束时,将任务符号从系统符号表删除:若实时任务对应任务模块的存储地址为MCU的flash,则关闭任务模块所在缓存或将任务模块卸载;若实时任务对应任务模块的存储地址为共享内存,则将任务模块从MCU缓存中卸载。
图3为本发明实施例所提供的异构多核系统为,如图3(a)所示,异构多核系统包括:CPU1、CPU2、CPU3、MCU1、MCU2、MCU3和共享内存,而C1、C2、C3为核间通讯控制器,在核间通讯控制器的这一种实施方式中,核间通讯控制器内置于CPU中。如图3(b)所示,异构多核系统包括:CPU1、CPU2、CPU3、MCU1、MCU2、MCU3和共享内存,而C为核间通讯控制器,在核间通讯控制器的这一种实施方式中,核间通讯控制器单独作为一个芯片进行使用。如图3(c)所示,异构多核系统包括:CPU1、CPU2、CPU3、MCU1、MCU2、MCU3和共享内存,而C1、C2、C3为核间通讯控制器,在核间通讯控制器的这一种实施方式中,核间通讯控制器内置于MCU中。需要说明的是,本发明实施例仅是对本发明技术方案的一种实施方式,并不对CPU和MCU的数量进行限制。
图4本发明是实施例所提供的核间通讯控制器的具体应用场景示意图,如图4所示,以图3(c)所示的异构多核系统为例,对本实施例的具体实现过程进行描述。具体地,以异构多核系统中的一个CPU和一个MCU为例进行说明,其中CPU中运行LINUX和MCU运行RTOS。具体地,如图8所示,CPU中的应用程序产生实时任务,并通过合江通讯模块将实时任务下发给MCU;MCU中的核间通讯控制器用于接收实时任务,并判断实时任务的任务符号是否存在于系统符号表;根据判断结果将运行实时任务的任务模块从共享内存中获取并加载到MCU缓存中,并在加载结束之后对核间通讯任务下发运行指令,或直接对核间通讯任务下发运行指令;在实时任务完成之后,核间通讯控制器将任务模块从MCU缓存中卸载或关闭任务模块所在缓存,并将实时任务的任务符号从系统符号表中删除。需要说明的是,本实施例中MCU中flash用于存储图8中所示常用任务的任务模块,而实时任务的任务模块则存储于共享内存,这样存储能够选择性的将MCU中一些常用的任务模块存储于MCU自身存储空间,而将其他任务模块存储于共享内存的优势在于,在后续更新MCU功能的过程中,可以仅将共享内存中的任务模块更新而无需更新MCU中的任务模块(指部分更新MCU功能的过程),大大降低了MCU的flash的擦写次数,提高的MCU的使用寿命。
图5为本发明实施例提供的一种异构多核系统的核间通讯控制器,如图5所示,应用于多核异构系统中的核间通讯控制器12包括:接收单元21、判断单元22、加载单元23和处理单元24。需要说明的是,本实施例所提及的多核异构系统包括至少一个CPU、至少一个多个MCU及共享内存。具体地:
CPU11用于产生实时任务A;接收单元21用于接收实时任务A,确定实时任务的任务符号An;判断单元22用于判断任务符号An是否存在于系统符号表,若任务符号An存在于系统符号表,产生并输出第一运行信号Y1,否则产生并输出判断信号R1;加载单元23用于根据判断信号R1将任务符号An写入系统符号表,及根据任务符号An加载用于运行实时任务A的任务模块,并产生第二运行信号Y2;MCU13用于根据第一运行信号Y1或第二运行信号Y2运行实时任务A,并在实时任务A结束时产生结束信号END;处理单元24用于根据结束信号END将任务符号An从系统符号表中删除。
在本实施例中,仅就至少一个CPU中的一个CPU11所产生的实时任务A来描述本发明实施例所提供的核间通讯控制器的工作过程。显而易见地,核间通讯控制器可以接收来自于至少一个CPU产生的多个实时任务,并完成上述核间通讯控制过程。
在本实施例中,加载单元23的具体工作过程为:在接收到判断信号R1后,根据判断信号R1将任务符号An写入系统符号表;根据任务符号An确定运行实时任务A所需的任务模块,查找任务模块的模块依赖符号表,确定该任务模块的分任务模块以及分任务模块的导出符号;查找导出符号表,确定分任务模块的存储地址,将分任务模块加载到MCU的缓存中。
在本实施例中,处理单元24还用于判断任务模块的存储位置,当任务模块的存储位置为MCU的flash时,则将任务模块所在缓存关闭或将任务模块卸载;当任务模块的存储位置为共享内存时,则将任务模块卸载。
图6为本发明实施例系统符号表示意图,如图6所示,系统符号表用于记录实时任务与任务符号,存储于系统符号表中的实时任务为MCU已经加载的任务,且系统符号表存储于MCU中。在另一种实施方式中系统符号表存储于CPU和MCU中。
图7为本发明实施例本模块依赖符号表示意图,如图7所示,模块依赖符号表用于记录实时任务的任务符号、执行该实时任务的任务模块、运行本任务模块所需的分任务模块、分任务模块的导出符号。模块依赖符号表存储于共享内存中,CPU及MCU均可以对其进行访问。
图8为本发明实施例导出符号表符号表示意图,如图8所示,导出符号表用于记载分任务模块的导出符号以及分任务模块的存储地址。导出符号表存储于共享内存中,CPU及MCU均可以对其进行访问。
在本实施例中,本模块依赖符号表及导出符号表的实现方式并不限于本实施例所提供的实现方式,还可以将本模块依赖符号表和导出符号表合并在一个表中实现本实施例所达到的最终目的。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (7)
1.一种异构多核系统中核间通讯方法,所述系统包括至少一个CPU、至少一个MCU和共享内存,其特征在于,所述方法包括:
确定至少一个所述CPU产生的实时任务的任务符号;
查看存储于MCU中的系统符号表,判断所述任务符号是否存在于所述系统符号表;
当所述任务符号不存在于所述系统符号表时,将存储于所述共享内存的任务模块加载至所述MCU,运行所述实时任务;
当所述实时任务结束时,将所述任务符号从所述系统符号表删除,以及卸载所述任务模块或关闭所述任务模块所在缓存。
2.根据权利要求1所述的方法,其特征在于,所述当所述任务符号不存在于所述系统符号表时,将任务模块加载至所述MCU,运行所述实时任务,包括:
根据所述任务符号确定运行所述实时任务的任务模块;
从所述共享内存中获取所述任务模块的模块依赖符号表,确定所述任务模块的至少一个分任务模块以及每个所述分任务模块的导出符号;
根据所述导出符号,查找存储于所述共享内存的导出符号表,确定每个所述分任务模块的存储地址;
将所述至少一个分任务模块加载到所述MCU的缓存中,运行所述实时任务。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:当所述系统符号表存在所述任务符号时,所述MCU直接运行所述实时任务,并在所述实时任务结束时,关闭所述任务模块所在缓存或卸载所述任务模块。
4.根据权利要求1所述的方法,其特征在于,所述任务模块的存储位置包括MCU内存和共享内存,且所述CPU及所述MCU能够访问所述共享内存。
5.一种异构多核系统的核间通讯控制器,所述系统包括至少一个CPU、至少一个MCU和共享内存,其特征在于,所述核间通讯控制器包括:接收单元、判断单元、加载单元和处理单元;其中,
所述接收单元,用于接收至少一个所述CPU产生的实时任务,确定所述实时任务的任务符号;
所述判断单元,用于判断所述任务符号是否存在于存储在MCU中的系统符号表,当所述系统符号表存在所述任务符号时,产生并输出第一运行信号,否则产生并输出判断信号;
所述加载单元,用于根据所述判断信号将所述任务符号写入所述系统符号表,及根据所述任务符号加载用于运行所述实时任务的任务模块,并产生第二运行信号;
所述MCU,用于根据第一运行信号或第二运行信号运行所述实时任务,并在所述实时任务结束时产生结束信号;
所述处理单元,用于根据所述结束信号将所述任务符号从所述系统符号表中删除,并卸载所述任务模块。
6.根据权利要求5所述的控制器,其特征在于,所述加载单元,用于根据所述任务符号确定运行所述实时任务的任务模块;从所述共享内存中获取所述任务模块的模块依赖符号表,确定所述任务模块的至少一个分任务模块以及每个所述分任务模块的导出符号;根据所述导出符号,查找存储于所述共享内存的导出符号表,确定每个所述分任务模块的存储地址;将所述至少一个分任务模块加载到所述MCU的缓存中。
7.根据权利要求5所述的控制器,其特征在于,所述处理单元能够控制所述MCU缓存的开启和关闭。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510976846.3A CN105653377B (zh) | 2015-12-23 | 2015-12-23 | 一种异构多核系统核间通讯方法及控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510976846.3A CN105653377B (zh) | 2015-12-23 | 2015-12-23 | 一种异构多核系统核间通讯方法及控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105653377A true CN105653377A (zh) | 2016-06-08 |
CN105653377B CN105653377B (zh) | 2019-07-26 |
Family
ID=56476704
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510976846.3A Active CN105653377B (zh) | 2015-12-23 | 2015-12-23 | 一种异构多核系统核间通讯方法及控制器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105653377B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114579072A (zh) * | 2022-03-02 | 2022-06-03 | 南京芯驰半导体科技有限公司 | 一种跨多操作系统的显示投屏方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101354693A (zh) * | 2008-09-11 | 2009-01-28 | 重庆邮电大学 | 一种异构多核处理器的核间通信调度系统及方法 |
CN104102486A (zh) * | 2014-07-17 | 2014-10-15 | 福建升腾资讯有限公司 | 一种基于外部存储模块实现mcu程序空间扩容的方法 |
CN104123265A (zh) * | 2013-04-26 | 2014-10-29 | 华为技术有限公司 | 一种众核间通信方法及系统 |
-
2015
- 2015-12-23 CN CN201510976846.3A patent/CN105653377B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101354693A (zh) * | 2008-09-11 | 2009-01-28 | 重庆邮电大学 | 一种异构多核处理器的核间通信调度系统及方法 |
CN104123265A (zh) * | 2013-04-26 | 2014-10-29 | 华为技术有限公司 | 一种众核间通信方法及系统 |
CN104102486A (zh) * | 2014-07-17 | 2014-10-15 | 福建升腾资讯有限公司 | 一种基于外部存储模块实现mcu程序空间扩容的方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114579072A (zh) * | 2022-03-02 | 2022-06-03 | 南京芯驰半导体科技有限公司 | 一种跨多操作系统的显示投屏方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105653377B (zh) | 2019-07-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103473142B (zh) | 一种云计算操作系统下的虚拟机迁移方法及装置 | |
CN102736945B (zh) | 一种运行应用程序的多个实例的方法和系统 | |
EP2696285A1 (en) | Method and device for allocating resource | |
US20220091890A1 (en) | Identifying memory devices for swapping virtual machine memory pages | |
CN107957852B (zh) | 一种提升固态硬盘性能一致性的方法 | |
CN103930874A (zh) | 使用经调度资源组转变通过对便携式计算装置的工作负载估计而节省功率 | |
CN103634379A (zh) | 一种分布式存储空间的管理方法和分布式存储系统 | |
CN104364758A (zh) | 用于有限能力操作系统的api重定向 | |
CN105700956A (zh) | 用于处理分布式作业的方法和系统 | |
CN108345462B (zh) | 组件升级的方法和装置 | |
CN112527452A (zh) | 跨OpenStack的虚拟机迁移方法、装置及介质 | |
CN104991860A (zh) | Web前端自动化开发方法与系统 | |
CN106815080A (zh) | 分布式图数据处理方法和装置 | |
CN109976898B (zh) | 分层任务系统的SPI与Eeprom异步通讯方法 | |
CN103229150B (zh) | 数据控制方法及系统 | |
CN111159606B (zh) | 应用于楼宇系统的三维模型加载方法、设备和存储介质 | |
CN104484132A (zh) | 数据缩减的方法及装置 | |
CN103927244A (zh) | 一种基于动态代理实现的插件调度过程监控的方法 | |
CN105653377A (zh) | 一种异构多核系统核间通讯方法及控制器 | |
CN111858020B (zh) | 用户资源限制方法、装置及计算机存储介质 | |
CN110908644B (zh) | 状态节点的配置方法、装置、计算机设备和存储介质 | |
JP2019533221A (ja) | リソース再構成のための方法およびデバイス | |
US10254965B2 (en) | Method and apparatus for scheduling block device input/output requests | |
CN115756322A (zh) | 数据存储方法、装置、电子设备及存储介质 | |
CN114186976A (zh) | 工作流程流转方法、装置、计算机设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |