CN115098430B - 一种基于amp架构的核间通信优先级调度方法 - Google Patents

一种基于amp架构的核间通信优先级调度方法 Download PDF

Info

Publication number
CN115098430B
CN115098430B CN202210739156.6A CN202210739156A CN115098430B CN 115098430 B CN115098430 B CN 115098430B CN 202210739156 A CN202210739156 A CN 202210739156A CN 115098430 B CN115098430 B CN 115098430B
Authority
CN
China
Prior art keywords
message
priority
real
time
rpmsg
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.)
Active
Application number
CN202210739156.6A
Other languages
English (en)
Other versions
CN115098430A (zh
Inventor
刘佳宜
刘憶
杨清海
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xidian University
Original Assignee
Xidian University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xidian University filed Critical Xidian University
Priority to CN202210739156.6A priority Critical patent/CN115098430B/zh
Publication of CN115098430A publication Critical patent/CN115098430A/zh
Application granted granted Critical
Publication of CN115098430B publication Critical patent/CN115098430B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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/163Interprocessor communication
    • G06F15/17Interprocessor communication using an input/output type connection, e.g. channel, I/O port
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开的一种基于AMP架构的核间通信优先级调度方法,解决核间通信中紧急消息无法得到及时响应的问题。在基于AMP架构多核平台上实现通用系统和实时系统的同时运行,通用系统负责与外界进行信息交互以及处理非实时业务,实时系统协助通用系统处理如控制等实时业务;通用系统产生的信息,经过消息排队模块后进入RPMsg通道传递给实时系统,而实时系统产生的信息直接通过RPMsg通道传递给通用系统;消息排队模块指定消息优先级,并分发至对应的优先级队列,实现消息的优先级调度。本发明的优点在于:核间消息通过RPMsg通道发送,使用了优先级调度方法,确保紧急消息及时得到响应,提高设备核间通信的实时性。

Description

一种基于AMP架构的核间通信优先级调度方法
技术领域
本发明属于嵌入式多核处理器核间通信技术领域,具体涉及一种基于AMP架构的核间通信优先级调度方法。
背景技术
随着半导体技术的发展,在一块芯片上可以集成多个CPU,从而提高芯片处理性能,目前多核处理器架构分为对称多核处理器(SMP,Symmetric Multi-processing)和非对称多核处理器(AMP,Asymmetric Multi-processing)。SMP架构下,所有的CPU运行同一个操作系统,由系统对CPU进行调度,同时CPU共享系统的资源;AMP架构下,各个CPU之间相互独立,CPU只能访问并独享指定的系统资源,无法访问其他CPU的资源,每个CPU上运行不同的操作系统,处理不同的任务。
通过多核处理器技术,嵌入式设备的性能能够得到提升,可以满足更加复杂的业务需求。然而在一些场景下,例如工业现场,面临突发的实时业务和非实时业务,在多核设备使用一个操作系统将无法满足需求。对于需要与外界进行交互的非实时业务,通用系统功能强大能够胜任,而对于时间特性要求严格的实时业务,实时系统支持业务进行优先级抢占,能够满足需求。因此对于上述场景,需要使用AMP架构多核处理器,即在设备上同时运行通用系统和实时系统,通用系统处理非实时业务,实时系统处理实时业务。
AMP架构下CPU之间是独立的,运行的操作系统之间也是相互独立的,但是系统之间存在通信的需求,由于系统之间的差异性,无法使用统一的方式对通信进行管理。MentorGraphics与赛灵思公司为开发AMP系统设计了软件框架OpenAMP,为通用系统、实时系统和裸机程序开发提供统一接口,使用RPMsg组件进行系统间的通信,而恩智浦公司对RPMsg进行简化提出了RPMsg-Lite组件。RPMsg利用核间中断和共享内存机制完成通信,首先将消息以规定格式进行封装,然后写入共享内存中,最后触发核间中断通知对方进行读取,完成一次通信。
AMP架构CPU一般有主从之分,从核协助主核完成特定的任务。通用系统功能强大一般运行在主核上,实时系统只适用于处理时间敏感任务,一般运行在从核,协助通用系统处理实时业务。两个系统之间可以使用RPMsg通信,但是RPMsg组件不支持消息抢占,紧急消息无法得到及时响应。实时系统支持优先级抢占调度,产生的紧急消息可以通过高优先级任务发送,而通用系统不支持优先级抢占,产生的紧急信息需要等待之前的消息发送完成后才能发送,降低了设备核间通信的实时性。
发明内容
本发明的目的在于提供一种基于AMP架构的核间通信优先级调度方法,通过添加消息排队模块,对消息进行优先级调度,提高AMP设备核间通信的实时性。
本发明所采用的技术方案是:一种基于AMP架构的核间通信优先级调度方法,在多核平台上实现通用系统和实时系统的同时运行,通用系统负责与外界进行信息交互以及处理非实时业务,实时系统协助通用系统处理如控制等实时业务;
通用系统产生的信息,经过消息排队模块后进入RPMsg通道传递给实时系统,而实时系统产生的信息直接通过RPMsg通道传递给通用系统;
消息排队模块指定消息优先级,并分发至对应的优先级队列,实现消息的优先级调度。
本发明的特点还在于,
多核平台采用AMP非对称架构,各个核心之间相互独立,可以运行不同的操作系统,执行不同的任务;
在该AMP多核平台上同时运行通用系统和实时系统,其中通用系统执行环境丰富、功能强大,能够支持平台与外界进行交互,处理非实时业务,而实时系统支持任务优先级调度,能够协助通用系统处理如控制等实时任务。
通用系统和实时系统之间通过RPMsg通道进行核间通信,而RPMsg机制不支持消息抢占,紧急消息无法得到及时响应,而通用系统也不支持任务优先级调度,因此将产生的消息经过消息排队模块,进行优先级调度后,再由RPMsg通道发送;
实时系统支持优先级抢占调度,因此将消息发送任务设置成高优先级,直接使用RPMsg通道传递消息;
RPMsg通道需要将消息以RPMsg消息格式进行封装,一帧RPMsg消息大小为512字节,其中头部信息包括源地址、目的地址、消息长度、标志位、保留位一共占据16字节,因此数据信息最大为496字节。
消息排队模块包括以下部分:
消息分发器,用于设定消息的优先级,并将消息分发至对应优先级队列;
高、低优先级队列,用于消息排队缓冲;
消息调度器,根据设计的优先级调度规则,将消息传递至RPMsg通道。
消息分发器根据消息所占字节大小设定优先级,通常紧急消息所占字节小,在一帧RPMsg消息长度之内就能完成发送,因此消息排队模块认定系统中只存在High、Low两个优先级,假设第i个消息的字节大小为Si,则第i个消息的优先级Pi可以由公式确定:
其中,为向上取整函数。
高、低优先级队列,分别对同一优先级的消息进行排队缓冲,每个消息都设置了截止发送时间,同一队列中的消息按照发送时间从小到大进行排序。
消息调度器根据设定的优先级调度规则,先调度高优先级消息,再调度低优先级消息,相同优先级由消息的截止发送时间大小决定,截止发送时间越小越先调度,当有新消息到达时,调度器不会抢占正在传输的消息。
本发明的有益效果是,本发明通过在AMP架构多核处理器上同时运行通用系统和实时系统,能够同时满足实时业务和非实时业务的需求;以及核心之间利用RPMsg组件进行通信,通用系统和实时系统可以使用统一接口对通信进行管理;实时系统产生的消息通过高优先级任务发送,通用系统产生的消息通过增加消息排队模块,实现消息的优先级调度,从而增加设备核间通信的实时性。
附图说明
图1是基于AMP架构核间通信优先级调度的整体架构图;
图2是本发明实施例提供的一种消息分发器工作流程示意图;
图3是本发明实施例提供的一种消息调度器工作流程示意图;
图4是本发明实施例提供的一种实施方式的启动流程图;
图5是本发明实施例提供的一种实施方式的消息调度效果图。
具体实施方式
下面结合附图对本发明实施例作进一步说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明实施例,并不用于限制发明实施例。基于本申请实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
如图1所示,本发明提出了一种基于AMP架构的核间通信优先级调度方法,在AMP多核平台上实现通用系统和实时系统的同时运行,能够满足实时业务和非实时业务的需求,同时两个系统之间使用RPMsg通道进行通信,通过增加消息排队模块对消息进行优先级调度,能够提高设备核间通信的实时性。
结合图2和图3,一种基于AMP架构的核间通信优先级调度方法,需要根据优先级对消息进行分发和调度,如图2所示,消息分发器工作流程包括以下步骤:
A1、RPMsg驱动获取通用系统中需要传递的消息;
A2、设置消息的截止发送时间,运行的任务一般具有周期性,为了保证实时性,上一个消息需要在新消息到达前进行处理,因此每一个消息需要携带任务的周期时间,系统当前时间加上任务的周期时间组成消息的截止发送时间;
A3、设置消息优先级,分发至相应的优先级队列,消息排队模块中有High、Low两个优先级,紧急消息需要及时传输,对应着高优先级,普通消息设置成低优先级,通常紧急消息数据量小,在一帧RPMsg消息长度之内就能发送完成,因此消息的优先级可以通过公式确定:
其中,为向上取整函数,Si为第i个消息的字节大小,Pi为第i个消息的优先级;
A4、消息根据优先级进入对应队列后,按照截止发送时间从小到大的顺序依次插入相应的位置,即截止发送时间更小的消息先进行调度。
如图3所示,消息调度器工作流程包括以下步骤:
B1、判断消息排队模块中高优先级队列Hqueue和低优先级队列Lqueue是否为空,若两个队列为空,则消息调度器不需要进行任何动作;
B2、判断高优先级队列Hqueue是否为空,若不为空,消息调度器循环获取Hqueue队列队首的消息,并通过RPMsg机制提供的接口,将消息转发给实时系统,直至高优先级队列为空;
B3、判断低优先级队列Lqueue是否为空,若不为空,获取Lqueue队列队首的消息,并通过RPMsg机制提供的接口,将消息转发给实时系统,消息调度器每处理完一个Lqueue队列消息,需要重新进入步骤B2判断是否有新消息到达高优先级队列Hqueue,若有则进行相应处理,循环上述过程直至低优先级队列Lqueue为空。
为了更好地说明本发明的效果,提供发明实施例的一种具体实施方式:AMP多核平台使用恩智浦i.MX 8M Plus处理器,具有4xCortex-A53和Cortex-M7核心,在Cortex-A53内核上运行通用系统Linux,在Cortex-M7内核上运行实时系统FreeRTOS,Linux和FreeRTOS系统之间通过RPMsg机制进行通信。
如图4所示,本发明实施例提供的一种实施方式的优先级调度方法包括以下步骤:
步骤S1,Bootloader引导程序将FreeRTOS系统镜像文件加载至Cortex-M7内核上,FreeRTOS启动后加载RPMsg驱动,等待RPMsg通道建立;
步骤S2,Bootloader引导程序将Linux系统镜像文件加载至Cortex-A53内核上,Linux系统启动后加载RPMsg通道依赖驱动;
步骤S3,Linux驱动负责对RPMsg通道进行初始化,包括设置共享内存地址、初始化消息排队模块中的优先级队列、启动消息分发器和消息调度器;
步骤S4,RPMsg通道建立完成,Linux和FreeRTOS通过RPMsg通道进行通信,Linux产生的消息可以通过消息排队模块实现优先级调度,而FreeRTOS产生的消息可以通过系统的任务优先级抢占机制实现优先级调度。
如图5所示,在本发明实施例提供的一种实施方式中,Linux系统需要周期的向FreeRTOS发送紧急消息H1和普通消息L1、L2,L2周期小于L1,即L2截止发送时间会小于L1,在某一刻L1、L2、H1同时到达,经过消息排队模块进行优先级调度后,按照H1、L2、L1顺序通过RPMsgAPI接口转发给FreeRTOS系统,可见使用本发明能够提高核间通信实时性。

Claims (3)

1.一种基于AMP架构的核间通信优先级调度方法,其特征在于,包括:
在多核平台上实现通用系统和实时系统的同时运行,通用系统负责与外界进行信息交互以及处理非实时业务,实时系统协助通用系统处理控制实时业务;
在多核平台上实现双系统的同时运行,具体包括:
多核平台采用AMP非对称架构,各个核心之间相互独立,运行不同的操作系统,执行不同的任务;
在多核平台上同时运行通用系统和实时系统,能够支持平台与外界进行交互,处理非实时业务,实时系统支持任务优先级调度,能够协助通用系统处理控制实时任务;
所述通用系统和实时系统之间通过RPMsg通道进行核间通信,具体包括:
通用系统不支持优先级调度,将发送的消息经过消息排队模块,进行优先级调度后,再由RPMsg通道发送;
所述消息排队模块包括:
消息分发器,用于设定消息的优先级,并将消息分发至对应优先级队列;
高、低优先级队列,用于消息排队缓冲;
消息调度器,根据设计的优先级调度规则,将消息传递至RPMsg通道
实时系统任务支持优先级抢占调度,将消息发送任务设置成高优先级,直接使用RPMsg通道传递消息;
通用系统产生的信息,经过消息排队模块后进入RPMsg通道传递给实时系统,而实时系统产生的信息直接通过RPMsg通道传递给通用系统;
消息排队模块指定消息优先级,并分发至对应的优先级队列,实现消息的优先级调度;根据消息所占字节大小设定优先级,消息排队模块存在High、Low两个优先级,设第i个消息的字节大小为Si,则第i个消息的优先级Pi由公式(1)确定,即认定紧急消息能够在一帧RPMsg消息长度内完成发送:
其中,为向上取整函数;
消息调度器根据设定的优先级调度规则,先调度高优先级消息,再调度低优先级消息,相同优先级由消息的截止发送时间大小决定,截止发送时间越小越先调度,当有新消息到达时,调度器不会抢占正在传输的消息。
2.根据权利要求1所述的一种基于AMP架构的核间通信优先级调度方法,其特征在于,所述RPMsg通道需要将消息以RPMsg消息格式进行封装,一帧RPMsg消息大小为512字节,其中头部信息占据16字节,数据信息最大为496字节。
3.根据权利要求1所述的一种基于AMP架构的核间通信优先级调度方法,其特征在于,每个消息都设置了截止发送时间,同一队列中的消息按照截至发送时间从小到大进行排序。
CN202210739156.6A 2022-06-27 2022-06-27 一种基于amp架构的核间通信优先级调度方法 Active CN115098430B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210739156.6A CN115098430B (zh) 2022-06-27 2022-06-27 一种基于amp架构的核间通信优先级调度方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210739156.6A CN115098430B (zh) 2022-06-27 2022-06-27 一种基于amp架构的核间通信优先级调度方法

Publications (2)

Publication Number Publication Date
CN115098430A CN115098430A (zh) 2022-09-23
CN115098430B true CN115098430B (zh) 2024-03-19

Family

ID=83294012

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210739156.6A Active CN115098430B (zh) 2022-06-27 2022-06-27 一种基于amp架构的核间通信优先级调度方法

Country Status (1)

Country Link
CN (1) CN115098430B (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103823706A (zh) * 2014-02-12 2014-05-28 浙江大学 一种基于RTLinux的被控对象模型模拟仿真实时调度方法
US9830187B1 (en) * 2015-06-05 2017-11-28 Apple Inc. Scheduler and CPU performance controller cooperation
CN110347485A (zh) * 2019-07-01 2019-10-18 电子科技大学 基于固定优先级的多核抢占式的多级融合实时调度方法
CN111930676A (zh) * 2020-09-17 2020-11-13 湖北芯擎科技有限公司 多处理器间的通信方法、装置、系统及存储介质
CN112306669A (zh) * 2019-08-02 2021-02-02 中兴通讯股份有限公司 一种基于多核系统的任务处理方法及装置
CN113778706A (zh) * 2021-08-18 2021-12-10 北京自动化控制设备研究所 一种基于amp架构的操作系统核间通信方法
CN114327930A (zh) * 2021-11-23 2022-04-12 北京智芯微电子科技有限公司 用于异构多核核间通信的系统架构和系统架构的运行方法
CN114490499A (zh) * 2020-11-12 2022-05-13 英特尔公司 用于流送输入/输出数据的系统、装置和方法
CN116225741A (zh) * 2023-03-10 2023-06-06 西安电子科技大学 异构多核核间通信调度方法

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103823706A (zh) * 2014-02-12 2014-05-28 浙江大学 一种基于RTLinux的被控对象模型模拟仿真实时调度方法
US9830187B1 (en) * 2015-06-05 2017-11-28 Apple Inc. Scheduler and CPU performance controller cooperation
CN110347485A (zh) * 2019-07-01 2019-10-18 电子科技大学 基于固定优先级的多核抢占式的多级融合实时调度方法
CN112306669A (zh) * 2019-08-02 2021-02-02 中兴通讯股份有限公司 一种基于多核系统的任务处理方法及装置
CN111930676A (zh) * 2020-09-17 2020-11-13 湖北芯擎科技有限公司 多处理器间的通信方法、装置、系统及存储介质
CN114490499A (zh) * 2020-11-12 2022-05-13 英特尔公司 用于流送输入/输出数据的系统、装置和方法
CN113778706A (zh) * 2021-08-18 2021-12-10 北京自动化控制设备研究所 一种基于amp架构的操作系统核间通信方法
CN114327930A (zh) * 2021-11-23 2022-04-12 北京智芯微电子科技有限公司 用于异构多核核间通信的系统架构和系统架构的运行方法
CN116225741A (zh) * 2023-03-10 2023-06-06 西安电子科技大学 异构多核核间通信调度方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
"Accelerating Concurrent Priority Scheduling Using Adaptive in-Hardware Task Distribution in Multicores";Mohsin Shan;《IEEE Computer Architecture Letters》;20201217;第20卷(第01期);第17-21页 *
"Congestion Avoidance and Load Balancing in Content Placement and Request Redirection for Mobile CDN";Jiayi Liu;《IEEE/ACM Transactions on Networking》;20180430;第26卷(第2期);第851-863页 *
"面向嵌入式智能设备的多核操作系统任务调度算法的研究与实现";曹晟;《中国优秀硕士学位论文全文数据库 信息科技辑》;20220115(2022年第01期);第I137-58页 *

Also Published As

Publication number Publication date
CN115098430A (zh) 2022-09-23

Similar Documents

Publication Publication Date Title
US20090271796A1 (en) Information processing system and task execution control method
US7124207B1 (en) I2O command and status batching
US6968411B2 (en) Interrupt processing apparatus, system, and method
US20090165003A1 (en) System and method for allocating communications to processors and rescheduling processes in a multiprocessor system
WO2002031672A2 (en) Method and apparatus for interprocessor communication and peripheral sharing
US20100088703A1 (en) Multi-core system with central transaction control
US11341087B2 (en) Single-chip multi-processor communication
JP2013546098A (ja) グラフィックス計算プロセススケジューリング
JP2013546097A (ja) グラフィックス処理計算リソースのアクセシビリティ
JP7310924B2 (ja) サーバ内遅延制御装置、サーバ、サーバ内遅延制御方法およびプログラム
CN101414270A (zh) 硬件辅助的辅核任务动态优先级调度的实现方法
CN114579285B (zh) 一种任务运行系统、方法及计算设备
US20230028832A1 (en) Server delay control system, server delay control device, server delay control method, and, program
JP2006119802A (ja) マルチプロセッサシステム
CN101567873B (zh) 一种多任务并行处理方法及系统
CN102334104A (zh) 一种基于多核系统的同步处理方法及装置
CN115098430B (zh) 一种基于amp架构的核间通信优先级调度方法
CN117931478A (zh) 进程间通信方法、装置及存储介质
CN116225741A (zh) 异构多核核间通信调度方法
Pöhnl et al. A middleware journey from microcontrollers to microprocessors
CN101349975B (zh) 一种在嵌入式操作系统上实现中断底半部机制的方法及装置
CN115616984A (zh) 基于多核处理器的任务处理方法、数控机和存储介质
CN113778706B (zh) 一种基于amp架构的操作系统核间通信方法
JP2007249357A (ja) 情報処理装置、分散処理システム及びタスク管理方法
CN102104487B (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