对无依赖性并行区优化的直写式高速缓存及性能改进方法技术

技术编号:7786379 阅读:203 留言:0更新日期:2012-09-21 07:26
公开了用于改进并行计算机系统的性能的装置、方法与计算机程序产品。与第一处理器的第一本地高速缓存存储器设备相关联的第一硬件本地高速缓存控制器检测由运行程序代码的第二处理器对第一高速缓存线的伪共享的发生,并且允许该第二处理器对所述第一高速缓存线的伪共享。当第一硬件本地高速缓存控制器更新第一本地高速缓存存储器设备中的第一高速缓存线的第一部分且第二硬件本地高速缓存控制器随后更新第二本地高速缓存存储器设备中的所述第一高速缓存线的第二部分时,发生对所述第一高速缓存线的伪共享。

【技术实现步骤摘要】

本申请总体上涉及并行计算系统。更特别地,本申请涉及在所述并行计算系统中运行的高速缓存一致性协议。
技术介绍
传统的并行计算系统不允许多于一个的线程或处理器同时对同一高速缓存线地址进行更新。换句话说,如果处理器想更新所关联的本地高速缓存存储器设备中的高速缓存线,则传统的并行计算系统必须首先使其它本地高速缓存存储器设备中的对应高速缓存线无效。因此,在计算系统中实现高速缓存一致性机制,用以更新本地高速缓存存储器设备,例如使本地高速缓存存储器设备中的高速缓存线无效。因此,传统并行计算系统中的两个或更多个不同的线程和/或处理器不能跨本地高速缓存存储器设备同时更新运行高速缓存一致性操作的同一高速缓存线地址。为了防止在被两个或更多个不同线程或处理器访 问的时候对同一高速缓存线地址的同时更新,传统的并行计算系统需要本地高速缓存存储器设备之间更频繁的通信(例如,向其它的本地高速缓存存储器设备广播无效通知),并且频繁地使本地高速缓存存储器设备中的高速缓存线无效。
技术实现思路
本公开描述了用于改进包括多个处理器和至少一个共享高速缓存存储器设备的并行计算系统的性能的装置、方法与计算机程序产品。每个处理器都可以包括至少一个本地高速缓存存储器设备(例如,“第一级(LI) ”高速缓存存储器设备)。在一种实施方式中,提供了一种用于改进并行计算系统的性能的装置。该装置包括多个处理器。每个处理器都具有本地高速缓存存储器设备。每个处理器都运行无数据依赖性的软件程序区的程序代码。每个处理器的本地高速缓存存储器设备都与更新该本地高速缓存存储器设备中的高速缓存线的硬件本地高速缓存控制器相关联。与第一处理器的第一本地高速缓存存储器设备相关联的第一硬件本地高速缓存控制器检测由运行所述程序代码的第二处理器对第一高速缓存线的伪共享(false sharing)的发生,并允许该第二处理器对所述第一高速缓存线的伪共享。在所述第一硬件本地高速缓存控制器更新所述第一本地高速缓存存储器设备中的所述第一高速缓存线的第一部分并且随后第二硬件本地高速缓存控制器更新第二本地高速缓存存储器设备中的所述第一高速缓存线的第二部分时,发生对所述第一高速缓存线的伪共享。在另一种实施方式中,当所述第一硬件本地高速缓存控制器更新所述第一本地高速缓存存储器设备中的所述第一高速缓存线的第一部分时,其它硬件本地高速缓存控制器设置其它本地高速缓存存储器设备中对应于所述第一高速缓存线的伪共享位。在另一种实施方式中,当第二硬件本地高速缓存控制器更新所述第二本地高速缓存存储器设备中的所述第一高速缓存线的第二部分时,所述第一硬件本地高速缓存控制器设置所述第一本地高速缓存存储器设备中对应于所述第一高速缓存线的伪共享位,而且,当所述第一硬件本地高速缓存控制器更新所述第一本地高速缓存存储器设备中的所述第一高速缓存线的第一部分时,所述第二硬件本地高速缓存控制器设置所述第二本地高速缓存存储器设备中对应于所述第一高速缓存线的伪共享位。在另一种实施方式中,响应于所述多个处理器到达所述无数据依赖性的软件程序区的结尾,所述第一硬件本地高速缓存控制器和第二硬件本地高速缓存控制器使所述第一本地高速缓存存储器设备和第二本地高速缓存存储器设备中设置了伪共享位的高速缓存线无效。在另一种实施方式中,对本地高速缓存存储器的任何写入都直写到由所述多个处理器共享的高速缓存存储器设备。在另一种实施方式中,防止所述第一硬件本地高速缓存控制器设置所述第一本地高速缓存存储器设备的伪共享位,并防止其它硬件本地高速缓存控制器使本地高速缓存存储器设备中未设置伪共享位的高速缓存线无效。 在另一种实施方式中,当所述第一硬件本地高速缓存控制器更新所述第一本地高速缓存存储器设备中所述第一高速缓存线的第一部分时,所述第一硬件本地高速缓存控制器设置所述第一本地高速缓存存储器设备的伪共享位,其它硬件本地高速缓存控制器设置其它本地高速缓存存储器设备中对应的高速缓存线的伪共享位,而且当对所述对应的高速缓存线发生后续的伪共享时,在硬件本地高速缓存控制器之间没有进一步的通信。在另一种实施方式中,响应于处理器到达所述无数据依赖性的软件程序区的结尾,所述第一硬件本地高速缓存控制器在一个或多个其它硬件本地高速缓存控制器设置其它本地高速缓存存储器设备中对应的高速缓存线的伪共享位之前完成所述第一本地高速缓存存储器设备中高速缓存线的更新。在另一种实施方式中,响应于处理器到达所述无数据依赖性的软件程序区的结尾,所述第一硬件本地高速缓存控制器选择性地使设置了伪共享位的一些高速缓存线无效。在另一种实施方式中,响应于处理器到达所述无数据依赖性的软件程序区的结尾,所述第一硬件本地高速缓存控制器通过从共享的高速缓存存储器取得有效数据来选择性地更新设置了伪共享位的一些高速缓存线。在另一种实施方式中,为了检测伪共享的发生,所述第一硬件本地高速缓存控制器和第二硬件本地高速缓存控制器使用中央目录或者侦听(snoop)技术。附图说明包括附图是为了提供对本专利技术的进一步理解,而且附图结合到本说明书中并构成其一部分。图I例示了根据一种实施方式的示出用于改进并行计算系统的性能的方法步骤的流程图。图2例示了一种实施方式中不包括数据依赖性的示例软件程序区。图3A-3C例示了一种实施方式中允许伪共享的实例。图4例示了一种实施方式中允许伪共享的状态图。图5A-5B例示了一种实施方式中的示例状态转换。图6是一种实施方式中概述状态转换的表。图7例示了根据一种实施方式的用于实现图I和图9-10中所示流程图的示例并行计算系统。图8例示了一种实施方式中的标志位。图9是例示了根据一种实施方式的用于改进并行计算系统的性能的方法步骤的流程图。图10是例示了根据另一种实施方式的用于改进并行计算系统的性能的方法步骤的流程图。具体实施例方式在一种实施方式中,图7例不了包括多个处理器705-715 (例如,IBM PowerPC 处理器,等等)和共享高速缓存存储器设备720的并行计算系统700(例如,181^@81116 06116@/0,等等)。每个处理器可以包括本地高速缓存存储器设备,例如,处理器705中的本地高速缓存存储器设备730、处理器710中的本地高速缓存存储器设备735及处理器715中的本地高速缓存存储器设备740,等等。每个处理器还可以包括每个本地高速缓存存储器设备一个硬件本地高速缓存控制器。硬件本地高速缓存控制器控制本地高速缓存存储器的读和写操作。例如,与处理器705相关联的硬件本地高速缓存控制器745控制本地高速缓存存储器设备730,例如,通过设置标志位来使本地高速缓存存储器设备730中的高速缓存线无效。类似地,硬件本地高速缓存控制器750控制本地高速缓存存储器设备735。硬件本地高速缓存控制器755控制本地高速缓存存储器设备740。任何本地高速缓存存储器中的任何更新都例如经总线或者网络725直写到共享的高速缓存存储器设备720中。共享的高速缓存存储器设备720也包括控制该共享高速缓存存储器设备720的硬件高速缓存控制器722。提供了编译器760,把高级编程代码转换成机器代码。并行计算系统700可以运行图I中的方法步骤,来改进其性能。在图I中的步骤100,一进入软件程序区(例如,图2中所示的软件“for”循环本文档来自技高网...

【技术保护点】

【技术特征摘要】
2011.02.11 US 13/025,7061.一种用于改进并行计算系统的性能的装置,该装置包括 多个处理器,每个处理器都具有本地高速缓存存储器设备,且每个处理器都运行无数据依赖性的软件程序区的程序代码,每个处理器的本地高速缓存存储器设备与更新该本地高速缓存存储器设备中的高速缓存线的硬件本地高速缓存控制器相关联;及 第一硬件本地高速缓存控制器,该第一硬件本地高速缓存控制器与第一处理器的第一本地高速缓存存储器设备相关联,用于检测由运行所述程序代码的第二处理器对第一高速缓存线的伪共享的发生并且允许该第二处理器对所述第一高速缓存线的伪共享,当所述第一硬件本地高速缓存控制器更新所述第一本地高速缓存存储器设备中的第一高速缓存线的第一部分且第二硬件本地高速缓存控制器随后更新第二本地高速缓存存储器设备中的所述第一高速缓存线的第二部分时,发生对所述第一高速缓存线的伪共享。2.如权利要求I所述的装置,其中,当所述第一硬件本地高速缓存控制器更新所述第一本地高速缓存存储器设备中的第一高速缓存线的第一部分时,其它硬件本地高速缓存控制器设置其它本地高速缓存存储器设备中对应于所述第一高速缓存线的伪共享位。3.如权利要求I所述的装置,其中,当所述第二硬件本地高速缓存控制器更新所述第二本地高速缓存存储器设备中的第一高速缓存线的第二部分时,所述第一硬件本地高速缓存控制器设置所述第一本地高速缓存存储器设备中对应于所述第一高速缓存线的伪共享位,而且,当所述第一硬件本地高速缓存控制器更新所述第一本地高速缓存存储器设备中的第一高速缓存线的第一部分时,所述第二硬件本地高速缓存控制器设置所述第二本地高速缓存存储器设备中对应于所述第一高速缓存线的伪共享位。4.如权利要求3所述的装置,其中,响应于所述多个处理器到达所述无数据依赖性的软件程序区的结尾,所述第一硬件本地高速缓存控制器和所述第二硬件本地高速缓存控制器使所述第一本地高速缓存存储器设备和所述第二本地高速缓存存储器设备中设置了伪共享位的高速缓存线无效。5.如权利要求I所述的装置,其中,不包括数据依赖性的软件程序区包括至少一个无数据依赖性的循环。6.如权利要求I所述的装置,其中,为了确定循环是否没有依赖性,编译器评估前一次迭代的输出是否用作后续迭代的输入。7.如权利要求I所述的装置,其中,对本地高速缓存存储器设备的任何写入都直写到由所述多个处理器共享的高速缓存存储器设备。8.如权利要求I所述的装置,其中,所述第一硬件本地高速缓存控制器被防止用来设置所述第一本地高速缓存存储器设备的伪共享位,而且其它硬件本地高速缓存控制器被防止用来使本地高速缓存存储器设备中未设置伪共享位的高速缓存线无效。9.如权利要求I所述的装置,其中,当所述第一硬件本地高速缓存控制器更新所述第一本地高速缓存存储器设备中的第一高速缓存线的第一部分时,所述第一硬件本地高速缓存控制器设置所述第一本地高速缓存存储器设备中所述第一高速缓存线的伪共享位,其它硬件本地高速缓存控制器设置其它本地高速缓存存储器设备中的对应高速缓存线的伪共享位,而且当随后发生对所述对应高速缓存线的伪共享时,硬件本地高速缓存控制器之间不存在进一步的通信。10.如权利要求I所述的装置,其中,所述第一硬件本地高速缓存控制器在一个或多个其它硬件本地高速缓存控制器设置其它本地高速缓存存储器设备中的对应高速缓存线的伪共享位之前完成所述第一本地高速缓存存储器设备中的第一高速缓存线的更新,而且所述一个或多个其它硬件本地高速缓存控制器在到达所述无数据依赖性的软件程序区的结尾之前设置其它本地高速缓存存储器设备中的对应高速缓存线的伪共享位。11.如权利要求4所述的装置,其中,响应于两个或更多个处理器到达所述无数据依赖性的软件程序区的结尾,所述第一硬件本地高速缓存控制器选择性地使设置了伪共享位的一条或多条高速缓存线无效。12.如权利要求4所述的装置,其中,响应于两个或更多个处理器到达所述无数据依赖性的软件程序区的结尾,所述第一硬件本地高速缓存控制器通过从共享的高速缓存存储器设备取得有效数据来选择性地更新设置了伪共享位的一条或多条高速缓...

【专利技术属性】
技术研发人员:A·E·艾臣博格A·加拉M·欧玛克特V·斯里尼发桑
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:

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

1