一种支持cache更新的一致性加速处理方法技术

技术编号:35419151 阅读:13 留言:0更新日期:2022-11-03 11:18
本发明专利技术涉及计算机数据计算领域,具体处理器多核处理的加速方法。本发明专利技术是通过以下技术方案得以实现的:一种支持cache更新的一致性加速处理方法,包含如下步骤:S01、生产核心数据生产步骤;生产核心生产出批量数据;S02、完成通知即时发送步骤;所述生产核心给一致性串行点发送完成通知;S03、串行点取数据步骤;所述一致性串行点从所述生产核心处获得刚处理完的数据,且将数据转存到主存中,在转存结束之前,该生产核心不生产新的数据;S04、消费核心获得数据步骤。本发明专利技术的目的是提供一种支持cache更新的一致性加速处理方法,在保证cache一致性的基础上,解决一致性操作的延迟开销,避免生产核心的多任务竞争,减少数据处理的延迟,提升效率。提升效率。

【技术实现步骤摘要】
一种支持cache更新的一致性加速处理方法


[0001]本专利技术涉及计算机数据计算领域,具体处理器多核处理的加速方法。

技术介绍

[0002]随着处理器制造工艺的不断进步及实际应用需要,多核结构已成为当前高性能微处理器的发展趋势。相比单核处理器而言,多核处理器支持多线程,在一个时钟周期内能处理更多的任务,也支持多任务处理,其计算能力和运行效率都有着明显的优势。如公开号为CN201380009921.8公开了一种用于多核处理器中的核心间通信的方法和装置,再如公开号为CN201110452294.8公开了一种多核处理器的核间通信方法,在这两个专利文件所记载的技术方案中,都涉及到了多核处理器的数据计算方式,其包含生产核心和消费核心。在某一个程序任务中,生产核心负责产生相应的数据,而消费核心需要使用到生产核心所产生的数据。
[0003]而,多核处理器系统中出现的cache一致性问题是当今计算机体系结构中研究的热点问题。即,消费核心在数据处理过程中所拿到的数据需要保证是最新的数据版本,这才能保证各个消费核心在运算过程中的一致性。如CN201210544976.6一种具有多cache一致性域的多处理器节点系统构建方法,通过二级节点控制器来组成一个单一cache一致性域,(或称为一致性串行点),该一致性串行点在实际应用中为处理器芯片中的一个单独的硬件形式,负责消费核心和生产核心之间的数据交互,且保证交互过程中的数据一致性。具体方式为,消费核心取数据时向一致性串行点发送取数据的请求,一致性串行点在查找到最新版本的数据所在的地址后,向生产核心发送数据请求,取得数据。
[0004]然而这个技术方案存在一定的缺陷,当消费核心发送数据请求后,一致性串行点再向对应的生产核心去取数据。而此时,很有可能该生产核心正在生产其他数据,则对于该生产核心而言,为一致性串行点提供数据任务和生产下一数据任务,这两个任务之间就存在着任务竞争,影响了该生产核心的数据生产效率,而这些任务竞争进而产生了额外的时间开销和延迟。

技术实现思路

[0005]本专利技术的目的是提供一种支持cache更新的一致性加速处理方法,在保证cache一致性的基础上,解决一致性操作的延迟开销,避免生产核心的多任务竞争,减少数据处理的延迟,提升效率。
[0006]本专利技术是按照如下技术方案来实现的:一种支持cache更新的一致性加速处理方法,其特征在于,包含如下步骤:S01、生产核心数据生产步骤;生产核心生产出批量数据;S02、完成通知即时发送步骤;所述生产核心给一致性串行点发送完成通知;
S03、串行点取数据步骤;所述一致性串行点从所述生产核心处获得刚处理完的数据,且将数据转存到主存中,在转存结束之前,该生产核心不生产新的数据;S04、消费核心获得数据步骤;当所述消费核心需要获得数据时,发送数据请求给所述一致性串行点,所述一致性串行点从所述主存中获得对应的数据给所述消费核心。
[0007]作为本专利技术的优选,所述生产核心和所述消费核心均为多个,但所述一致性串行点仅为一个,多个所述生产核心和多个所述消费核心共享一个所述一致性串行点。
[0008]作为本专利技术的优选,在所述S02中,所述生产核心发送给所述一致性串行点的完成通知的形式为总的描述符。
[0009]作为本专利技术的优选,在所述S03中,包含子步骤,拆包步骤;所述一致性串行点将一个总的描述符中涉及到的数据拆包成多个数据传输任务,每个数据传输任务以一个数据单位为操作密度。
[0010]作为本专利技术的优选,所述一个数据单位为一个cache行。
[0011]作为本专利技术的优选,在所述S03中,所述一致性串行点在对所述生产核心的数据操作包含置共享操作和置无效操作,所述置共享操作是数据除了进入了对应的内存中,但是生产核心处依然保留了该数据,用于生产核心的下一批数据计算;所述置无效操作是数据仅仅进入对应的内存中,生产核心处不保留该数据。
[0012]作为本专利技术的优选,所述一致性串行点的数据操作依靠软件编程实现,编程语言为汇编语言。
[0013]综上所述,本专利技术具有如下有益效果:1、消费核心获取数据的任务不会与生产核心新的数据生产任务产生任何竞争,不存在因任务竞争而引发的延迟开销,提高整个系统运行和计算的效率。
[0014]2、一致性串行点将生产核心产生的数据转移到内存,生产核心无需储存大量数据,提升硬件使用效率。
[0015]3、一致性串行点支持置共享操作和置无效操作,便于生产核心后续的数据计算与生产。
[0016]4、数据从生产核心转移到内存时为cache行逐个转移,保持数据精准不出错。
[0017]5、生产核心通知一致性串行点为一次性批量通知,以描述符的形式,高效快捷。
具体实施方式
[0018]以下对本专利技术作进一步详细说明。
[0019]本具体实施例仅仅是对本专利技术的解释,其并不是对本专利技术的限制,本领域技术人员在阅读完本说明书后可以根据需要对本实施例做出没有创造性贡献的修改,但只要在本专利技术的权利要求范围内都受到专利法的保护。
[0020]实施例1,一种支持cache更新的一致性加速处理方法,在系统构成上,需要包含生产核心、消费核心和一致性串行点,这三个部件并不是软件程序,而是以物理形式存在在处理器芯片上的硬件。与现有技术相同,生产核心负责数据的生产,而消费核心需要使用到生产核心所生产出的数据。而处理器芯片上的一致性串行点则需要保证数据的一致性,在现
有技术中,如消费核心A需要使用到数据1,而一致性串行点发现数据1的最新版本在生产核心C上,则一致性串行点就要向生产核心C取得数据1并提供给消费核心A,从而又保证了数据的正常使用,又保证了数据的一致性。
[0021]在本案中,芯片中的核心数量不做限定,根据场景的不同,核心的数量从几个到几百、几千不等。然而,一致性串行点的数量可设置的较少,无需巨量设置,一致性串行点可为多个核心服务。
[0022]在本实施例中,一致性串行点只设置一个,所有的核心均共用这一个一致性串行点。
[0023]一致性串行点的命令执行依靠编程来实现,可选用现有技术中成熟的编程语言,一致性串行点寻找数据的最新版本的方式,一致性串行点与核心之间数据的交互方式,这均为现有技术的内容,如,一致性串行点采用监听法或采用副本目录法来寻找数据的最新版本,本案不做赘述。
[0024]本案中,使用汇编语言来实现,这是由于汇编语言在编写和代码存储过程中占存储少,执行速度快,有利于更进一步提升运行效率。
[0025]S01、生产核心数据生产步骤。
[0026]生产核心A生产出了批量数据1。这一过程与现有技术相同。
[0027]S02、完成通知即时发送步骤。
[0028]这一步骤与现有技术不同,即生产核心A生产出了批量数据1后,马上给一致性串行点发送完成通知。
[0029]在本实施例中,该完成通知为描述符。在实际应用中,生产核心A一次性生产出批量的数据,例如本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种支持cache更新的一致性加速处理方法,其特征在于,包含如下步骤: S01、生产核心数据生产步骤; 生产核心生产出批量数据; S02、完成通知即时发送步骤; 所述生产核心给一致性串行点发送完成通知; S03、串行点取数据步骤; 所述一致性串行点从所述生产核心处获得刚处理完的数据,且将数据转存到主存中,在转存结束之前,该生产核心不生产新的数据; S04、消费核心获得数据步骤; 当所述消费核心需要获得数据时,发送数据请求给所述一致性串行点,所述一致性串行点从所述主存中获得对应的数据给所述消费核心。2.根据权利要求1所述的一种支持cache更新的一致性加速处理方法,其特征在于: 在所述S01之前,还包含硬件数量设置步骤,在本步骤中,设置所述生产核心和所述消费核心均为多个,但所述一致性串行点仅为一个,多个所述生产核心和多个所述消费核心共享一个所述一致性串行点。3.根据权利要求1所述的一种支持cache更新的一致性加速处理方法,其特征在于: 在所述S02中,所述生产核心发送...

【专利技术属性】
技术研发人员:吴铁彬唐勇陈芳园刘骁陈正博郝子宇
申请(专利权)人:无锡江南计算技术研究所
类型:发明
国别省市:

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

1