CN101354693B - 一种异构多核处理器的核间通信调度系统及方法 - Google Patents
一种异构多核处理器的核间通信调度系统及方法 Download PDFInfo
- Publication number
- CN101354693B CN101354693B CN2008100702884A CN200810070288A CN101354693B CN 101354693 B CN101354693 B CN 101354693B CN 2008100702884 A CN2008100702884 A CN 2008100702884A CN 200810070288 A CN200810070288 A CN 200810070288A CN 101354693 B CN101354693 B CN 101354693B
- Authority
- CN
- China
- Prior art keywords
- message
- communication
- internuclear
- task
- numbering
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Multi Processors (AREA)
Abstract
一种基于异构多核处理器的核间通信与调度系统及方法,涉及计算机领域。根据异构多核处理器的特点采用对称通信及调度的方法设计了一种应用于异构多核处理器核间任务通信及调度系统,通过核间事件管理器统一定义各个核间通信的消息、事件,建立核间消息、事件、任务之间的关联关系,通过核间通信调度器处理来自通信接口和共享内存的核间消息数据、设置事件、触发任务调度等操作。该发明从通信和调度两方面解决了异构多核处理器核间通信不同类型的消息通信效率及任务调度问题,解决了主从式调度方法带来的复杂性问题。
Description
技术领域
本发明涉及计算机领域,具体涉及异构多核处理器核间的通信及调度控制技术。
背景技术
当前多核处理器主要有两种结构,一种是对称同构多核处理器,这种处理器中各个核具有相同的处理器结构,共享内存和外设,主要用于通用计算机领域。一种是异构多核处理器,他们具有不同结构的处理器内核,有各自的内存空间和外设,每个处理器核具有自己的系统时钟频率,通过处理器通信接口和部分共享内存等进行通信,这种处理器主要用于嵌入式设备领域。根据处理器的结构,在多核处理器上的调度控制系统大体分成2类:一是以对称处理技术SMP(Symmetric Multiprocessing)为主的系统。SMP要求各个处理器结构必须要求一致,所有核上运行单一的调度系统映像,共享SMP内核的数据和代码,通常用于对称多核处理器。二是基于非对称处理AMP(Asymmetric Multiprocessing)技术的主从式系统。在不同结构的处理器中运行具有不同功能不同构架的系统内核,主要应用于非对称异构多核处理器。应用这种调度控制方法的主要为嵌入式操作系统。
由于异构多核处理器各个核在处理器结构、频率、共享内存的编址等不同,每个处理器可以在公共全局内存中有自己的分区,加上共享内存空间一般比较小,不足以运行较为完善的操作系统。因此,SMP不适合非对称异构多核处理器。
如发明专利申请200510087321在共享内存区中分配内存作为多核共享消息池;源核将要发送的消息写入多核共享消息池;源核将所述消息在多核共享消息池中的地址、目的任务标识通过数据管道发送给目的核;目的核将多核共享消息池中所述地址存放的消息传送给目的任务。这种方法在对称多核处理器中是可行的,但在异构多核处理器中,在共享消息池中的消息在不同的核中编址是不一样的,任务的标识也可能存在相同,不能通过这种方法将消息和数据准确地从一个核传送到另一个核中。因此,这种方法在异构多核处理中并不适用。
针对这种情况,基于AMP技术的主从结构的多核调度方法被提出,在异构多核处理器中的不同核中采用不同结构和功能的调度内核,不同的操作系统内核的功能和调度方式可能不一样,这种主从式调度系统采用非对称处理技术来设计构架,它们的主要特点是根据处理器的功能特点采用AMP技术将调度系统也分成主从式结构,主调度系统和从调度系统存在差异。调废系统间通信主要利用处理器间的通信接口,在不同核中的调度系统内核的调度方式是不一样的,一个内核作为主调度器,负责整个多核处理器管理和调度,其余的内核作为从调度器,负责本处理器核的调度与管理,同时接收主调度器的管理。
如发明专利申请200710198568就是针对异构多核处理器提出的一种调度方法。该专利申请通过采用主从式管理结构,使得运行于主核上的操作系统有对异构多核系统中所有资源的主导管理能力,监控异构多核系统的整体运行,并在必要的时候向对方发出行为调整命令,要求对方调整其行为,从核上的操作系统实时接受主操作系统传递过来的行为调整命令并进行调整,从而使多核异构系统中的主核操作系统与从核操作系统之间可以互相沟通与约束,解决了主核操作系统与从核操作系统之间无法协调与调度的问题。
由于在许多应用中采用的异构多核处理器,每个处理器核有自己的系统时钟、私有内存、私有外设等,同时还有部分共享内存,共享内存在不同核中的编址也各不相同。能够独立完成一些功能。根据任务的性质将不同任务分配到不同的核上运行,如用于控制的任务放在一个核中,用于人机交互的任务放在一个核中,用于通信与信息处理的任务放在一个核中,因此这些任务的功能相对独立,可以在不同的处理器核中同时运行,各个处理器核间的任务只需要进行少量数据的交互。如果采用主从式调度系统,主从调度系统之间构架和实现都是非对称,在不同的核中运行不同结构的调度器,不仅增加了调度系统的实现难度,同时也为调度器的使用和移植增加复杂性。
在许多场合,异构多核处理器核间不仅传递简单消息,还存在量较大的数据传输。对于这种多核处理器,处理器之间的通信除了可以通过通信接口进行少量数据通信以外,还可以利用共享内存实现大量数据的交换。主从式调度系统由于在调度控制方法上存在异构性,主要通过核间通信接口来传递消息与数据。由于核间通信有小于通信接口单次传输的数据,也有大于单次传输的数据。如果采用通信接口来传送大于单次传送的数据,需要多次传输、读写和保存操作,通信速率和数据量都受到限制,这样效率就降低了,整个处理器的性能得不到充分发挥。
在另一方面,调度系统是用户程序和硬件的中间接口,用来管理任务间的通信与调度。当前大多数嵌入式调度系统设计成模块式、功能可裁剪。因此,对于用户来说调度控制系统功能的多少是可以裁减和配置的,在调度控制系统的设计中其功能的多少与处理器的结构无关。异构多核调度器可以采用对称结构来设计构架。
因此,本发明主要针对主从式异构多核调度系统在一些应用中存在的缺陷,采用对称通信与调度方法设计一种异构多核处理器核间通信调度系统,提高核间的通信效率。
发明内容
本发明所要解决的技术问题是:针对现有技术中多核处理器调度控制在异构多核处理器中存在的上述缺陷,本发明从提高多核处理器中各内核间的通信效率和简化多核处理器调度系统结构出发,在单核处理器嵌入式操作系统的基础上,设计一种基于对称结构的异构多核处理器通信和调度控制方法,在异构多核处理器各个核中运行相同构架的调度器,实现核间任务的高效通信和调度控制。
本发明解决上述技术问题的技术方案是,在单核嵌入式操作系统基础上,保留单核操作系统的其他功能,通过增加核间通信调度器和核间事件管理器来处理核间通信和调度,设计一种应用于异构多核处理器对称结构的核间通信和调度方法及系统。每个处理器核中设置有核间事件管理器、核间通信调度器,硬件抽象层中设置有核间通信接口,每个处理器核中运行一个相同的调度系统,采用符号型消息和数据型消息来实现核间不同数据量的通信,符号型消息只通过核间通信接口传输,数据型消息通过通信接口传输消息编号,消息内容直接在共享内存中操作。核间事件管理器统一定义各个处理器核间通信的消息、事件、处理器核编号,建立核间消息、事件、任务的关联关系,分别在各核中建立消息编号/地址映射表实现消息的识别,对所有处理器核中核间通信的消息进行统一定义、编号,在各自核中建立一个消息编号/地址映射表来实现地址和编号的转换,核间通信调度器负责各核间通信数据的处理,利用核间通信接口和共享内存实现消息传递、消息的保存、消息的读取及任务调度等操作。对所有处理器核进行统一编号,用于消息传递过程中对各个处理器核进行身份确认,根据核编号通过嵌入到调度器内核中的核间通信接口中断服务程序,处理核间通信及调度。
在该发明中,异构多核处理器中的每个核都是具有相同通信功能的实体,都需要进行数据的发送和接收,根据用户要求配置系统的功能和任务;将各处理器核看成是对等实体,每个处理器核都可以主动向其他核发送数据和被动接收其他核发送的数据。至于各个处理器核对调度系统的功能要求与应用需求相关,与通信无关。通过核间通信调度器处理各内核间的通信,采用消息来实现通信数据的传递,使用核间事件管理器来统一定义消息、事件、处理器编号,建立核间通信消息和任务的关联关系。消息的处理、事件的设置、消息关联任务的相应操作等通过通信调度器来管理。
核间通信调度器以事件为基础来处理通信相关的操作,如读取消息、保存消息,然后对事件标志进行设置、写事件消息指针、切换事件关联任务状态等。核间事件管理器是用来建立消息与任务之间关系的纽带,在事件管理器中统一规定消息的类型、消息格式、消息传送的方式、消息存储方式、事件的组成等。核间通信调度器负责通信数据的处理,根据各处理器核间任务通信的特点,利用通信接口和共享内存实现消息传递、消息的保存、消息的读取及触发操作。
本发明的有益效果:该发明从通信和调度两方面解决了异构多核处理器核间通信不同数据量的通信效率问题,解决了主从式调度方法在异构多核处理器不同核中运行不同调度控制系统带来的复杂性问题,提高异构多核处理器的软件开发效率。
附图说明
图1异构多核处理对称通信调度系统内核结构
图2通信调度器功能流程图
图3数据型消息传输过程
具体实施方式
本发明针对异构多核处理器的通信和调度系统进行设计。主要是根据异构多核处理器的通信特点,将各处理器核看成是对等实体,每个处理器核都可以主动向其他核发送数据和被动接收其他核发送的数据。至于各个处理器核对调度系统的功能要求与应用需求相关,与通信无关,即通信产生的动作由具体的任务去执行,用户根据任务功能编写实现代码。因此,本发明根据对称的思想对通信和调度算法进行设计。
该通信和调度系统设计是在单核处理器嵌入式操作系统基础上进行的。当前大多数嵌入式调度系统都设计为模块式或可裁减的结构,提供了调度、任务通信、内存管理、设备管理等基本功能。用户可根据系统的具体需求来裁减或配置操作系统功能,不需要在操作系统结构上作其他更改,调度系统提供的应用功能不在该设计之列。
本发明是在单核嵌入式操作系统基础上,针对当前异构多核处理器调度方法在通信上效率低、结构实现复杂等缺点,设计一种对称通信的异构多核处理器嵌入式调度控制系统。系统包括核间通信调度器、核间事件管理器。通信调度器以事件为基础来处理通信相关的操作,如读取消息、保存消息,然后对事件标志进行设置、写事件消息指针、切换事件关联任务状态等。核间事件管理器是用来建立核间消息与任务之间关系的纽带,在核间事件管理器中统一规定消息的类型、消息格式、消息传送的方式、消息存储方式、事件的组成等。
以下针对附图和具体实例对本发明的实施进行具体说明。
如图1所示为本发明所述异构多核处理对称通信调度系统内核结构示意图,在多核处理器中,每个处理中运行一个相同的的调度系统,该调度系统是在单核处理器调度系统中设置核间事件管理器、核间通信调度器,通过异构多核处理器的核间通信接口或共享内存来实现通信。
1.核间事件管理器
在异构多核处理器中各核间的消息和单核处理器的消息一样,也是用来实现任务间的通信和同步,只是用于各处理器核间的任务。由于各个处理器核间的任务可能存在不同步,消息需要保存以便于在任务执行时读取,且事件的属性和处理也不一致。因此,除了单核操作系统具有的事件模块外,增加一个核间事件管理器统一管理消息、事件、处理器核编号,建立各核间通信的消息、事件、任务的关联关系。
事件主要包括以下部分:
●事件标志部分:事件标志部分用来标示消息是否有效,0表示没有消息,大于1表示有消息和消息产生的次数,对于符号型消息,通过事件标志可以知道在消息队列中还有多少次消息未读。对于数据型消息,事件标志有效时为1。在事件创建时,初始化事件标志0,事件任务指针指向等待该事件的任务名、消息指针指向消息队列的起始地址或共享内存中的地址。
●消息类型部分:用来描述该消息是符号型消息还是数据型消息,如可设置0表示符号型消息,1表示数据型消息。
●处理器核编号部分:设置多核处理器中的各个核的编号,在发送消息和通信调度器读取消息时对各个处理器核进行身份确认,判断调用哪个接口的底层驱动函数。
●消息指针控制部分:控制消息的指针指向存放消息的地址,符号型消息指向消息队列,数据型消息指向共享内存该消息的首地址;在不同的处理器核中,其地址编址也不一样。
●消息长度部分:用来保存消息的长度,不同的数据型消息其长度可能不相同,在事件初始化时,通过定义来设置消息的长度。符号型消息长度为1。
●任务控制块指针:该指针指向该消息关联的任务控制块,通过该指针用于读取等待消息的任务状态,在通信调度器中当消息到来时,通过该指针将该关联任务设置为就绪态,并调用调度函数。
一个消息对应一个事件,事件在创建时采用数组和消息一一对应。
在异构多核处理器各核间进行通信时,消息和单核操作系统中消息存在不同。单核处理器中由于消息在同一个内存中进行通信,消息识别可以通过消息的地址来实现。而多核处理器中各个核的消息在不同的核中,地址是不一致的,不能通过地址(消息名)来传递。本发明在核间事件管理器中设置消息编号/地址映射表,通过消息编号/地址映射表来实现消息的识别。对所有处理器核中核间通信的消息进行统一定义、编号,在各自核中建立一个消息编号/地址映射表来实现地址和编号的转换,在发送端将地址转换成编号,在接收端将编号转换成地址,然后由核间事件管理器创建一个事件与之对应,用于存储消息的具体信息,这些信息在事件创建时进行定义。
为了实现核间通信消息的高效传递,本发明根据传递数据的不同消息可以分成两类:一类是符号型消息,消息数据少,通过核间通信接口就可以一次或两次全部传输,这类消息在各个核中是通过消息队列来进行保存。另外一种是数据型消息,通信数据量较大,通过消息邮箱需要进行多次传输,这类消息放在异构多核处理器的共享内存中,数据的处理和传递直接在共享内存中进行,核间通信接口不需要传递消息数据,只需要传递消息的编号。消息的结构:消息统一采用两个字节来表示:第一个字节表示消息编号,第二个字节:如果是符号型消息,表示消息内容;如果是数据型消息则为空,根据事件中的消息指针和消息长度在共享内存中读取消息。
采用结构体来表示消息的结构,对不同处理器核使用的消息采用统一的结构。对于符号型消息,采用无符号字符型变量表示;对于数据型消息,采用无符号字符型数组表示,数组的大小(消息的长度)由用户根据具体传递数据的多少进行定义。
2.核间通信调度器
由于在异构多核处理器中,处理器各核之间的通信就是利用对应的通信硬件,如消息邮箱、DMA(直接存储访问)、共享内存等来实现通信,虽然他们的硬件实现形式可能存在不同,但通信的数据结构和协议存在一致性。利用这种一致性,将用于处理器核间通信的程序嵌入操作系统内核中,作为内核的一部分,在硬件抽象层中留出一个接口,作为通信接口的中断程序入口。通过在单核处理器调度控制系统的内核中增加核间通信调度器,用于管理处理器间通信,在通信接口中采用消息来实现通信。每个处理器核内都采用相同结构的调度内核,只是在调度系统功能上进行裁减。核间通信调度器通过事件来对其他处理器核上的任务发送的消息和本处理器核的任务建立联系,实现消息的传递、任务同步和调度,具体负责处理调度系统之间的通信协议,根据消息(处理器各核间发送的消息)、事件、任务之间的关系进行相应的动作,如设置对应事件标志、传递消息参数、置等待任务为就绪态、激活挂起任务、触发任务调度等。调度系统在不同处理器核的通信部分结构都是对称的,也就是每个处理器核都可以通过调度系统对其他处理器核收发消息。为了保证消息传递的实时性,采用通信接口的中断服务程序来实现通信调度器功能,定义统一的接口函数提供给中断入口地址。在核间通信调度器中建立处理器通信的协议,如怎样通过消息编号与事件的对应关系判断消息种类通信的处理器等。并建立与之相对应的消息结构和任务调度触发机制。核间通信调度器将中断服务接口函数作为与硬件抽象层的接口,只要产生核间通信中断,处理器就会自动根据中断入口地址进入核间通信调度器进行操作。这样用户只需要根据定义的中断API函数写入中断入口地址就可以快速方便的移植。
核间通信调度器实现了各个处理器核任务间通信和同步。由核间的任务通信产生的所有操作都是通过该调度器直接或间接处理。在核间通信调度器中,调度器根据消息的编号所对应的事件设置事件标志、传递消息参数、置等待任务为就绪态、激活挂起任务、触发任务调度等。
由于通信调度器是嵌入到调度系统内核中的通信接口的中断服务程序,处理器间通信接口产生中断后,通过中断入口地址进入通信调度器,通信调度器根据通信内容触发相应动作。在通信调度器中消息主要通过事件和任务建立联系(具体见核间事件管理器)。同时,建立通信的协议机制,将任务、核间的通信消息、事件及调度器等部分之间关联起来,然后根据通信机制对消息进行处理,如将消息值写入消息对应的事件的消息地址、置事件标志有效、调用调度器调度等。
在该调度器中,主要处理核间通信数据的读取、事件的设置、任务激活、任务状态的切换、任务调度等操作。通信调度器还需要传递一个参数:处理器核编号,用于消息传递过程中对各个处理器核进行身份确认。
核间通信调度器控制功能处理流程见附图2所示:当通信接口接收到消息后产生中断,处理器核根据中断服务程序入口地址跳转到该通信调度器,该模块根据处理器核编号调用对应底层驱动函数从通信接口读出的消息内容。通信调度器根据读出消息编号从对应事件中读出消息的类型,对于符号型消息,根据事件消息指针则将消息内容写入对应的消息队列中,并置事件标志有效,判断等待该事件的任务是否处于等待状态,如果是,切换该任务状态为就绪态,然后退出中断。退出中断后根据调度系统是否为抢占式调度策略确定是否产生调度。对于数据型消息,通信接口不传递消息内容,只传递消息编号,通信调度器在接收到该类消息时,根据消息的编号找到对应事件,并置事件标志有效,判断等待该事件的任务是否处于等待状态,如果是,切换该任务状态为就绪态,然后退出中断。退出中断后根据调度系统是否为抢占式调度策略确定是否产生调度。如果是抢占式,则产生调度,运行目的任务,否则等到下一次调度时运行该任务。任务运行时,根据事件中的消息参数从消息队列或共享内存中读取消息数据。
3.通信调度过程
怎样通过消息来找到对应的事件、消息队列、任务是通信调度器的重点。本发明的通信机制规定一个消息只能定义为一个处理器核读,另一个处理器核写。虽然不同任务在不同处理器核中可以同时运行,但他们在运行过程中可能存在不同核上的任务通信和同步问题,当一个处理器核中的任务等待另一个处理器核的消息时,如果消息还未到来,任务就从运行态进入非运行状态。当消息到来时,而需要该消息的任务处于非运行态时,不能实时读取消息,因此建立一个消息缓冲区来存储消息,在操作中采用消息队列来实现。如果是数据型消息,由于数据长度超过通信接口一次传输的最大长度,因此需要多次传送才能完成消息的传递,这样不仅增加了输入写入过程,数据传输效率低,而且需要开辟足够大的消息队列来保存消息,需要占用很大的内存。这时就利用共享内存来实现大量数据的交换,数据型消息在编译时被指定到共享内存中,各个处理器核直接在共享内存中对其进行操作。通信接口只负责传递消息编号,每个消息对应一个事件。通信调度器根据消息编号查找对应事件,然后设置事件标志、写消息到消息队列中等,任务根据消息编号在对应的事件中根据消息指针和消息长度读取消息值。对于数据型消息,根据消息指针和消息长度在共享内存中读写消息值,不需要消息数据的传递,这样可以节约数据传递的时间,提高消息的传递效率。由于共享内存的数据单元长度对每个处理器都是一样的,只要保证操作系统通信的不同任务通信的消息结构完全一致,不同处理器分时进行访问,就可以正确进行数据交换。
对于不同处理器核中的数据型消息由于处于共享内存中,为了使不同处理器正确地访问各自的消息数据,对共享内存进行分区使用。在不同处理器核的程序中通过指定地址段的方式经过编译器编译按照相同的顺序指向共享内存区同一个起始地址,通过消息地址映射表将消息在共享内存中分配的地址和编号建立一个映射关系,各个消息依次排列,在数据型消息传递时,根据消息长度采用内存拷贝读写消息。通信接口只需要传递消息的编号,任务对消息读写直接在共享内存中进行,不需要数据的传递。
对于数据型消息,整个通信建立过程如图3所示。
步骤①:在事件管理器中统一创建消息;
步骤②:建立消息编号和消息的映射表,然后根据消息的类型、消息对应的处理器编号及任务的关系初始化事件,建立消息和各个处理器上的任务之间的关联关系;
步骤③:为数据型消息指定为共享内存中预分配的起始地址,编译;
步骤④:在进行通信时,处理器2上的任务j发送消息前通过消息编号对应的事件找到消息数据在共享内存中存放的地址,并写入消息;
步骤⑤:处理器2上的调度器根据消息编号,查找消息对应的处理器编号1,调用对应处理器核间通信消息发送函数通过核间通信接口发送消息编号;
步骤⑥:处理器1产生核间通信中断,核间中断通信入口地址进入核间通信调度器,通信调度器通过处理器编号调用相应通信接口底层驱动函数读取消息。然后根据消息编号,找到对应消息事件;
步骤⑦:核间通信调度器设置事件标志,读取关联任务状态,如果任务处于等待事件状态,则切换其状态为就绪态。
步骤⑧:调用内核中断退出函数退出中断,调用内核中断退出函数触发调度;
步骤⑨,内核调度器将等待该消息的任务1切换进入运行态;
步骤⑩:任务1检测与之相对应的事件状态标志,如果有效,查看根据消息指针和长度在共享内存中读取消息值,并清空事件标志。
对符号型消息而言,在消息的传递过程只执行步骤⑤~⑩,且在步骤⑥中读出消息内容写入事件消息指针指向的消息队列中。
符号型消息在编译时不需要指定地址段;消息传递的第二个字节是消息值;消息不在共享内存中保存,在各个核的私有内存中存储。
除此之外,异构多核处理器的核间消息收发函数不仅需要发送消息数据,还需判断发送到那个处理器核,消息的类型等,因此需另外在操作系统内核中编写发送和接收函数,这两个函数作为内核的一部分。
发送函数中设置参数“消息编号”。在该函数体中,根据消息编号从对应事件中取出处理器编号然后调用底层发送驱动接口函数。该发送驱动接口函数带1个参数:消息编号,在该接口函数中通过消息对应事件中的处理器核编号判断调用哪个通信接口的发送驱动函数,根据事件中消息指针和消息编号获取发送消息的值,然后调用通信接口发送驱动函数发送消息编号及数据。
接收函数中设置参数“消息编号”,在该函数体中,首先比较对应消息编号的事件是否有效,如果有效,根据消息指针读出消息值继续运行;如果无效,切换任务进入等待状态,调用调度函数进行任务切换。该函数代码集成到内核中。由于消息的接收是在通信调度器中进行的,因此定义一个统一的驱动接口接收函数来读取消息,在该函数中设置参数“处理器编号”。在该接口函数中,根据处理器编号判断调用那个通信接口的接收驱动函数,从对应的通信接口读出消息值。
以上是本发明对异构多核处理器的通信调度控制部分。
整个通信实现过程如下:
●首先,在不同的处理器核中定义消息的种类及消息的结构
在消息的定义文件中,创建对应的消息,数据型消息必须指定在共享内存的地址段中。每对处理器核使用的消息指定到该对处理器核的共享内存中,然后建立消息编号和地址的映射表;根据消息类型和个数创建对应的事件数组,初始化事件的标志、消息指针、任务指针、消息长度等。该文件在不同核中共同使用。
●其次,在消息发送端,任务调用核间通信消息发送函数发送消息。
该函数根据消息编号判断消息的类型,然后调用相应的接口驱动函数发送消息。对于符号型消息,需发送消息编号及消息内容。对于数据型消息发送消息编号。
●最后,用户在任务中调用核间通信接收函数读取消息
在接收端,在任务中调用核间通信接收函数,该函数首先查看对应消息事件是否有效,如果需要的消息还未到来,则切换该任务进入等待状态。如果消息已经到来,则根据事件消息指针及消息长度读取消息继续运行。
当消息到来时,通信调度器根据中断传递的处理器编号调用相应的接口函数读出消息,根据消息编号判断消息属性,如果是符号型消息,将消息内容写入对应事件消息指针指向的地址或消息队列中,置事件标志有效;如果是数据型消息,管理模块根据消息编号将置事件标志有效。然后检查事件中对应任务的状态是否运行,如果未运行,切换该任务的状态为就绪态。最后调用调度函数进行调度。
Claims (9)
1.一种异构多核处理器的核间任务通信及调度系统,每个处理器核中设置有核间事件管理器、核间通信调度器,硬件抽象层中设置有核间通信接口,其特征在于,每个处理器核中运行一个相同的调度系统,采用符号型消息和数据型消息来实现核间不同数据量的通信,核间事件管理器统一定义各个处理器核间通信的消息、事件、处理器核编号,建立核间消息、事件、任务的关联关系,核间通信调度器负责各核间通信数据的处理,利用核间通信接口和共享内存实现消息传递、消息的保存、消息的读取及任务调度操作。
2.根据权利要求1所述的异构多核处理器核间通信及调度控制系统,其特征在于,所述建立核间消息、事件、任务的关联关系具体包括,分别在各核中建立消息编号/地址映射表实现消息的识别,对所有处理器核中核间通信的消息进行统一定义、编号,在各自核中建立一个消息编号/地址映射表来实现地址和编号的转换。
3.根据权利要求1所述的异构多核处理器核间通信及调度控制系统,其特征在于,符号型消息只通过核间通信接口传输,数据型消息通过通信接口传输消息编号,消息内容直接在共享内存中操作。
4.根据权利要求1所述的异构多核处理器核间通信及调度控制系统,其特征在于,对所有处理器核进行统一编号,用于消息传递过程中对各个处理器核进行身份确认,根据核编号通过嵌入到调度器内核中的核间通信接口中断服务程序,处理核间通信及调度。
5.一种异构多核处理器的核间任务通信及调度方法,在每个处理器核中设置核间事件管理器、核间通信调度器,在硬件抽象层中设置核间通信接口,其特征在于,采用对称通信及调度方法,每个处理器核中运行一个相同的调度系统,采用符号型消息和数据型消息来实现核间不同数据量的通信,核间事件管理器统一定义各个处理器核间通信的消息、事件、处理器核编号,建立核间消息、事件、任务的关联关系,核间通信调度器负责各核间通信数据的处理,利用核间通信接口和共享内存实现消息传递、消息的保存、消息的读取及任务调度操作。
6.根据权利要求5所述的核间任务通信及调度方法,其特征在于,所述建立核间消息、事件、任务的关联关系具体包括,分别在各核中建立消息编号/地址映射表来实现消息的识别,对所有处理器核中核间通信的消息进行统一定义、编号,在各自核中建立一个消息编号/地址映射表来实现地址和编号的转换。
7.根据权利要求5所述的核间任务通信及调度方法,其特征在于,符号型消息只通过核间通信接口传输,数据型消息通过通信接口传输消息编号,消息内容直接在共享内存中操作。
8.根据权利要求5所述的核间任务通信及调度方法,其特征在于,对所有处理器核进行统一编号,用于消息传递过程中对各个处理器核进行身份确认,根据核编号通过嵌入到调度器内核中的核间通信接口中断服务程序,处理核间通信及调度。
9.根据权利要求6所述的核间任务通信及调度方法,其特征在于,所述地址和编号的转换具体包括,在发送端将地址转换成编号,在接收端将编号转换成地址。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008100702884A CN101354693B (zh) | 2008-09-11 | 2008-09-11 | 一种异构多核处理器的核间通信调度系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008100702884A CN101354693B (zh) | 2008-09-11 | 2008-09-11 | 一种异构多核处理器的核间通信调度系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101354693A CN101354693A (zh) | 2009-01-28 |
CN101354693B true CN101354693B (zh) | 2010-06-09 |
Family
ID=40307508
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008100702884A Expired - Fee Related CN101354693B (zh) | 2008-09-11 | 2008-09-11 | 一种异构多核处理器的核间通信调度系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101354693B (zh) |
Families Citing this family (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8826234B2 (en) * | 2009-12-23 | 2014-09-02 | Intel Corporation | Relational modeling for performance analysis of multi-core processors |
US8850404B2 (en) * | 2009-12-23 | 2014-09-30 | Intel Corporation | Relational modeling for performance analysis of multi-core processors using virtual tasks |
CN103176780B (zh) * | 2011-12-22 | 2016-03-30 | 中国科学院声学研究所 | 一种多网络接口绑定系统及方法 |
EP2899644A4 (en) * | 2012-07-17 | 2017-09-27 | Sanechips Technology Co., Ltd. | Device and method for inter-core communication in multi-core processor |
US9619282B2 (en) | 2012-08-21 | 2017-04-11 | Lenovo (Singapore) Pte. Ltd. | Task scheduling in big and little cores |
CN102929713A (zh) * | 2012-10-08 | 2013-02-13 | 清华大学 | 支持多操作系统并行的松散耦合异质多核处理系统 |
CN104426958B (zh) * | 2013-08-29 | 2018-03-16 | 华为技术有限公司 | 一种通信方法、装置及系统 |
CN103530183B (zh) * | 2013-10-24 | 2016-11-02 | 湖南大学 | 大规模异构计算系统中任务计算量具有随机性的调度方法 |
CN103995796A (zh) * | 2014-05-29 | 2014-08-20 | 河南中医学院 | 交响乐团式多核cpu多内存计算机系统 |
CN106852173B (zh) * | 2014-10-29 | 2020-02-21 | 华为技术有限公司 | 访存的方法、内存控制器和处理器核 |
CN105991413B (zh) * | 2015-02-13 | 2018-11-16 | 展讯通信(上海)有限公司 | 用户终端及其amp系统下消息邮箱故障的处理方法及装置 |
CN104899089A (zh) * | 2015-05-25 | 2015-09-09 | 常州北大众志网络计算机有限公司 | 一种面向异构多核体系的任务调度方法 |
CN104899385B (zh) * | 2015-06-16 | 2018-01-26 | 北京思朗科技有限责任公司 | 异构多核的SoC设计评估系统 |
CN105468448B (zh) * | 2015-11-24 | 2019-01-01 | 无锡江南计算技术研究所 | 一种面向异构众核环境的从核系统调用实现方法 |
CN105653377B (zh) * | 2015-12-23 | 2019-07-26 | 致象尔微电子科技(上海)有限公司 | 一种异构多核系统核间通讯方法及控制器 |
CN105893320B (zh) * | 2016-03-29 | 2019-08-06 | 浙江大学 | 一种面向多核处理器的远程任务函数调用方法 |
CN106020960B (zh) * | 2016-05-30 | 2020-02-18 | 北京奇艺世纪科技有限公司 | 一种调用方法及装置 |
DE102016211286A1 (de) | 2016-06-23 | 2017-12-28 | Siemens Aktiengesellschaft | Verfahren zum synchronisierten Betrieb von Mehrkernprozessoren |
CN106647474B (zh) * | 2016-12-06 | 2019-01-01 | 艾思玛新能源技术(扬中)有限公司 | 一种基于多核微控制器的光伏逆变器软件架构系统 |
CN106780842A (zh) * | 2017-01-11 | 2017-05-31 | 张军 | 一种基于多核异构处理器的智能行车预警系统原型 |
CN111258744A (zh) * | 2018-11-30 | 2020-06-09 | 中兴通讯股份有限公司 | 一种基于异构计算的任务处理方法及软硬件框架系统 |
CN110297661B (zh) * | 2019-05-21 | 2021-05-11 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 基于amp构架dsp操作系统的并行计算方法、系统及介质 |
CN110569211B (zh) * | 2019-09-02 | 2022-09-13 | 飞腾信息技术有限公司 | 片上系统内部通讯方法 |
CN111475202A (zh) * | 2020-03-31 | 2020-07-31 | 北京经纬恒润科技有限公司 | 基于异构多处理系统的核间通信方法及系统 |
CN113515483A (zh) * | 2020-04-10 | 2021-10-19 | 华为技术有限公司 | 一种数据传输方法及装置 |
CN112068970B (zh) * | 2020-08-10 | 2024-04-19 | 珠海全志科技股份有限公司 | 基于异构多核处理器的rpc实现方法及介质 |
CN111913822B (zh) * | 2020-08-28 | 2023-03-28 | 电子科技大学 | 一种基于amp架构的核间通信方式 |
CN112286860A (zh) * | 2020-11-18 | 2021-01-29 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 嵌入式操作系统确定性核间通信方法及系统 |
CN112799814B (zh) * | 2021-01-28 | 2021-07-27 | 中国科学院地质与地球物理研究所 | 一种双核地震烈度计及任务调度方法 |
CN113032166A (zh) | 2021-03-26 | 2021-06-25 | 黑芝麻智能科技(上海)有限公司 | 核间通信的方法、处理器、核间通信系统及计算机可读存储介质 |
CN113778706B (zh) * | 2021-08-18 | 2023-08-15 | 北京自动化控制设备研究所 | 一种基于amp架构的操作系统核间通信方法 |
CN113836209A (zh) * | 2021-09-02 | 2021-12-24 | 深圳市道通智能汽车有限公司 | 多核处理器的共享资源访问方法、处理器及多核系统 |
CN114416317B (zh) * | 2022-01-20 | 2022-12-02 | 科东(广州)软件科技有限公司 | 核间中断执行方法、处理方法及装置、设备和存储介质 |
CN117194308A (zh) * | 2022-05-30 | 2023-12-08 | 华为技术有限公司 | 一种多核处理器及相关核间通信方法 |
CN116578524B (zh) * | 2023-07-12 | 2023-12-15 | 宁德时代新能源科技股份有限公司 | 多核控制器、控制方法、车辆控制系统及可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101013388A (zh) * | 2007-01-26 | 2007-08-08 | 浙江大学 | 面向异构多核体系的进程调度方法 |
CN101132336A (zh) * | 2007-10-17 | 2008-02-27 | 中国人民解放军国防科学技术大学 | 异构多核处理器高速异步互连通信网络 |
-
2008
- 2008-09-11 CN CN2008100702884A patent/CN101354693B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101013388A (zh) * | 2007-01-26 | 2007-08-08 | 浙江大学 | 面向异构多核体系的进程调度方法 |
CN101132336A (zh) * | 2007-10-17 | 2008-02-27 | 中国人民解放军国防科学技术大学 | 异构多核处理器高速异步互连通信网络 |
Also Published As
Publication number | Publication date |
---|---|
CN101354693A (zh) | 2009-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101354693B (zh) | 一种异构多核处理器的核间通信调度系统及方法 | |
CN101859263B (zh) | 一种支持在线迁移的虚拟机间快速通信方法 | |
US8270299B2 (en) | Communicator-based token/buffer management for eager protocol support in collective communication operations | |
CN100464304C (zh) | 一种基于Linux操作系统实现零拷贝的装置和方法 | |
WO2002031672A2 (en) | Method and apparatus for interprocessor communication and peripheral sharing | |
US6904595B2 (en) | Priority in a portable thread environment | |
US20090271796A1 (en) | Information processing system and task execution control method | |
US20060156284A1 (en) | Architecture of Ticc-Ppde, a new paradigm for parallel programming | |
CN102375761A (zh) | 业务管理方法和装置、以及设备 | |
US20050060705A1 (en) | Optimizing critical section microblocks by controlling thread execution | |
US6748453B2 (en) | Distributed applications in a portable thread environment | |
CN101150487A (zh) | 一种零拷贝网络报文发送方法 | |
US7640549B2 (en) | System and method for efficiently exchanging data among processes | |
CN101150488A (zh) | 一种零拷贝网络报文接收方法 | |
US6961934B2 (en) | Portable thread environment | |
CN104978174B (zh) | 多操作系统中网卡之间的切换方法和系统 | |
WO2014110702A1 (zh) | 协同并发式消息总线、主动构件组装模型及构件拆分方法 | |
US9069592B2 (en) | Generic transport layer mechanism for firmware communication | |
US6938246B2 (en) | Diagnostic tool for a portable thread environment | |
EP2113841A1 (en) | Allocating resources in a multicore environment | |
CN105187519A (zh) | 一种基于AIO的socket传输系统 | |
CN202033745U (zh) | 基于星型互联架构的片上异构多核系统 | |
WO2014110701A1 (zh) | 独立主动构件和可运行主动构件组装模型及构件拆分方法 | |
CN101707653A (zh) | 一种单处理器智能移动终端及其实现方法 | |
US7320044B1 (en) | System, method, and computer program product for interrupt scheduling in processing communication |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100609 Termination date: 20130911 |