会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~
首页 / 专利库 / 电脑零配件 / 多核处理器 / 一种异构多核处理器的核间通信调度系统及方法

一种异构多核处理器的核间通信调度系统及方法

阅读:285发布:2021-02-27

IPRDB可以提供一种异构多核处理器的核间通信调度系统及方法专利检索,专利查询,专利分析的服务。并且一种基于异构多核处理器的核间通信与调度系统及方法,涉及计算机领域。根据异构多核处理器的特点采用对称通信及调度的方法设计了一种应用于异构多核处理器核间任务通信及调度系统,通过核间事件管理器统一定义各个核间通信的消息、事件,建立核间消息、事件、任务之间的关联关系,通过核间通信调度器处理来自通信接口和共享内存的核间消息数据、设置事件、触发任务调度等操作。该发明从通信和调度两方面解决了异构多核处理器核间通信不同类型的消息通信效率及任务调度问题,解决了主从式调度方法带来的复杂性问题。,下面是一种异构多核处理器的核间通信调度系统及方法专利的具体信息内容。

1、一种异构多核处理器的核间任务通信及调度系统,每个处理器核中设 置有核间事件管理器、核间通信调度器,硬件抽象层中设置有核间通信接口, 其特征在于,每个处理器核中运行一个相同的调度系统,采用符号型消息和 数据型消息来实现核间不同数据量的通信,核间事件管理器统一定义各个处 理器核间通信的消息、事件、处理器核编号,建立核间消息、事件、任务的 关联关系,核间通信调度器负责各核间通信数据的处理,利用核间通信接口 和共享内存实现消息传递、消息的保存、消息的读取及任务调度等操作。

2、根据权利要求1所述的异构多核处理器核间通信及调度控制系统,其 特征在于,所述建立核间消息、事件、任务的关联关系具体包括,分别在各 核中建立消息编号/地址映射表实现消息的识别,对所有处理器核中核间通信 的消息进行统一定义、编号,在各自核中建立一个消息编号/地址映射表来实 现地址和编号的转换。

3、根据权利要求1所述的异构多核处理器核间通信及调度控制系统,其 特征在于,符号型消息只通过核间通信接口传输,数据型消息通过通信接口 传输消息编号,消息内容直接在共享内存中操作。

4、根据权利要求1所述的异构多核处理器核间通信及调度控制系统,其 特征在于,对所有处理器核进行统一编号,用于消息传递过程中对各个处理 器核进行身份确认,根据核编号通过嵌入到调度器内核中的核间通信接口中 断服务程序,处理核间通信及调度。

5、一种异构多核处理器的核间任务通信及调度方法,在每个处理器核中 设置核间事件管理器、核间通信调度器,在硬件抽象层中设置核间通信接口, 其特征在于,采用对称通信及调度方法,每个处理器核中运行一个相同的调 度系统,采用符号型消息和数据型消息来实现核间不同数据量的通信,核间 事件管理器统一定义各个处理器核间通信的消息、事件、处理器核编号,建 立核间消息、事件、任务的关联关系,核间通信调度器负责各核间通信数据 的处理,利用核间通信接口和共享内存实现消息传递、消息的保存、消息的 读取及任务调度等操作。

6、根据权利要求5所述的核间任务通信及调度方法,其特征在于,所述 建立核间消息、事件、任务的关联关系具体包括,分别在各核中建立消息编 号/地址映射表来实现消息的识别,对所有处理器核中核间通信的消息进行统 一定义、编号,在各自核中建立一个消息编号/地址映射表来实现地址和编号 的转换。

7、根据权利要求5所述的核间任务通信及调度方法,其特征在于,符号 型消息只通过核间通信接口传输,数据型消息通过通信接口传输消息编号, 消息内容直接在共享内存中操作。

8、根据权利要求5所述的核间任务通信及调度方法,其特征在于,对所 有处理器核进行统一编号,用于消息传递过程中对各个处理器核进行身份确 认,根据核编号通过嵌入到调度器内核中的核间通信接口中断服务程序,处 理核间通信及调度。

9、根据权利要求6所述的核间任务通信及调度方法,其特征在于,所述 地址和编号的转换具体包括,在发送端将地址转换成编号,在接收端将编号 转换成地址。

说明书全文

技术领域

本发明涉及计算机领域,具体涉及异构多核处理器核间的通信及调度控 制技术。

背景技术

当前多核处理器主要有两种结构,一种是对称同构多核处理器,这种处 理器中各个核具有相同的处理器结构,共享内存和外设,主要用于通用计算 机领域。一种是异构多核处理器,他们具有不同结构的处理器内核,有各自 的内存空间和外设,每个处理器核具有自己的系统时钟频率,通过处理器通 信接口和部分共享内存等进行通信,这种处理器主要用于嵌入式设备领域。 根据处理器的结构,在多核处理器上的调度控制系统大体分成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个参数:消息编号,在该接口函数中通过消息对应事件中的处理器核 编号判断调用哪个通信接口的发送驱动函数,根据事件中消息指针和消息编 号获取发送消息的值,然后调用通信接口发送驱动函数发送消息编号及数据。
接收函数中设置参数“消息编号”,在该函数体中,首先比较对应消息编 号的事件是否有效,如果有效,根据消息指针读出消息值继续运行;如果无 效,切换任务进入等待状态,调用调度函数进行任务切换。该函数代码集成 到内核中。由于消息的接收是在通信调度器中进行的,因此定义一个统一的 驱动接口接收函数来读取消息,在该函数中设置参数“处理器编号”。在该接 口函数中,根据处理器编号判断调用那个通信接口的接收驱动函数,从对应 的通信接口读出消息值。
以上是本发明对异构多核处理器的通信调度控制部分。
整个通信实现过程如下:
·首先,在不同的处理器核中定义消息的种类及消息的结构
在消息的定义文件中,创建对应的消息,数据型消息必须指定在共享内 存的地址段中。每对处理器核使用的消息指定到该对处理器核的共享内存中, 然后建立消息编号和地址的映射表;根据消息类型和个数创建对应的事件数 组,初始化事件的标志、消息指针、任务指针、消息长度等。该文件在不同 核中共同使用。
·其次,在消息发送端,任务调用核间通信消息发送函数发送消息。
该函数根据消息编号判断消息的类型,然后调用相应的接口驱动函数发 送消息。对于符号型消息,需发送消息编号及消息内容。对于数据型消息发 送消息编号。
·最后,用户在任务中调用核间通信接收函数读取消息
在接收端,在任务中调用核间通信接收函数,该函数首先查看对应消息 事件是否有效,如果需要的消息还未到来,则切换该任务进入等待状态。如 果消息已经到来,则根据事件消息指针及消息长度读取消息继续运行。
当消息到来时,通信调度器根据中断传递的处理器编号调用相应的接口 函数读出消息,根据消息编号判断消息属性,如果是符号型消息,将消息内 容写入对应事件消息指针指向的地址或消息队列中,置事件标志有效;如果 是数据型消息,管理模块根据消息编号将置事件标志有效。然后检查事件中 对应任务的状态是否运行,如果未运行,切换该任务的状态为就绪态。最后 调用调度函数进行调度。
高效检索全球专利

IPRDB是专利检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,专利查询、专利分析

电话:13651749426

侵权分析

IPRDB的侵权分析产品是IPRDB结合多位一线专利维权律师和专利侵权分析师的智慧,开发出来的一款特色产品,也是市面上唯一一款帮助企业研发人员、科研工作者、专利律师、专利分析师快速定位侵权分析的产品,极大的减少了用户重复工作量,提升工作效率,降低无效或侵权分析的准入门槛。

立即试用