CN108228524B - 一种多核系统的核间交互方法 - Google Patents
一种多核系统的核间交互方法 Download PDFInfo
- Publication number
- CN108228524B CN108228524B CN201611154079.9A CN201611154079A CN108228524B CN 108228524 B CN108228524 B CN 108228524B CN 201611154079 A CN201611154079 A CN 201611154079A CN 108228524 B CN108228524 B CN 108228524B
- Authority
- CN
- China
- Prior art keywords
- core
- processor core
- inter
- interaction
- interactive data
- 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
Images
Classifications
-
- 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
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
Abstract
本发明属于计算机系统软件专业技术领域,涉及多核操作系统的核间交互方法。本发明为每个处理器核提供专用交互通道,其他处理器核将数据投递到专用通道中与该处理器核进行交互,而该处理器核摘取通道中的数据并处理,完成交互。该方法具有唯一性、实时性和高并行特点特性。针对目前的共享内存核间交互技术,本发明提高了核间交互并行性和实时性。通过一个空闲链表管理所有的空闲处理器核间交互数据块;源处理器核在发起处理器核间交互时从空闲链表中获取一个核间交互数据块;源处理器核根据核间交互需要设置交互数据并将核间交互数据块投递到目的处理器核对应的专用交互通道中。目的处理器核从专用交互通道中摘取核间交互数据并处理,处理结束后释放核间交互数据块。
Description
技术领域
本发明属于计算机系统软件专业技术领域,涉及多核操作系统的核间交互方法。
背景技术
目前多核操作系统的核间交互技术通常是通过共享内存方式实现。系统维护一段共享内存空间,该空间属于临界资源,系统采用自旋锁保护该临界资源。当一个处理器核试图与其他某个处理器核或某些处理器核交互时,称它为源处理器核,而被交互处理器核称为目的处理器核。源处理器核必须先获取自旋锁,然后将数据投递到共享内存中,之后再通过中断控制器或处理器发送中断给交互处理器核,并等待目的处理器核的处理结果;目的处理器核响应中断后,在中断处理程序中提取共享内存中的数据并处理,处理完成后再将结果反馈给源处理器核;源处理器核接收到反馈结果后释放自旋锁,这样就完成一次处理器核间交互。当前这种多个处理器核共享一段空间的交互方法存在以下缺点,首先是并行性问题,由于该共享空间属于临界资源,在处理核核间交互时,源处理器核需要获取自旋锁,并且等待目的处理器核处理完成后才能释放自旋锁,因此同一时刻只能存在一个处理器核间交互;其次是实时性问题,目的处理器核在中断中处理交互数据,当处理数据时间较长时,延长了系统中断处理时间。
发明内容
本发明的目的:
为了解决目前多核操作系统的处理器核交互技术的低并行和低实时性问题,本发明提出了一种多核系统的核间交互方法。该方法通过为每个处理器核建立专用通道,核间交互通过该专用通道传递数据,并且在中断处理例程外进行数据处理,提高处理核间交互的并行性和实时性。
本发明的技术方案:
本发明的技术方案包括定义处理器核间交互数据结构、定义处理器核间交互通道结构、处理器核间交互通道维护、处理器核间交互过程。
处理器核间交互数据结构是核间交互的基本描述结构,该数据结构包含一个双向链表结构、源处理器核号、目的处理器核号、数据处理函数指针、被处理数据及大小、处理器核间交互同步标识、处理器核间交互完成标识。双向链表结构用于将多个处理器核间交互链接在一块,形成一个链表;源处理器核号用于标识由哪个处理器核发起处理器核间交互;目的处理器核号用于标识由哪个处理器核处理该核间交互;数据处理函数指针是由源处理器核设置的数据处理函数,用于处理处理器核间交互数据;被处理数据及大小指定的核间交互需要处理的数据;处理器核间交互同步标识用于标识目的处理器核反馈处理结果的时机,包括处理前、处理中、处理后及不需要反馈;处理器核间交互完成标识用于标识目的处理器核是否完成处理。
处理器核间交互通道结构是一个双向链表,它将处理器核间交互结构链接成一个双向链表,并通过多核操作系统提供的自旋锁结构保护该链表。
处理器核间交互通道维护包括为每个处理器核建立专用通道,源处理器核在发起处理器核间交互时,将核间交互数据投递到目的处理器核所属的专用通道;目的处理器核在处理交互数据时,只处理属于自己的那个专用通道中的交互数据。
处理器核间交互过程是源处理器核组织核间交互数据、将核间交互数据投递到目的处理器核的交互通道中、向目的处理器核触发核间中断、等待目的处理器核反馈、目的处理器核响应中断、在中断退出时处理专用通道中的交互数据并反馈给源处理器核。
本发明的具体实施方法如下:
1)定义交互数据结构,该结构包含源处理器核号、目的处理器核号、交互函数入口及函数参数列表;
2)定义交互数据结构控制块池;
3)定义交互数据结构控制块链表;
4)为每个处理器核定义专用通道,该专用通道是一个交互数据结构控制块链表;
5)在多核操作系统初始化时初始化交互数据结构控制块池,将交互数据结构控制块插入到交互数据结构控制块链表中;初始化每个处理器核的专用通道;
6)初始化完成后,系统可以使用核间交互功能;
7)源处理器核从交互数据结构控制块链表中获取一个交互数据结构控制块;
8)源处理器核设置交互数据结构控制块,包括设置源处理器核号、目的处理器核号、交互函数入口及函数参数列表;
9)源处理器核将设置好的交互数据结构控制块投递到目的处理器核对应的专用交互通道中;
10)源处理器核通过中断控制器驱动向目的处理器核触发中断信号;
11)目的处理器核响应中断,在中断退出时循环处理专用交互通道上的交互数据结构控制块,每处理一个交互数据结构控制块,就释放该控制块,重新插入到交互数据结构控制块链表中,并向源处理核反馈处理结果,直到专用交互通道没有交互数据结构控制块。
必要的步骤特性说明:本发明的中心思想是处理器核间交互数据的维护和处理过程,包括分配交互数据结构块,设置交互数据结构块,投递及处理交互数据块。
本发明中的核间交互数据维护步骤如下:
通过一个空闲链表管理所有的空闲处理器核间交互数据块;源处理器核在发起处理器核间交互时从空闲链表中获取一个核间交互数据块;源处理器核根据核间交互需要设置交互数据并将核间交互数据块投递到目的处理器核对应的专用交互通道中;目的处理器核从专用交互通道中摘取核间交互数据并处理,处理结束后释放核间交互数据块;本发明中的核间交互数据处理步骤如下:源处理器核将核间交互数据投递到目的处理器核的专用交互通道后,向目的处理器核触发核间中断,然后等待目的处理器核反馈处理结果;目的处理器核在中断退出时循环处理专用交互通道上的交互数据,直到专用交互通道为空;每处理完一个交互数据,就释放该交互数据控制块并向源处理器核反馈处理结果。
本发明具有的优点效果:
实施本发明以后,同一时刻可以有多个处理器核向多个处理器核发起核间交互,目的处理器核能够在一次中断退出时处理多个处理器核间交互,提高处理器核间交互并行性和实时性。主要体现在以下几个方面:
a)每个处理器核有专用的核间交互通道,不需要与其他处理器核共享交互通道,可同时有多个源处理器核发起核间交互,各个处理器核可同时处理自己的核间交互数据;
b)目的处理器核在中断退出时处理专用交互通道中的交互数据,避免在中断处理程序中处理大量数据而引导的中断处理时间过长问题。
附图说明
图1是处理器核间交互专用通道示意图,描述专用通道与处理器核的对应关系;图2是处理器核间交互流程图,源处理器核cpux向目的处理器核cpuy发起核间交互;
具体实施方式
一种多核系统的核间交互方法实施方案:
在系统启动过程中初始化核间交互模块,包括初始化核间交互数据控制块,将这些控制块加入到空闲链表中,清空所有处理器核的专用交互通道。在系统启动阶段初始化核间交互模块后,就能够正常使用本方法进行核间交互。
处理器核间交互分为源处理器核与目的处理器核,如图2所示,处理器核cpux向处理器cpuy发起核间交互请求,cpux是源处理器核,cpuy是目的处理器核。
首先源处理器核需要从交互数据控制块空闲链表上获取一个空闲的交互数据控制块;然后根据交互请求设置交互控制块,包括目的处理器核标识,需要交互处理的数据,处理函数,同步标识;设置交互数据完成以后,将交互数据控制块投递到目的处理器核所用的专用交互通道;最后向目的处理器核触发核间中断并根据等待目的处理器核反馈处理结果。
目的处理器核在中断退出时检查专用交互通道是否为空,如果为空,表示没有交互请求需要处理,否则循环处理交互通道中的每个核间交互请求。首先从专用交互通道中摘取一个交互控制块,然后解析其中的数据,执行其中的交互处理函数,完成交互数据的处理操作,最后再释放交互数据控制块到交互数据控制块空闲链表中。以这咱循环方式处理下一个交互语法,直到专用交互通道为空。
Claims (2)
1.一种多核系统的核间交互方法,其特征在于:包括以下几个步骤;(1)定义交互数据结构,定义交互数据结构控制块池;定义交互数据结构控制块链表,为每个处理器核定义专用通道,该专用通道是一个交互数据结构控制块链表;(2)在多核操作系统初始化时初始化交互数据结构控制块池,将交互数据结构控制块插入到交互数据结构控制块链表中;初始化每个处理器核的专用通道,初始化完成后,系统可以使用核间交互功能;(3)源处理器核从交互数据结构控制块链表中获取一个交互数据结构控制块;所述源处理器核将设置好的交互数据结构控制块投递到目的处理器核对应的专用交互通道中;(4)所述源处理器核通过中断控制器驱动向目的处理器核触发中断信号;目的处理器核响应中断,在中断退出时循环处理专用交互通道上的交互数据结构控制块,每处理一个交互数据结构控制块,就释放该控制块,重新插入到交互数据结构控制块链表中,并向源处理核反馈处理结果,直到专用交互通道没有交互数据结构控制块。
2.根据权利要求1所述的一种多核系统的核间交互方法,其特征在于:所述源处理器核设置交互数据结构控制块;该控制 块 包含源处理器核号、目的处理器核号、交互函数入口及函数参数列表。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611154079.9A CN108228524B (zh) | 2016-12-14 | 2016-12-14 | 一种多核系统的核间交互方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611154079.9A CN108228524B (zh) | 2016-12-14 | 2016-12-14 | 一种多核系统的核间交互方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108228524A CN108228524A (zh) | 2018-06-29 |
CN108228524B true CN108228524B (zh) | 2021-07-16 |
Family
ID=62637458
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611154079.9A Active CN108228524B (zh) | 2016-12-14 | 2016-12-14 | 一种多核系统的核间交互方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108228524B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109343981A (zh) * | 2018-09-30 | 2019-02-15 | 南京国电南自维美德自动化有限公司 | 一种片上双核系统及其虚拟串口通信方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0342762A (ja) * | 1989-07-11 | 1991-02-22 | Fuji Xerox Co Ltd | マルチプロセッサシステムのプロセッサ間通信方法 |
CN1904873A (zh) * | 2005-07-28 | 2007-01-31 | 大唐移动通信设备有限公司 | 嵌入式实时操作系统中多核处理器的核间通信方法及装置 |
CN101067794A (zh) * | 2007-06-14 | 2007-11-07 | 中兴通讯股份有限公司 | 多核处理器及其串口复用方法 |
CN101114272A (zh) * | 2007-01-22 | 2008-01-30 | 北京中星微电子有限公司 | 一种可实现芯片内多核间通信的芯片及通信方法 |
CN102270189A (zh) * | 2011-06-17 | 2011-12-07 | 西安电子科技大学 | 基于fpga多核系统的核间通信方法 |
CN102693162A (zh) * | 2011-12-29 | 2012-09-26 | 中国科学技术大学苏州研究院 | 基于共享内存和核间中断的多核平台上多个虚拟机之间进程通信方法 |
CN104933009A (zh) * | 2015-04-29 | 2015-09-23 | 中国人民解放军国防科学技术大学 | 一种用于多核dsp间的片上通信方法及数据通信装置 |
CN105593834A (zh) * | 2013-10-02 | 2016-05-18 | 大陆汽车有限责任公司 | 用于芯片间通信的通信系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090037932A1 (en) * | 2007-08-01 | 2009-02-05 | Clark Michael T | Mechanism for broadcasting system management interrupts to other processors in a computer system |
-
2016
- 2016-12-14 CN CN201611154079.9A patent/CN108228524B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0342762A (ja) * | 1989-07-11 | 1991-02-22 | Fuji Xerox Co Ltd | マルチプロセッサシステムのプロセッサ間通信方法 |
CN1904873A (zh) * | 2005-07-28 | 2007-01-31 | 大唐移动通信设备有限公司 | 嵌入式实时操作系统中多核处理器的核间通信方法及装置 |
CN101114272A (zh) * | 2007-01-22 | 2008-01-30 | 北京中星微电子有限公司 | 一种可实现芯片内多核间通信的芯片及通信方法 |
CN101067794A (zh) * | 2007-06-14 | 2007-11-07 | 中兴通讯股份有限公司 | 多核处理器及其串口复用方法 |
CN102270189A (zh) * | 2011-06-17 | 2011-12-07 | 西安电子科技大学 | 基于fpga多核系统的核间通信方法 |
CN102693162A (zh) * | 2011-12-29 | 2012-09-26 | 中国科学技术大学苏州研究院 | 基于共享内存和核间中断的多核平台上多个虚拟机之间进程通信方法 |
CN105593834A (zh) * | 2013-10-02 | 2016-05-18 | 大陆汽车有限责任公司 | 用于芯片间通信的通信系统 |
CN104933009A (zh) * | 2015-04-29 | 2015-09-23 | 中国人民解放军国防科学技术大学 | 一种用于多核dsp间的片上通信方法及数据通信装置 |
Non-Patent Citations (2)
Title |
---|
TMS320C6678多核DSP的核间通信方法;吴灏等;《嵌入式技术》;20120930;全文 * |
支持多核的嵌入式操作系统关键技术研究;何翔等;《航空计算技术》;20130630;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN108228524A (zh) | 2018-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101882089B (zh) | 一种采用多线程处理业务会话应用的方法及装置 | |
CN108776897B (zh) | 数据处理方法、装置、服务器及计算机可读存储介质 | |
US20150113252A1 (en) | Thread control and calling method of multi-thread virtual pipeline (mvp) processor, and processor thereof | |
CN106034120B (zh) | 一种多进程访问可信应用的方法和系统 | |
CN109101342B (zh) | 分布式作业协调控制方法、装置、计算机设备及存储介质 | |
CN107515785A (zh) | 一种内存管理方法及装置 | |
CN103268258A (zh) | 一种卫星地面遥控发令安全控制方法 | |
CN109032796B (zh) | 一种数据处理方法和装置 | |
US9766951B2 (en) | Hardware synchronization barrier between processing units | |
CN108228524B (zh) | 一种多核系统的核间交互方法 | |
US7707584B2 (en) | Method and apparatus for synchronizing calls in a server and client system | |
US20150199211A1 (en) | System and Method for File Injection in Virtual Machine Configuration | |
KR20210031347A (ko) | 처리 작업을 수행하는 방법, 장치, 기기 및 저장 매체 | |
CN108804240B (zh) | 一种队列数据的分发和处理算法 | |
CN110083441B (zh) | 一种分布式计算系统及分布式计算方法 | |
CN111225007B (zh) | 数据库连接方法、装置和系统 | |
JP2019087098A (ja) | プログラム及び情報処理装置 | |
CN112114955B (zh) | Windows平台下实现单进程单线程完成端口的方法 | |
CN112506655B (zh) | 一种绘图方法、存储介质及应用服务器 | |
US20190340034A1 (en) | Device and method for processing jobs | |
EP4044043A1 (en) | Storage process running method and apparatus, database system, and storage medium | |
US9069625B2 (en) | Method of parallel processing of ordered data streams | |
US20180357095A1 (en) | Asynchronous sequential processing execution | |
CN112714181A (zh) | 一种数据传输方法及装置 | |
CN112865905A (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 |