一种用于多核CPU原子操作内存的装置及方法制造方法及图纸

技术编号:36793577 阅读:16 留言:0更新日期:2023-03-08 22:51
本发明专利技术提出了一种用于多核CPU原子操作内存的装置,包括多核CPU、内存以及处理模块,所述处理模块分别与多核CPU中的每个CPU核以及内存通信连接,用于获取多核CPU中,每个CPU核按照预设原子命令格式写入的原子操作命令,并根据每个CPU核原子操作命令的写入顺序,对内存进行原子操作,本发明专利技术还提出了一种用于多核CPU原子操作内存的方法,有效解决由于现有技术造成多核CPU在进行原子操作时相互干扰、运行效率低的问题,有效地降低了多核CPU在进行原子操作时相互干扰,提高了运行效率。提高了运行效率。提高了运行效率。

【技术实现步骤摘要】
一种用于多核CPU原子操作内存的装置及方法


[0001]本专利技术涉及CPU处理领域,尤其是涉及一种用于多核原子操作内存的装置及方法。

技术介绍

[0002]当CPU多个核心同时对某MEM(Memory,存储)地址进行读或改写数据操作时,经常遇到如下情况:CPU核0读取此地址,运算更改后写回此地址;CPU核1做同样操作,读取此地址数据更改写回。若CPU核1在CPU核0的更改尚未完成时进行读取,CPU核0运算更改后写回,CPU核1运算更改后写回,则CPU核0的操作被CPU核1操作覆盖,CPU核1操作的是脏数据。从地址读取数据,运算修改写回数据,在此处应为原子操作(atomic operation,指的是由多步操作组成的一个操作,如果该操作不能原子地执行,则要么执行完所有步骤,要么一步也不执行,不可能只执行所有步骤的一个子集)。
[0003]为保证原子操作,目前的主要方法有,使用加自旋锁的程序进行保证。在原子操作前加锁,在原子操作后释放锁,释放后其他核才能申请到锁,再进行原子操作。
[0004]但这种方式下,其他未获取到锁的CPU核,处于阻塞状态,CPU等待时间长,运行效率低。

技术实现思路

[0005]本专利技术为了解决现有技术中存在的问题,创新提出了一种用于多核CPU原子操作内存的装置及方法,有效解决由于现有技术造成多核CPU在进行原子操作时相互干扰、运行效率低的问题,有效地降低了多核CPU在进行原子操作时相互干扰,提高了运行效率。
[0006]本专利技术第一方面提供了一种用于多核CPU原子操作内存的装置,包括多核CPU以及内存以及处理模块,所述处理模块分别与多核CPU中的每个CPU核以及内存通信连接,用于获取多核CPU中,每个CPU核按照预设原子命令格式写入的原子操作命令,并根据每个CPU核原子操作命令的写入顺序,对内存进行原子操作。
[0007]可选地,所述多核CPU包括多个第一状态寄存器,所述处理模块包括多个第二状态寄存器,所述多核CPU中每个CPU核按照预设原子命令格式写入的原子操作命令写入将对应的第一状态寄存器,并将第一状态寄存器中的原子操作命令写入至处理模块中每个CPU核对应的第二状态寄存器,所述处理模块实时监测每个第二状态寄存器的写入状态,并获取每个CPU核对应的第二状态寄存器的原子操作命令。
[0008]进一步地,所述处理模块还包括一第三状态寄存器,所述第三状态寄存器用于处理模块将每个第二状态寄存器中的原子操作命令按照先后顺序,写入第三状态寄存器中的原子操作命令队列,所述处理模块获取第三状态寄存器的原子操作命令,并根据原子操作命令的写入顺序,对内存进行原子操作。
[0009]进一步地,所述处理模块还用于获取原子操作的执行结果,在原子操作执行完成后,清空第三状态寄存器以及第二状态寄存器中对应原子操作命令。
[0010]进一步地,所述处理模块还用于获取原子操作的执行结果,在原子操作执行完成
后,反馈至多核CPU。
[0011]进一步地,所述多核CPU接收到处理模块的反馈通知后,清空第一状态寄存器中对应原子操作命令。
[0012]可选地,处理模块中的第二寄存器的数量为CPU核数量的整数倍,每个CPU核对应若干第二状态寄存器,用于支持每个CPU核可写多条原子操作命令至第二状态寄存器中的等待序列,加速原子操作速度。
[0013]可选地,所述第三状态寄存器支持所有CPU核公用,按照所有第二状态寄存器中的原子操作命令写入的先后顺序,依次写入第三状态寄存器中的原子操作命令队列。
[0014]可选地,所述预设原子命令格式为:操作方式、操作数、目的地址、源地址、命令ID的排列组合。
[0015]可选地,所述原子操作包括只读、写后读、按位与、按位或、按位异或、按位左移、按位右移、按位取反、加、减、比较后交换数值。
[0016]本专利技术第二方面还提供了一种用于多核CPU原子操作内存的方法,基于本专利技术第一方面所述的一种用于多核CPU原子操作内存的装置,运行于处理模块中,包括:
[0017]获取多核CPU中每个CPU核按照预设原子命令格式写入的原子操作命令;
[0018]根据每个CPU核写入原子操作命令的写入顺序,对内存进行原子操作。
[0019]本专利技术采用的技术方案包括以下技术效果:
[0020]1、本专利技术技术方案中CPU多核通过写对应处理模块的方式,操作地址有重叠的内存(MEM),CPU核之间无干扰,减少了CPU等待时间,保证了原子操作;而且,使用硬件(处理模块)进行运算,解放了CPU运算时间,有效解决由于现有技术造成多核CPU在进行原子操作时相互干扰、运行效率低的问题,有效地降低了多核CPU在进行原子操作时相互干扰,提高了运行效率。
[0021]2、本专利技术技术方案中所述处理模块还包括一第三状态寄存器,第三状态寄存器支持所有CPU核公用,按照所有第二状态寄存器中的原子操作命令写入的先后顺序,依次写入第三状态寄存器中的原子操作命令队列,按照多CPU核写入命令完成的顺序,单条顺序执行原子操作命令,保证了原子操作顺序,保证了一次内存操作不被打断,保证了操作的原子性。
[0022]3、本专利技术技术方案中处理模块中的第二寄存器的数量为CPU核数量的整数倍,每个CPU核对应若干第二状态寄存器,用于支持每个CPU核可写多条原子操作命令至第二状态寄存器中的等待序列,加速原子操作速度。
[0023]4、本专利技术技术方案中处理模块在原子操作执行完成后,清空第三状态寄存器以及第二状态寄存器中对应原子操作命令,并反馈至多核CPU,使得多核CPU接收到处理模块的反馈通知后,清空第一状态寄存器中对应原子操作命令,以待下次命令写入,进一步地保证了原子操作的执行效率。
[0024]应当理解的是以上的一般描述以及后文的细节描述仅是示例性和解释性的,并不能限制本专利技术。
附图说明
[0025]为了更清楚说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有
技术描述中所需要使用的附图作简单介绍,显而易见的,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0026]图1为本专利技术方案中实施例一装置的结构示意图;
[0027]图2为本专利技术方案中实施例一装置中多核CPU以及处理模块的内部结构示意图;
[0028]图3为本专利技术方案中实施例一装置中多核CPU与处理模块的内部通信结构示意图(一);
[0029]图4为本专利技术方案中实施例一装置中多核CPU与处理模块的内部通信结构示意图(二);
[0030]图5为本专利技术方案中实施例一装置中多核CPU中CPU核与处理模块的内部通信流程示意图;
[0031]图6为本专利技术方案中实施例二方法的流程示意图。
具体实施方式
[0032]为能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本专利技术进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于多核CPU原子操作内存的装置,其特征在于,包括多核CPU、内存以及处理模块,所述处理模块分别与多核CPU中的每个CPU核以及内存通信连接,用于获取多核CPU中,每个CPU核按照预设原子命令格式写入的原子操作命令,并根据每个CPU核原子操作命令的写入顺序,对内存进行原子操作。2.根据权利要求1所述的一种用于多核CPU原子操作内存的装置,其特征在于,所述多核CPU包括多个第一状态寄存器,所述处理模块包括多个第二状态寄存器,所述多核CPU中每个CPU核按照预设原子命令格式写入的原子操作命令写入将对应的第一状态寄存器,并将第一状态寄存器中的原子操作命令写入至处理模块中每个CPU核对应的第二状态寄存器,所述处理模块实时监测每个第二状态寄存器的写入状态,并获取每个CPU核对应的第二状态寄存器的原子操作命令。3.根据权利要求2所述的一种用于多核CPU原子操作内存的装置,其特征在于,所述处理模块还包括一第三状态寄存器,所述第三状态寄存器用于处理模块将每个第二状态寄存器中的原子操作命令按照先后顺序,写入第三状态寄存器中的原子操作命令队列,所述处理模块获取第三状态寄存器的原子操作命令,并根据原子操作命令的写入顺序,对内存进行原子操作。4.根据权利要求3所述的一种用于多核CPU原子操作内存的装置,其特征在于,所述处理模块还用于获取原子操作的执行结果,在原子操作执行完成后,清空第三状态寄存器以及第二状态寄存器中对应原子操作命令。5.根据权利要求4所述的一种用于多核CPU原子操作内存的装置,其特征在于,所述处理模...

【专利技术属性】
技术研发人员:周云龙王璞粟汝发孟凡兴
申请(专利权)人:山东云海国创云计算装备产业创新中心有限公司
类型:发明
国别省市:

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

1