CN113778706B - 一种基于amp架构的操作系统核间通信方法 - Google Patents
一种基于amp架构的操作系统核间通信方法 Download PDFInfo
- Publication number
- CN113778706B CN113778706B CN202110947834.3A CN202110947834A CN113778706B CN 113778706 B CN113778706 B CN 113778706B CN 202110947834 A CN202110947834 A CN 202110947834A CN 113778706 B CN113778706 B CN 113778706B
- Authority
- CN
- China
- Prior art keywords
- message
- queue
- operating system
- pointer
- service
- 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
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
- 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
- G06F15/167—Interprocessor communication using a common memory, e.g. mailbox
-
- 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/546—Message passing systems or structures, e.g. queues
-
- 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
Abstract
本发明公开一种基于AMP架构的操作系统核间通信方法,通过约定操作系统消息队列的使用方式,使用共享内存作为传输媒介,软中断作为通信触发条件,通信发送方与接收方借助各自操作系统内核对象消息队列进行核间通信。发明提出的这种借助各自操作系统内核对象消息队列实现的核间通信方式不仅能应用于非实时操作系统和RTOS,也能应用于RTOS间。硬件上无需增加额外硬件模块,软件上不增加额外插件且无需修改操作系统消息队列的底层实现,同时不破坏操作系统本身的任务优先级调度策略。
Description
技术领域
本发明涉及一种处理器通信方法,具体涉及一种操作系统核间通信方法。
背景技术
随着弹上计算机功能复杂度的增加,其选用的处理器逐步由单核处理器向多核处理器(OMAP-L138、Zynq-7000、FMQL45T900等)过渡,应用开发逐步由裸跑开发向基于操作系统(μC/OS-III、FreeRTOS、海鹰翼辉、Linux等)应用开发过渡。当前在多核处理器中可以利用多核特性让不同核心运行不同的操作系统进而解决应用生态、实时性等特异性整合需求。
基于AMP架构的操作系统核间通信采用的方式主要有两种:
第一种采用openAMP。openAMP是Mentor Graphics与赛灵思公司为了使在AMP系统的设计中开发出的RTOS和裸机程序能够与开源Linux社区提供的接口进行相互通信,而共同通过的一个标准化的嵌入式多核框架的全称,即开源的非对称多处理框架。openAMP框架提供了非对称多处理系统软件开发所需要的软件组件。实际应用时需引入专门的openAMP框架插件,既会占用一定资源开销,又需要开发人员的专门学习了解,且存在openAMP在特定操作系统环境专门适配和实时性不够的问题。
第二种采用裸跑环境下的简单共享内存机制。静态配置共享内存位置,当操作系统之间进行通信时,发送方将消息存入共享内存中的对应部分,并触发核间中断,由接收消息的操作系统响应核间中断,从共享内存拷贝出信息并向发送方发送反馈以完成通信。因其不会调用操作系统服务,和裸跑环境并无明显差异,这破坏了操作系统本身的任务优先级调度策略,虽能保障通信的实时响应,但容易对操作系统其他应用造成干扰。
发明内容
本发明提供一种基于AMP架构的操作系统核间通信方法,在不必修改操作系统内部实现情况下使其即可具备核间通信的能力。
一种基于AMP架构的操作系统核间通信方法,通过约定操作系统消息队列的使用方式,使用共享内存作为传输媒介,软中断作为通信触发条件,通信发送方与接收方借助各自操作系统内核对象消息队列进行核间通信。
进一步地,共享内存区包含发送缓存区和接收缓存区两部分,共享内存区中的消息格式包括消息长度、消息内容和校验和。
进一步地,发送方与接收方进行核间通信的方式为:发送方准备好消息数据后通过软中断触发接收方进入接收状态,接收方在中断服务程序中调用操作系统消息发布服务完成消息的发布,退出中断服务程序后在任务层对应接收任务中调用操作系统的消息等待服务完成消息的接收。
进一步地,调用操作系统消息发布服务和消息等待服务时,对于引用传递方式实现的消息队列,在消息发布服务中,消息的指针指向发送缓存区或接收缓存区,消息长度为指针指向中的内容;
对于值传递方式实现的消息队列,创建消息队列时,定义队列长度以及每个队列项的大小,然后将消息指针更改为指向发送缓存区或接收缓存区,从而更改为引用传递方式。
本发明通过约定操作系统消息队列的使用方式,在传输媒介为共享内存和通信触发条件为软中断情况下,实现一种采用操作系统内核对象-消息队列进行核间通信的设计方法,构思巧妙,流程简单,移植方便和易于推广,利于应用层面软件开发时通信层实现的统一。
本发明提出的这种借助各自操作系统内核对象消息队列实现的核间通信方式不仅能应用于非实时操作系统和RTOS,也能应用于RTOS间。硬件上无需增加额外硬件模块,软件上不增加额外插件且无需修改操作系统消息队列的底层实现,同时不破坏操作系统本身的任务优先级调度策略。
附图说明
所包括的附图用来提供对本发明实施例的进一步的理解,其构成了说明书的一部分,用于例示本发明的实施例,并与文字描述一起来阐释本发明的原理。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1共享内存区示意图;
图2共享内存区中的消息格式;
图3基于软中断的核间通信示意图;
图4消息的接收过程示意图;
图5引用传递方式调用消息服务的约定方式;
图6值传递方式调用消息服务的约定方式。
具体实施方式
下面结合附图对本发明作进一步详细说明。
本发明通过约定操作系统消息队列的使用方式,使用共享内存作为传输媒介,软中断作为通信触发条件,通信发送方与接收方借助各自操作系统内核对象消息队列进行核间通信。
本发明建立如图1所示的共享内存区,包含了发送缓存区和接收缓存区两部分。指向发送缓存区的指针为TxBaseAddr,指向接收缓存区的指针为RxBaseAddr。其存储的消息格式如图2所示,包括消息长度、消息内容和校验和。操作系统A和B通过软中断(SGI,Software Generated Interrupts)作为通信触发条件,其过程如图3所示。
作为通信接收方,操作系统按照图4过程进行消息的接收。以OS A往OS B发送消息为例,发送方OS A准备好消息数据后通过SGI触发OS B进入接收状态。OS B在中断服务程序(ISR)中调用操作系统消息发布服务完成消息的发布,退出ISR后在任务层对应接收任务中调用操作系统的消息等待服务完成消息的接收。
操作系统中消息发送到消息队列时一般实现的方式有两种,即值传递方式和引用传递方式。所谓值传递方式,是指将要发送的数据复制到队列中,即队列中存储的是数据的原始值。所谓引用传递方式,是指将原数据的引用发送到队列中,即队列中存储的是数据的指针。
不同类操作系统内核对象消息队列的存储结构、发布和等待消息的机理差异巨大,且执行中往往因涉及优先级变化而带来任务的切换,通过消息类型(或消息结构)转换方式显然代价高昂,这会涉及到操作系统内核底层的转换。为通过操作系统消息队列实现核间通信的目的,本发明方法约定为引用传递方式,即将值传递方式实现的消息队列更改为引用传递方式。因此,调用消息发布服务和消息等待服务时,输入状态如图5和图6所示,其中,对于引用传递方式实现的消息队列,在消息发布服务中,消息的指针指向发送缓存区TxBaseAddr或接收缓存区RxBaseAddr,消息长度为指针指向中的内容,即*TxBaseAddr以及*RxBaseAddr。
对于值传递方式实现的消息队列,创建消息队列时,定义队列长度以及每个队列项的大小,本实施例队列长度为1个队列项,队列项大小为4字节。然后将消息指针更改为指向发送缓存区或接收缓存区,从而更改为引用传递方式。
对于基于AMP架构的操作系统核间通信场景,本发明基于操作系统内核对象消息队列,通过约定其使用方式,在不必修改操作系统内部实现情况下使其即可具备核间通信的能力。同时,针对不同操作系统中数据发送到消息队列方式的两种不同方式,本发明提出了调用不同操作系统服务时对应的使用策略。
上述具体实施方式仅限于解释和说明本发明的技术方案,但并不能构成对权利要求保护范围的限定。本领域技术人员应当清楚,在本发明的技术方案的基础上做任何简单的变形或替换而得到的新的技术方案,均落入本发明的保护范围内。
Claims (1)
1.一种基于AMP架构的操作系统核间通信方法,其特征在于,通过约定操作系统消息队列的使用方式,使用共享内存作为传输媒介,软中断作为通信触发条件,通信发送方与接收方借助各自操作系统内核对象消息队列进行核间通信;
共享内存区包含发送缓存区和接收缓存区两部分,共享内存区中的消息格式包括消息长度、消息内容和校验和;
发送方与接收方进行核间通信的方式为:发送方准备好消息数据后通过软中断触发接收方进入接收状态,接收方在中断服务程序中调用操作系统消息发布服务完成消息的发布,退出中断服务程序后在任务层对应接收任务中调用操作系统的消息等待服务完成消息的接收;
调用操作系统消息发布服务和消息等待服务时,对于引用传递方式实现的消息队列,在消息发布服务中,消息的指针指向发送缓存区或接收缓存区,消息长度为指针指向中的内容;消息发布服务包括消息队列指针、实际消息指针、消息长度、发布时功能选项、错误记录,消息等待服务包括消息队列指针、等待超时时间、等待时功能选项、消息大小、时间戳、错误记录;
对于值传递方式实现的消息队列,创建消息队列时,定义队列长度以及每个队列项的大小,然后将消息指针更改为指向发送缓存区或接收缓存区,从而更改为引用传递方式;其中队列长度为1个队列项,队列项大小为4字节;消息发布服务包括消息队列句柄、实际消息指针、发布时功能选项,消息等待服务包括消息队列句柄、实际消息指针、等待超时时间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110947834.3A CN113778706B (zh) | 2021-08-18 | 2021-08-18 | 一种基于amp架构的操作系统核间通信方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110947834.3A CN113778706B (zh) | 2021-08-18 | 2021-08-18 | 一种基于amp架构的操作系统核间通信方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113778706A CN113778706A (zh) | 2021-12-10 |
CN113778706B true CN113778706B (zh) | 2023-08-15 |
Family
ID=78838106
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110947834.3A Active CN113778706B (zh) | 2021-08-18 | 2021-08-18 | 一种基于amp架构的操作系统核间通信方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113778706B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115098430B (zh) * | 2022-06-27 | 2024-03-19 | 西安电子科技大学 | 一种基于amp架构的核间通信优先级调度方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20010010275A (ko) * | 1999-07-19 | 2001-02-05 | 정선종 | 메시지큐와 공유메모리를 결합 이용한 프로세스 간의 통신 방법 |
CN1904873A (zh) * | 2005-07-28 | 2007-01-31 | 大唐移动通信设备有限公司 | 嵌入式实时操作系统中多核处理器的核间通信方法及装置 |
CN101266561A (zh) * | 2008-04-29 | 2008-09-17 | 中兴通讯股份有限公司 | 一种在多核多线程处理器中的核间消息通信方法 |
CN101354693A (zh) * | 2008-09-11 | 2009-01-28 | 重庆邮电大学 | 一种异构多核处理器的核间通信调度系统及方法 |
CN103034616A (zh) * | 2012-12-07 | 2013-04-10 | 中国科学院声学研究所 | 一种多个操作系统访问存储介质的方法、计算机 |
CN103942178A (zh) * | 2014-03-03 | 2014-07-23 | 浙江大学 | 多核处理器上实时操作系统与非实时操作系统之间的通信方法 |
CN106095604A (zh) * | 2016-06-21 | 2016-11-09 | 京信通信技术(广州)有限公司 | 一种多核处理器的核间通信方法及装置 |
CN109976925A (zh) * | 2019-03-27 | 2019-07-05 | 北京翼辉信息技术有限公司 | 一种基于混合多系统核间实时通信的方法和系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI324309B (en) * | 2002-08-26 | 2010-05-01 | Interdigital Tech Corp | Communication circuit |
-
2021
- 2021-08-18 CN CN202110947834.3A patent/CN113778706B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20010010275A (ko) * | 1999-07-19 | 2001-02-05 | 정선종 | 메시지큐와 공유메모리를 결합 이용한 프로세스 간의 통신 방법 |
CN1904873A (zh) * | 2005-07-28 | 2007-01-31 | 大唐移动通信设备有限公司 | 嵌入式实时操作系统中多核处理器的核间通信方法及装置 |
CN101266561A (zh) * | 2008-04-29 | 2008-09-17 | 中兴通讯股份有限公司 | 一种在多核多线程处理器中的核间消息通信方法 |
CN101354693A (zh) * | 2008-09-11 | 2009-01-28 | 重庆邮电大学 | 一种异构多核处理器的核间通信调度系统及方法 |
CN103034616A (zh) * | 2012-12-07 | 2013-04-10 | 中国科学院声学研究所 | 一种多个操作系统访问存储介质的方法、计算机 |
CN103942178A (zh) * | 2014-03-03 | 2014-07-23 | 浙江大学 | 多核处理器上实时操作系统与非实时操作系统之间的通信方法 |
CN106095604A (zh) * | 2016-06-21 | 2016-11-09 | 京信通信技术(广州)有限公司 | 一种多核处理器的核间通信方法及装置 |
CN109976925A (zh) * | 2019-03-27 | 2019-07-05 | 北京翼辉信息技术有限公司 | 一种基于混合多系统核间实时通信的方法和系统 |
Non-Patent Citations (1)
Title |
---|
一种基于异构双核处理器的嵌入式操作系统构架设计;蒋建春;曾素华;岑明;;计算机应用(第10期);第2686-2689页 * |
Also Published As
Publication number | Publication date |
---|---|
CN113778706A (zh) | 2021-12-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2548509C (en) | System for executing code during operating system initialization | |
US20090271796A1 (en) | Information processing system and task execution control method | |
US6968411B2 (en) | Interrupt processing apparatus, system, and method | |
US20020091826A1 (en) | Method and apparatus for interprocessor communication and peripheral sharing | |
US6697876B1 (en) | Distributed kernel operating system | |
JP7310924B2 (ja) | サーバ内遅延制御装置、サーバ、サーバ内遅延制御方法およびプログラム | |
KR20070083460A (ko) | 다중 커널을 동시에 실행하는 방법 및 시스템 | |
JPH03126158A (ja) | スケジユーリング方法及び装置 | |
US11860796B2 (en) | Execution space agnostic device drivers | |
US7640549B2 (en) | System and method for efficiently exchanging data among processes | |
CN112491426B (zh) | 面向多核dsp的服务组件通信架构及任务调度、数据交互方法 | |
US6256660B1 (en) | Method and program product for allowing application programs to avoid unnecessary packet arrival interrupts | |
CN113778706B (zh) | 一种基于amp架构的操作系统核间通信方法 | |
EP0871307A2 (en) | Apparatus for flexible control of interrupts in multiprocessor systems | |
KR20110065448A (ko) | 메시지 처리 파이프라인 구성 | |
CN101976206A (zh) | 一种中断处理方法和装置 | |
EP1265148B1 (en) | Using software interrupts to manage communication between data processors | |
US10949367B2 (en) | Method for handling kernel service request for interrupt routines in multi-core environment and electronic device thereof | |
US6934953B2 (en) | Deferred procedure call in interface description language | |
EP1365322A1 (en) | Improvements relating to computer programs | |
Mudge et al. | A high performance operating system for the NCUBE | |
US7320044B1 (en) | System, method, and computer program product for interrupt scheduling in processing communication | |
CN115098430B (zh) | 一种基于amp架构的核间通信优先级调度方法 | |
JP7485101B2 (ja) | サーバ内遅延制御装置、サーバ内遅延制御方法およびプログラム | |
CN113810167B (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 |