一种多核处理器的核间通信方法及装置制造方法及图纸

技术编号:13972219 阅读:62 留言:0更新日期:2016-11-10 22:14
本发明专利技术涉及通信技术领域,尤其涉及一种多核处理器的核间通信方法及装置,用以解决现有技术中存在的CPU处理任务的能力及资源利用率较低的问题;本发明专利技术实施例提供的方法包括:发送核读取接收核的消息接收队列尾指针的值A;接收核的消息接收队列为接收核专用的消息接收队列;将接收核的消息接收队列尾指针的值A修改为A+M;其中M为正整数,表示当前待发送消息的条数;将当前待发送消息的内存地址写入接收核的消息接收队列中指针值A+1到指针值A+M所指向的队列位置中。

【技术实现步骤摘要】

本专利技术涉及通信
,尤其涉及一种多核处理器的核间通信方法及装置
技术介绍
现有的计算机操作系统基本都需要同时处理多个操作任务,这就要求中央处理器(Central Processing Unit,CPU)处理任务的能力也相应提高。随着大数据时代的到来,计算机操作系统无时无刻都需要快速、准确地处理海量信息,因此提高CPU处理任务的能力的需求更加迫切。在这种情况下,多核处理器无疑是一个很好的选择,这就涉及到多处理核之间的通信问题。现有的计算机操作系统多处理核之间大多基于先进先出(First Input First Output,FIFO)队列进行通信。采用这种技术计算机操作系统多处理核之间共享一个FIFO队列,消息发送方将消息写入到FIFO队列中,消息接收方从FIFO队列中读取消息。当多处理核之间通信比较频繁时,经常会出现多个发送方同时写入消息或多个接收方同时读取消息的情况。此时,为了保证通信过程中传输数据不被覆盖,通常会采用锁机制来保证同一时刻只有一个处理核发送/接收信息。这就导致其它处理核需要等待当前处理核完成发送/接收信息任务才可继续处理其它任务,因此降低了CPU处理任务的能力。而且,锁机制会迫使其它未获得该共享FIFO队列的进程阻塞,CPU需要保存所述进程的相关信息并且重新分配任务、调度进程,这也会浪费CPU的处理资源,影响CPU的性能。可见,现有技术中,计算机操作系统多处理核之间利用锁机制共享一个FIFO队列进行通信,导致CPU处理任务的能力及资源利用率较低。
技术实现思路
本专利技术提供一种多核处理器的核间通信方法,用以解决现有技术中CPU处理任务的能力及资源利用率较低的问题。本专利技术实施例提供的一种多核处理器的核间通信的方法,包括:发送核读取接收核的消息接收队列尾指针的值A;接收核的消息接收队列为接收核专用的消息接收队列;将接收核的消息接收队列尾指针的值A修改为A+M;其中M为正整数,表示当前待发送消息的条数;将当前待发送消息的内存地址写入接收核的消息接收队列中指针值A+1到指针值A+M所指向的队列位置中;可选地,发送核读取接收核的消息接收队列尾指针的值A之前,还包括:确定接收核的消息接收队列中存在空闲元素;其中每个空闲元素用于存储一条待发送消息的内存地址;可选地,根据以下步骤确定当前待发送消息的条数M:当发送核需要发送给接收核的消息的总数量N1大于或等于接收核的消息接收队列中的空闲元素数量N2时,确定当前待发送消息的条数M等于N2;其中N1、N2为正整数;当发送核需要发送给接收核的消息的总数量N1小于接收核的消息接收队列中的空闲元素数量N2时,确定当前待发送消息的条数M等于N1;可选地,当发送核需要发送给接收核的消息的总数量N1大于或等于接收核的消息接收队列中的空闲元素数量N2时,将除当前待发送消息之外的N1-N2条消息存入发送核的第一发送缓冲队列中,第一发送缓冲队列专用于存储所述发送核需要向所述接收核发送的消息的内存地址;当接收核的消息接收队列中存在空闲元素之后,返回读取接收核的消息接收队列尾指针的值A的步骤,并从第一发送缓冲队列中提取当前待发送消息的内存地址;可选地,将除当前待发送消息之外的N1-N2条消息存入发送核的第一发送缓冲队列中之后,确定接收核的消息接收队列中存在空闲元素之前,还包括:将除当前待发送消息之外的N1-N2条消息存入发送核的第一发送缓冲队列中之后,开启发送核的第一计时器;第一计时器为所述发送核向所述接收核发送消息所专用的计时器;当接收核的消息接收队列中存在空闲元素之后,返回读取接收核的消息接收队列尾指针的值A的步骤,包括:在发送核的第一计时器计时结束之后,判断接收核的消息接收队列中是否存在空闲元素,若存在,则返回发送核读取接收核的消息接收队列尾指针的值A的步骤;可选地,若确定接收核的消息接收队列中不存在空闲元素,则重新开启发送核的第一计时器;可选地,在发送核的第一计时器计时结束之前,将产生的需要发送给接收核的待发送消息的内存地址存入第一发送缓冲队列中;本专利技术实施例还提供一种多核处理器的核间通信的方法,包括:接收核基于自身专用的消息接收队列接收发送核发送的消息的内存地址;接收核读取所述内存地址对应的内存中的消息,并进行处理。本专利技术实施例提供的一种多核处理器的核间通信的装置,包括:读取模块,用于读取接收核的消息接收队列尾指针的值A;该接收核的消息接收队列为该接收核专用的消息接收队列;修改模块,用于将尾指针的值A修改为A+M;其中M为正整数,表示当前待发送消息的条数;写入模块,用于将当前待发送消息的内存地址写入接收核的消息接收队列中指针值A+1到指针值A+M所指向的队列位置中。可选地,读取模块具体用于:在确定接收核的消息接收队列中存在空闲元素后,读取接收核的消息接收队列尾指针的值A;其中每个空闲元素用于存储一条待发送消息的内存地址。可选地,修改模块具体用于根据以下步骤确定当前待发送消息的条数:当所述装置需要发送给接收核的消息的总数量N1大于或等于接收核的消息接收队列中的空闲元素数量N2时,确定当前待发送消息的条数M等于N2;其中N1、N2为正整数;当所述装置需要发送给接收核的消息的总数量N1小于接收核的消息接收队列中的空闲元素数量N2时,确定当前待发送消息的条数M等于N1。可选地,写入模块还用于:当所述装置需要发送给接收核的消息的总数量N1大于或等于接收核的消息接收队列中的空闲元素数量N2时,将除当前待发送消息之外的N1-N2条消息存入该装置的第一发送缓冲队列中,该第一发送缓冲队列专用于存储所述装置需要向接收核发送的消息的内存地址;可选地,读取模块还用于:当确定接收核的消息接收队列中存在空闲元素之后,返回读取接收核的消息接收队列尾指针的值A,并从第一发送缓冲队列中提取当前待发送消息的内存地址。可选地,读取模块具体用于:在写入模块将除当前待发送消息之外的N1-N2条消息存入该装置的第一发送缓冲队列之后,开启该装置的第一计时器;此第一计时器为该装置向所述接收核发送消息所专用的计时器;在该装置的第一计时器计时结束之后,判断接收核的消息接收队列中是否存在空闲元素,若存在,返回读取接收核的消息接收队列尾指针的值A。可选地,读取模块还用于:若确定接收核的消息接收队列中不存在空闲元素,则重新开启该装置的第一计时器。可选地,写入模块还用于:在该装置的第一计时器计时结束之前,将产生的需要发送给接收核的待发送消息的内存地址存入第一发送缓冲队列中。本专利技术实施例还提供一种多核处理器的核间通信的装置,包括:接收模块,用于基于自身专用的消息接收队列接收发送核发送的消息的内存地址;处理模块,用于读取所述内存地址对应的内存中的消息,并进行处理。本专利技术实施例中,一方面,读取接收核的消息接收队列尾指针的值A,将尾指针的值A修改为A+M,最后将当前待发送消息的M条消息的内存地址写入接收核的消息接收队列中。这样,当其它发送核读取该接收核的消息接收队列尾指针值时,尾指针值已经修改为A+M,也即其它发送核会将A+M作为尾指针的值执行内存地址的写入操作,从而避免了多个发送核同时向一个接收核的消息接收队列中发送消息时产生的消息覆盖问题,并且,这种方式允许多个发送核的并行写入操作,提高了CPU处理任务的能力本文档来自技高网...

【技术保护点】
一种多核处理器的核间通信方法,其特征在于,该方法包括:发送核读取接收核的消息接收队列尾指针的值A;所述接收核的消息接收队列为所述接收核专用的消息接收队列;将所述尾指针的值A修改为A+M;其中M为正整数,表示当前待发送消息的条数;将当前待发送消息的内存地址写入接收核的消息接收队列中指针值A+1到指针值A+M所指向的队列位置中。

【技术特征摘要】
1.一种多核处理器的核间通信方法,其特征在于,该方法包括:发送核读取接收核的消息接收队列尾指针的值A;所述接收核的消息接收队列为所述接收核专用的消息接收队列;将所述尾指针的值A修改为A+M;其中M为正整数,表示当前待发送消息的条数;将当前待发送消息的内存地址写入接收核的消息接收队列中指针值A+1到指针值A+M所指向的队列位置中。2.如权利要求1所述的方法,其特征在于,所述发送核读取接收核的消息接收队列尾指针的值A之前,还包括:确定所述接收核的消息接收队列中存在空闲元素;其中每个空闲元素用于存储一条待发送消息的内存地址。3.如权利要求2所述的方法,其特征在于,根据以下步骤确定当前待发送消息的条数M:当所述发送核需要发送给接收核的消息的总数量N1大于或等于接收核的消息接收队列中的空闲元素数量N2时,确定当前待发送消息的条数M等于N2;其中N1、N2为正整数;当所述发送核需要发送给接收核的消息的总数量N1小于接收核的消息接收队列中的空闲元素数量N2时,确定当前待发送消息的条数M等于N1。4.如权利要求3所述的方法,其特征在于,所述方法还包括:当所述发送核需要发送给接收核的消息的总数量N1大于或等于接收核的消息接收队列中的空闲元素数量N2时,将除当前待发送消息之外的N1-N2条消息存入所述发送核的第一发送缓冲队列中,所述第一发送缓冲队列专用于存储所述发送核需要向所述接收核发送的消息的内存地址;当所述接收核的消息接收队列中存在空闲元素之后,返回所述读取接收核的消息接收队列尾指针的值A的步骤,并从所述第一发送缓冲队列中提取当前待发送消息的内存地址。5.如权利要求4所述的方法,其特征在于,将除当前待发送消息之外的N1-N2条消息存入所述发送核的第一发送缓冲队列中之后,确定所述接收核的消息接收队列中存在空闲元素之前,还包括:将除当前待发送消息之外的N1-N2条消息存入所述发送核的第一发送缓冲队列中之后,开启所述发送核的第一计时器;所述第一计时器为所述发送核向所述接收核发送消息所专用的计时器;当所述接收核的消息接收队列中存在空闲元素之后,返回所述读取接收核的消息接收队列尾指针的值A的步骤,包括:在所述发送核的第一计时器计时结束之后,判断所述接收核的消息接收队列中是否存在空闲元素,若存在,则返回所述发送核读取接收核的消息接收队列尾指针的值A的步骤。6.如权利要求5所述的方法,其特征在于,所述方法还包括:若确定所述接收核的消息接收队列中不存在空闲元素,则重新开启所述发送核的第一计时器。7.如权利要求6所述的方法,其特征在于,所述方法还包括:在所述发送核的第一计时器计时结束之前,将产生的需要发送给所述接收核的待发送消息的内存地址存入所述第一发送缓冲队列中。8.一种多核处理器的核间通信方法,其特征在于,该方法还包括:接收核基于自身专用的消息接收队列接收发送核发送的消息的内存地...

【专利技术属性】
技术研发人员:赵剑川王南生
申请(专利权)人:京信通信技术广州有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1