众核处理器及其核间通信的方法、主核和从核

阅读: 评论:0

著录项
  • CN201210441457.7
  • 20121106
  • CN102929834A
  • 20130213
  • 无锡江南计算技术研究所
  • 许国春;黄高阳;陈斐;殷红武
  • G06F15/167
  • G06F15/167

  • 江苏省无锡市滨湖区军东新村030号
  • 中国,CN,江苏(32)
  • 北京集佳知识产权代理有限公司
  • 骆苏华
摘要
一种众核处理器及其核间通信的方法、主核和从核,其中,所述众核处理器核间通信的方法包括:从核在对应的共享交互区的数据区装填消息,之后利用核间中断通知主核;所述主核在收到所述从核发送的核间中断后申请共享缓存空间,若申请共享缓存空间失败则申请对应所述从核的预留缓存空间;所述主核从所述共享交互区获取消息并保存到申请到的缓存空间,之后所述主核释放所述共享交互区;所述主核处理所述消息,在处理完所述消息后,释放所述申请到的缓存空间。本发明的众核处理器及其核间通信方法不会造成消息丢失,提供了可靠的核间通信机制。
权利要求

1.一种众核处理器核间通信的方法,其特征在于,包括:

从核在对应的共享交互区的数据区装填消息,之后利用核间中断通知主 核;

所述主核在收到所述从核发送的核间中断后申请共享缓存空间,若申请 共享缓存空间失败则申请对应所述从核的预留缓存空间;

所述主核从所述共享交互区获取消息并保存到申请到的缓存空间,之后 所述主核释放所述共享交互区;

所述主核处理所述消息,在处理完所述消息后,释放所述申请到的缓存 空间。

2.如权利要求1所述的众核处理器核间通信的方法,其特征在于,还包括: 若所述主核申请共享缓存空间失败,则所述主核在所述共享交互区中设置流 量控制标志。

3.如权利要求2所述的众核处理器核间通信的方法,其特征在于,还包括: 主核判断所述预留缓存空间是否被占用,在判断出所述预留缓存空间未被占 用后,清除所述共享交互区中的流量控制标志。

4.如权利要求3所述的众核处理器核间通信的方法,其特征在于,还包括: 所述从核在对应的共享交互区的数据区装填消息前,判断所述共享交互区中 是否存在所述流量控制标志,若是则等待所述主核清除流量控制标志后再在 所述共享交互区的数据区装填消息,若否则在所述共享交互区的数据区装填 消息。

5.如权利要求1所述的众核处理器核间通信的方法,其特征在于,所述预留 缓存空间由所述主核在系统初始化时分配给对应的从核。

6.一种众核处理器,其特征在于,包括主核、从核和共享交互区,所述主核 包括缓存队列、工作队列和控制单元,所述从核包括装填单元,所述共享交 互区包括数据区,其中:

所述共享交互区适于主核和从核之间的消息共享;

所述装填单元适于在对应的共享交互区的数据区装填消息,之后利用核 间中断通知所述主核;

所述缓存队列适于在收到所述从核发送的核间中断后申请共享缓存空 间,若申请共享缓存空间失败则申请对应所述从核的预留缓存空间;

所述控制单元适于从所述共享交互区获取消息并保存到所述缓存队列申 请到的缓存空间,之后释放所述共享交互区;

所述工作队列适于处理所述消息;

所述缓存队列还适于在所述工作队列处理完所述消息后,释放所述申请 到的缓存空间。

7.如权利要求6所述的众核处理器,其特征在于,所述主核还包括设置单元, 适于在所述缓存队列申请共享缓存空间失败后,在所述共享交互区中设置流 量控制标志。

8.如权利要求7所述的众核处理器,其特征在于,所述主核还包括清除单元, 适于判断所述预留缓存空间是否被占用,在判断出所述预留缓存空间未被占 用后,清除所述共享交互区中的流量控制标志。

9.如权利要求8所述的众核处理器,其特征在于,所述从核还包括判断单元, 适于判断所述共享交互区中是否存在所述流量控制标志;所述装填单元适于 在所述判断单元的判断结果为是时等待所述流量控制标志清除后再在所述共 享交互区的数据区装填消息,在所述判断单元的判断结果为否时在所述共享 交互区的数据区装填消息。

10.如权利要求6所述的众核处理器,其特征在于,所述主核还包括分配单元, 适于在系统初始化时将所述预留缓存空间分配给对应的从核。

11.如权利要求6所述的众核处理器,其特征在于,所述缓存队列具有申请接 口和释放接口。

12.一种主核,其特征在于,包括缓存队列、工作队列和控制单元,其中,

所述缓存队列适于在收到从核发送的核间中断后申请共享缓存空间,若 申请共享缓存空间失败则申请对应所述从核的预留缓存空间;

所述控制单元适于从对应所述从核的共享交互区获取消息并保存到所述 缓存队列申请到的缓存空间,之后释放所述共享交互区;

所述工作队列适于处理所述消息;

所述缓存队列还适于在所述工作队列处理完所述消息后,释放所述申请 到的缓存空间。

13.如权利要求12所述的主核,其特征在于,还包括设置单元,适于在所述 缓存队列申请共享缓存空间失败后,在所述共享交互区中设置流量控制标志。

14.如权利要求13所述的主核,其特征在于,还包括清除单元,适于在所述 工作队列处理完所述消息后,判断出所述预留缓存空间未被占用后,清除所 述共享交互区中的流量控制标志。

15.如权利要求12所述的主核,其特征在于,还包括分配单元,适于在系统 初始化时将所述预留缓存空间分配给对应的从核。

16.如权利要求12所述的主核,其特征在于,所述缓存队列具有申请接口和 释放接口。

17.一种与权利要求14所述的主核进行核间通信的从核,其特征在于,包括 判断单元和装填单元,其中,

所述判断单元适于判断所述共享交互区中是否存在所述流量控制标志;

所述装填单元适于在所述判断单元的判断结果为是时等待所述流量控制 标志清除后再在所述共享交互区的数据区装填消息,在所述判断单元的判断 结果为否时在所述共享交互区的数据区装填消息,在装填消息后利用利用核 间中断通知所述主核。

说明书
技术领域

本发明涉及处理器领域,特别涉及众核处理器及其核间通信的方法、主 核和从核。

随着半导体技术的发展,传统的单核处理器暴露出许许多多的局限,体 系结构设计者为了在处理器性能进一步提升的同时降低功耗和散热,提出了 多核处理器(multi‑core processor)和众核处理器(many‑core processor)。多 核处理器可以分为两种:同构多核处理器和异构多核处理器。同构多核处理 器内的处理器核类型相同,在多核处理器中处于对等的地位;异构多核处理 器内含有不同类型的处理器核,并且不同类型的处理器核在多核处理器内部 担当不同角。众核处理器与多核处理器相比,核心数量更多,而且众核处 理器通常都是异构的。在使用众核处理器时,需要选择某个或者某几个核对 其他核进行运行控制和空间管理,从而构成主从式的架构,所述的管理核为 主核,被管理的核为从核。

在众核处理器中,核间的通信非常重要,一个高效的核间通信可以大大 提高众核处理器的可用性和稳定性。如CELL处理器芯片这样的异构众核, 大量的协同处理单元(SPE,Synergistic Processing Elements)事务需要通过 Power主处理器单元(PPE,Power Processor Element)来处理,就需要设计一 种可靠的核间通信机制,来保证系统高效稳定的运行。但目前还没有针对众 核处理器的核间通信的技术。

现有技术中,面向多核处理器的核间通信机制的实现方法有多种,其中 包括:1)基于核间中断与共享内存的方法;2)基于硬件寄存器的核间通信; 3)基于共享内存的核间通信。但由于在众核处理器中,从核的数量众多,通 常多于64个,在从核数量远远多于主核的环境下,多核处理器的核间通信机 制并不适用于众核处理器的应用场景。

此外,在众核处理器中,由于从核数量众多,主核的处理能力有可能成 为核间通信的瓶颈,在主核和从核的通信过程中,主核的消息处理能力达到 上限就可能会出现系统程序无法正常响应的状况。例如,当众多从核同时向 主核发送事务请求时,如果主核不对核间通信进行流量控制,就会导致主核 负荷太重,无法响应正常的系统程序,进入“假死”状态。为了避免上述这 种状况的产生,就需要提出一个安全的针对众核处理器核间通信的流量控制 方法,以最大限度的满足从核需求和系统的稳定。

其他有关核间通信的方法还可以参考公开号为CN101354693的中国发明 专利申请,其公开了一种异构多核处理器的核间通信调度系统及方法。

本发明技术方案解决的问题是现有技术众核处理器在从核产生大量事务 请求时造成消息丢失,主核无法响应从核请求。

为解决上述问题,本发明技术方案提供了一种众核处理器核间通信的方 法,包括:从核在对应的共享交互区的数据区装填消息,之后利用核间中断 通知主核;所述主核在收到所述从核发送的核间中断后申请共享缓存空间, 若申请共享缓存空间失败则申请对应所述从核的预留缓存空间;所述主核从 所述共享交互区获取消息并保存到申请到的缓存空间,之后所述主核释放所 述共享交互区;所述主核处理所述消息,在处理完所述消息后,释放所述申 请到的缓存空间。

可选的,还包括:若所述主核申请共享缓存空间失败,则所述主核在所 述共享交互区中设置流量控制标志。

可选的,还包括:主核判断所述预留缓存空间是否被占用,在判断出所 述预留缓存空间未被占用后,清除所述共享交互区中的流量控制标志。

可选的,还包括:所述从核在对应的共享交互区的数据区装填消息前, 判断所述共享交互区中是否存在所述流量控制标志,若是则等待所述主核清 除流量控制标志后再在所述共享交互区的数据区装填消息,若否则在所述共 享交互区的数据区装填消息。

可选的,所述预留缓存空间由所述主核在系统初始化时分配给对应的从 核。

相应的,本发明技术方案还提供了一种众核处理器,包括主核、从核和 共享交互区,所述主核包括缓存队列、工作队列和控制单元,所述从核包括 装填单元,所述共享交互区包括数据区,其中:所述共享交互区适于主核和 从核之间的消息共享;所述装填单元适于在对应的共享交互区的数据区装填 消息,之后利用核间中断通知所述主核;所述缓存队列适于在收到所述从核 发送的核间中断后申请共享缓存空间,若申请共享缓存空间失败则申请对应 所述从核的预留缓存空间;所述控制单元适于从所述共享交互区获取消息并 保存到所述缓存队列申请到的缓存空间,之后释放所述共享交互区;所述工 作队列适于处理所述消息;所述缓存队列还适于在所述工作队列处理完所述 消息后,释放所述申请到的缓存空间。

可选的,所述主核还包括设置单元,适于在所述缓存队列申请共享缓存 空间失败后,在所述共享交互区中设置流量控制标志。

可选的,所述主核还包括清除单元,适于判断所述预留缓存空间是否被 占用,在判断出所述预留缓存空间未被占用后,清除所述共享交互区中的流 量控制标志。

可选的,所述从核还包括判断单元,适于判断所述共享交互区中是否存 在所述流量控制标志;所述装填单元适于在所述判断单元的判断结果为是时 等待所述流量控制标志清除后再在所述共享交互区的数据区装填消息,在所 述判断单元的判断结果为否时在所述共享交互区的数据区装填消息。

可选的,所述主核还包括分配单元,适于在系统初始化时将所述预留缓 存空间分配给对应的从核。

可选的,所述缓存队列具有申请接口和释放接口。

相应的,本发明技术方案还提供了一种主核,包括缓存队列、工作队列 和控制单元,其中,所述缓存队列适于在收到从核发送的核间中断后申请共 享缓存空间,若申请共享缓存空间失败则申请对应所述从核的预留缓存空间; 所述控制单元适于从对应所述从核的共享交互区获取消息并保存到所述缓存 队列申请到的缓存空间,之后释放所述共享交互区;所述工作队列适于处理 所述消息;所述缓存队列还适于在所述工作队列处理完所述消息后,释放所 述申请到的缓存空间。

可选的,还包括设置单元,适于在所述缓存队列申请共享缓存空间失败 后,在所述共享交互区中设置流量控制标志。

可选的,还包括清除单元,适于在所述工作队列处理完所述消息后,判 断出所述预留缓存空间未被占用后,清除所述共享交互区中的流量控制标志。

可选的,还包括分配单元,适于在系统初始化时将所述预留缓存空间分 配给对应的从核。

可选的,所述缓存队列具有申请接口和释放接口。

相应的,本发明技术方案还提供了一种与上述的主核进行核间通信的从 核,包括判断单元和装填单元,其中,所述判断单元适于判断所述共享交互 区中是否存在所述流量控制标志;所述装填单元适于在所述判断单元的判断 结果为是时等待所述流量控制标志清除后再在所述共享交互区的数据区装填 消息,在所述判断单元的判断结果为否时在所述共享交互区的数据区装填消 息,在装填消息后利用利用核间中断通知所述主核。

与现有技术相比,本发明技术方案提出了一种针对众核处理器的核间通 信方法。上述技术方案中主核申请保存消息的缓存空间时,主核首先申请使 用共享缓存空间,申请使用共享缓存空间会产生申请成功和申请失败两种情 况,当申请成功时,表示此时从核产生的消息较少,共享缓存空间还有余, 可以将从核的消息存入共享缓存空间,等待处理;当申请失败时,表示此时 从核产生的消息较多,将共享缓存空间用尽,主核需要申请预留缓存空间, 预留缓存空间是主核为各个从核预先保留的缓存空间,申请必定成功,主核 将从核的消息存入预留缓存空间,等待主核处理,因此,保证了从核发送到 主核的消息不会丢失,主核可以响应从核的请求。

进一步的,本发明技术方案提出的众核处理器的核间通信方法,具有面 对从核的大量事务请求进行流量控制的功能。上述技术方案中,当主核申请 使用共享缓存空间失败时,表示共享缓存空间已经用尽,主核的消息处理能 力已经达到了上限,因此需要进行消息的流量控制,此时主核会在共享交互 区中设置流量控制标志;若从核要向主核发送消息首先会判断共享交互区中 是否存在流量控制标志,当存在流量控制标志时,从核必须等待主核清除流 量控制标志后才能向主核发送消息,这就从源头上控制了消息的来源,保证 消息传递过程中不会出现拥塞,实现了可靠的具有流量控制功能的核间通信 机制。

图1是本发明技术方案的众核处理器核间通信方法的流程示意图;

图2是本发明技术方案的众核处理器的结构示意图;

图3是本发明实施例的众核处理器核间通信方法的流程示意图;

图4是本发明实施例的众核处理器的结构示意图。

为使本发明技术方案的上述目的、特征和优点能够更为明显易懂,下面 结合附图和实施例对本发明的具体实施方式做详细的说明。

现有技术中,没有针对众核处理器的核间通信的方法,而且多核处理器 的核间通信机制也不适用于众核处理器的应用场景。但在众核处理器中,由 于大量的从核事务请求需要主核来处理,需要一种核间通信方法,来保证系 统高效稳定的运行,防止从核发送事务请求的消息丢失。

请参考图1,本发明技术方案提供了一种众核处理器核间通信的方法,所 述众核处理器核间通信的方法包括:

步骤S101,从核在对应的共享交互区的数据区装填消息,之后利用核间 中断通知主核。

步骤S102,所述主核在收到所述从核发送的核间中断后申请共享缓存空 间,若申请共享缓存空间失败则申请对应所述从核的预留缓存空间。

步骤S103,所述主核从所述共享交互区获取消息并保存到申请到的缓存 空间,之后所述主核释放所述共享交互区。

步骤S104,所述主核处理所述消息,在处理完所述消息后,释放所述申 请到的缓存空间。

上述众核处理器的核间通信方法中,从核向主核发送事务请求,将消息 装填在对应的共享交互区,主核申请使用共享缓存空间,当申请失败时,主 核申请预留缓存空间,主核将从核的消息存入申请到的缓存空间,等待主核 处理。由于主核可以申请使用共享缓存空间或者预留缓存空间,而预留缓存 空间为系统为各个从核预先保留的缓存空间,申请必定成功,所以本技术方 案确保了从核发送到主核的消息不会丢失,提供了一种可靠的核间通信方法。

对应的,本发明技术方案提供一种众核处理器,请参考图2,包括:主核 201、从核203和共享交互区202,所述主核201包括缓存队列、工作队列和 控制单元(未示出),所述从核203包括装填单元(未示出),所述共享交互 区202包括数据区(未示出),所述主核201的数量至少为一个,所述从核203 的数量为多个,所述共享交互区202的数量为多个,且所述共享交互区202 与所述从核203一一对应。所述共享交互区202用于主核201和从核203之 间的消息共享;所述装填单元用于在对应的共享交互区202的数据区装填消 息,之后利用核间中断通知所述主核201;所述缓存队列用于在收到所述从核 203发送的核间中断后申请共享缓存空间,若申请共享缓存空间失败则申请对 应所述从核203的预留缓存空间;所述控制单元用于从所述共享交互区202 获取消息并保存到所述缓存队列申请到的缓存空间,之后释放所述共享交互 区202;所述工作队列用于处理所述消息;所述缓存队列还用于在所述工作队 列处理完所述消息后,释放所述申请到的缓存空间。

进一步的,在众核处理器中,由于从核的数量远远多于主核,当众多从 核同时向主核发送事务请求时,如果主核不对核间通信进行流量控制,就会 导致主核负担太重,无法响应正常的系统程序。本发明的众核处理器核间通 信的方法还可以通过流量控制标志实现流量控制。

下面结合实施例,对本发明技术方案的众核处理器的核间通信方法进行 详细说明。请参考图3所示的本实施例的众核处理器的核间通信方法的流程 示意图,所述核间通信方法包括:

步骤S301,从核向主核发送事务请求前,从核先判断对应的共享交互区 是否存在流量控制标志:若存在流量控制标志,则重复执行步骤S301,也就 是等待共享交互区的流量控制标志清除;若不存在流量控制标志,则执行步 骤S302。

本实施例中,所述共享交互区包括数据区和标志区,其中,数据区供对 应的从核装填消息,标志区用于储存流量控制标志,所述共享交互区存在流 量控制标志是指标志区中的流量控制标志被设置(例如值为1),所述共享交 互区不存在流量控制标志是指标志区中的流量控制标志被清除(例如值为0)。

步骤S302,从核装填消息到共享交互区的数据区,并利用核间中断通知 主核。

步骤S303,主核收到从核发送的核间中断后申请共享缓存空间,并判断 申请共享缓存空间是否成功:若申请共享缓存空间成功,则执行步骤S304; 若申请共享缓存空间失败,则执行步骤S305。

步骤S304,主核从与发送核间中断的从核对应的共享交互区中获取消息 数据,保存到申请到的共享缓存空间,并释放所述的共享交互区,然后执行 步骤S307。

步骤S305,主核申请与发送核间中断的从核对应的预留缓存空间,所述 的预留缓存空间为系统为每个从核预先保留的缓存空间,例如,可以是在系 统初始化时主核预留给每个从核的缓存空间,所以申请必定成功;并且主核 在与发送核间中断的从核对应的共享交互区的标志区设置流量控制标志。

步骤S306,主核从与发送核间中断的从核对应的共享交互区中获取消息 数据,保存到申请到的预留缓存空间,并释放所述的共享交互区,然后执行 步骤S307。

步骤S307,主核启动工作队列处理消息,工作队列处理完所述消息后, 释放缓存空间。

具体地,若消息保存在共享缓存空间则释放所述共享缓存空间,若消息 保存在预留缓存空间则释放所述预留缓存空间。

步骤S308,主核判断与发送核间中断的从核对应的预留缓存空间是否被 占用,即所述预留缓存空间中是否存有未处理完的消息:若所述预留缓存空 间被占用,则重复执行S308;若所述预留缓存空间未被占用,则执行S309。

在工作队列处理消息的过程中,主核可以判断与发送核间中断的从核对 应的预留缓存空间是否被占用,若所处理的消息保存在共享缓存空间,则该 预留缓存空间是未被占用的;若所处理的消息保存在预留缓存空间,则该预 留缓存空间是被占用的,直至工作队列处理完消息,该预留缓存空间被释放 后,主核会判断出该预留缓存空间是未被占用的。

步骤S309,主核清除与发送核间中断的从核对应的共享交互区的流量控 制标志。

上述实施例中,所述众核处理器的核间通信方法,利用主核对共享缓存 空间和预留缓存空间的申请和释放,和主核在对应从核的共享交互区设置和 清除流量控制标志共同实现主核和从核之间核间通信的流量控制。

主核在申请共享缓存空间失败后,申请预留缓存空间,并会在对应从核 的共享交互区设置流量控制标志,表示主核的消息处理能力已经达到了上限。 所述从核在对应的共享交互区的数据区装填消息前,会判断所述共享交互区 中是否存在所述流量控制标志:若是,则等待所述主核清除流量控制标志后 再在所述共享交互区的数据区装填消息;若否,则在所述共享交互区的数据 区装填消息。这就从源头上控制了从核消息的产生。当主核处理完所述消息 后,会判断所述预留缓存空间是否被占用,若所述预留缓存空间未被占用, 则表示还没有达到主核通信流量的上限,可以继续接收消息,则清除所述共 享交互区中的流量控制标志,若所述预留缓存空间仍然被占用,则保留所述 流量控制标志,等待对应的预留缓存空间在消息处理完成后被释放。通过以 上设置和清除共享交互区的流量控制标志和判断预留缓存空间是否被占用的 策略,就实现了对核间通信进行流量控制的目的。

对应的,请参考图4,图4为本发明实施例的众核处理器的结构示意图, 需要说明的是,图中仅示出主核与一个从核及其对应的共享交互区的连接关 系。所述众核处理器包括:主核401,共享交互区402和从核403。所述主核 401和从核403为异构。所述主核401的数量至少为一个,所述主核401一般 为通用的处理器核心,其指令集为完整指令集,包括相关的控制指令、运算 指令等,可以选自ARM,MIPS、X86或PowerPC中的一种,因此具有较高 的通用性。所述从核403的数量为多个,例如所述从核403的数量为64个、 128个或者256个等等。所述从核403为指令集和微结构经过简化的处理器核 心,但其结构是针对运算指令进行过专门优化的,使其可以较高效的执行图 形处理或数字信号处理(DSP,Digital Signal Process)等计算密集型任务,提 高了所述运算任务的执行效率,进而提高了整个众核处理器的性能。所述共 享交互区402的数量为多个,且所述共享交互区402与所述从核403一一对 应,所述共享交互区402对于各个从核来说只有一块,但由于主核401需要 与各个从核通信,所以对于主核401来说共享交互区402有多个。所述共享 交互区402为集成在众核处理器内的片内存储器,如SRAM等,其存储器空 间与片外存储器相比较小,用于主核401和从核403之间的消息共享。

所述主核401包括缓存队列401a、工作队列401b、控制单元401c、设置 单元401d、清除单元401e和分配单元401f;所述共享交互区402包括数据区 402a和标志区402b;所述从核403包括装填单元403a和判断单元403b。

所述缓存队列401a用于在收到从核403发送的核间中断后申请共享缓存 空间,若申请共享缓存空间失败则申请对应所述从核的预留缓存空间,所述 预留缓存空间为系统为每个从核预先保留的缓存空间,例如,可以是在系统 初始化时主核401预留给每个从核403的缓存空间,所以申请必定成功。所 述预留缓存空间通过主核401的分配单元401f在系统初始化时分配,所述预 留缓存空间与从核403一一对应,且为所对应的从核403所独享。

本实施例中,所述的缓存队列401a属于整个众核处理器核间通信机制中 的一个子模块,该模块主要用于管理主核缓存空间,提供有申请接口和释放 接口,其中申请接口可以设置普通申请方式和强制申请方式的标志,该标志 会随着主核401调用申请接口而传递到该缓存队列内,所述的普通申请方式 申请共享缓存空间,所述的强制申请方式申请预留缓存空间。在主核401收 到从核403发送的核间中断后,主核401调用缓存队列401a的申请接口申请 缓存空间,此时缓存队列401a的申请接口设置普通申请方式的标志,申请共 享缓存空间,若申请共享缓存空间成功,表示共享缓存空间还有余,则主核 401从共享交互区402的数据区402a中获取消息数据,保存到申请到的共享 缓存空间中;若申请共享缓存空间失败,则表示共享缓存空间已经用完,但 为了保证从核403装填在共享交互区402的数据区402a中的消息不会丢失, 此时主核401会申请使用系统初始化时预留给各个从核403的较小的预留缓 存空间,此时,缓存队列401a的申请接口设置强制申请方式的标志,随着主 核调用缓存队列的申请接口而传递到缓存队列中,由于所述的预留缓存空间 与各个从核403一一对应,且为所对应的从核所独享,所以申请必定成功, 在申请预留缓存空间成功后,主核401从共享交互区402的数据区402a中获 取消息数据,保存到申请到的预留缓存空间中。所述缓存队列401a具有释放 接口,在工作队列401b处理完所述消息后,主核401会调用缓存队列401a 的释放接口,该接口主要就是回收缓存区,释放所述申请到的缓存空间。

所述工作队列401b在控制单元401c从共享交互区402获取消息并保存 到所述缓存队列401a申请到的缓存空间后,处理所述消息。

所述控制单元401c与所述缓存队列401a相配合,在缓存队列401a申请 到用于保存消息的缓存空间后,用于从共享交互区402的数据区402a获取消 息并保存到所述缓存队列401a申请到的缓存空间,并释放所述共享交互区 402。

所述设置单元401d用于在所述缓存队列401a申请共享缓存空间失败后, 在所述共享交互区402的标志区402b中设置流量控制标志。当所述缓存队列 401a申请共享缓存空间失败时,表示共享缓存空间已经用完,主核401的消 息处理能力已经达到了上限,需要控制从核403消息的产生,因此在共享交 互区402的标志区402b设置流量控制标志,同时配合从核403发送消息时判 断流量控制标志的策略,从而控制从核403消息的发送、达到防止主核401 负担太重的目的。

所述清除单元401e用于在判断出所述预留缓存空间未被占用后,清除所 述共享交互区402中的流量控制标志。所述的清除单元401e是众核处理器核 间通信机制中的一个模块,判断所述预留缓存空间是否被占用:若所述预留 缓存空间已经被释放,表示主核401处理消息的负担减轻,则清除所述共享 交互区402中的流量控制标志,当与此共享交互区402相对应的从核403产 生消息时,由于从核403会首先判断所述共享交互区402的流量控制标志, 当流量控制标志已经被清除时,从核403就可以向主核401发送消息;若所 述预留缓存空间仍然被占用,则说明主核401的处理能力依然处于上限,所 述共享交互区402的流量控制标志继续保持,当与所述共享交互区402相对 应的从核403产生消息时,需要继续等待,不能向主核401发送。

所述装填单元403a用于在对应的共享交互区402的数据区402a装填消 息,之后利用核间中断通知主核401。所述核间中断是硬件提供的一种事件机 制,对于主核401来说属于异步事件,产生的方式与硬件实现的具体方式有 关,例如可以通过从核写通道或者写硬件的IO寄存器来产生核间中断信号。 装填单元403a通知主核401主要就是利用主从间的核间中断实现的,由硬件 保证可靠传输,当主核401收到装填单元403a发送的核间中断后,进入这个 中断相应的处理流程。

在本实施例中,所述核间中断是当从核403的装填单元403a在对应的共 享交互区402的数据区402a中装填消息之后,利用硬件提供的核间中断机制, 通过从核写通道产生一个核间中断,通知主核401消息已经装填入共享交互 区402,等待主核401进入对该消息的处理流程。

所述判断单元403b用于判断所述共享交互区402中是否存在流量控制标 志。当所述判断单元403b的判断结果为是时,表明主核401的消息处理能力 已经达到了上限,而且共享缓存空间已经用尽,与该从核403相对应的预留 缓存空间也被占用,主核401暂时不能处理该从核403发送的消息,所以, 此时所述从核403的装填单元403a等待主核401清除所述流量控制标志后才 能在所述共享交互区402的数据区402a装填消息;当所述判断单元403b的 判断结果为否时,表明所述从核403所对应的预留缓存空间未被占用,主核 401还可以接受从核403发送的消息,所以,此时所述装填单元403b在该从 核403对应的共享交互区402的数据区402a装填消息,之后利用核间中断通 知所述主核401。

所述共享交互区402用于主核401和从核403之间的消息共享,所述共 享交互区402包括数据区402a。所述数据区402a作为主核401和从核403之 间消息的暂存区,在从核403产生消息并通过判断单元403b判断出所述共享 交互区402的标志区402b不存在流量控制标志时,装填单元403a在共享交 互区的数据区402a填装消息,之后利用核间中断通知所述主核401;主核401 在收到所述从核403发送的核间中断后,所述缓存队列401a申请共享缓存空 间或者预留缓存空间,申请成功后,缓存队列401a获取共享交互区的数据区 402a中的消息存入缓存空间,等待处理。

所述共享交互区402的标志区402b中的流量控制标志是由主核401设置 和清除的。在本实施例中,标志区402b可以保存一个比特位的标志位,当需 要在标志区402b设置流量控制标志时,将此标志位置1,当需要清除标志区 402b的流量控制标志时,将此标志位置0。设置流量控制标志的时机由缓存 队列401a申请共享缓存空间成功与否确定,清除流量控制标志的时机由缓存 空间释放后判断与所述从核403对应的预留缓存空间是否被占用确定。当主 核401接收到从核403发送的核间中断后,缓存队列401a申请用于保存消息 的共享缓存空间,当申请失败时,表示共享缓存空间已经用完,主核401的 消息处理能力已经达到了上限,主核401感觉到了通信压力,需要控制从核 403消息的产生,在与所述从核403相对应的共享交互区的标志区402b设置 流量控制标志,迫使从核403暂停消息发送,从而从源头上减少主核401和 从核403之间的通信流量。当所述工作队列401b处理完所述消息后,会判断 所述预留缓存空间是否被占用,若所述预留缓存空间未被占用,则表示主核 401处理消息的负担减轻,还没有达到主核401通信流量的上限,可以继续接 收消息,则清除所述标志区402b中的流量控制标志,当与此共享交互区402 相对应的从核403产生消息时,由于从核403会首先判断所述标志区402b的 流量控制标志,流量控制标志已经被清除时,从核403就可以向主核401发 送消息。

本发明虽然已以较佳实施例公开如上,但其并不是用来限定本发明,任 何本领域技术人员在不脱离本发明的精神和范围内,都可以利用上述揭示的 方法和技术对本发明技术方案做出可能的变动和修改,因此,凡是未脱离本 发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单 修改、等同变化及修饰,均属于本发明技术方案的保护范围。

本文发布于:2023-04-13 14:15:40,感谢您对本站的认可!

本文链接:https://patent.en369.cn/patent/3/86060.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图