当前位置: 首页 > 专利查询>英特尔公司专利>正文

使能混合事务存储器系统中的最大并发性技术方案

技术编号:13921322 阅读:58 留言:0更新日期:2016-10-27 21:44
在事务存储器系统的一实施例中,设备包括处理器和执行逻辑,以便实现第一软件事务模式的至少一个第一软件事务和第二软件事务模式的第二软件事务以及第一硬件事务模式的至少一个硬件事务和第二硬件事务模式的至少一个第二硬件事务的并发执行。在一个示例中,执行逻辑可在处理器中实现。描述并且要求保护其他实施例。

【技术实现步骤摘要】
【国外来华专利技术】
技术介绍
在并行编程计算环境中,共享对相同存储器位置的访问要求适当管理和同步,这会比较难以执行。按传统,访问共享存储器的线程之间的同步使用锁定来实现,以保护共享数据免于同时访问。但是,锁定在其对共享数据的串行化中常常是过度保守的(这在执行时可能不一定是必要的),但是确定编写代码的时间常常是棘手或不可能的。作为备选解决方案提出了事务存储器,以允许线程推测地并行执行临界区(称作事务)。如果冲突在执行时发生,则线程停止或终止其事务,并且再次执行它们以解决冲突。在事务存储器系统中,线程能够推测地执行事务,而无需改变共享存储器位置的内容,直到事务随后提交。如果在两个事务之间检测到冲突,则可中止事务其中之一,使得其他事务能够提交,在这时,所提交事务可改变共享存储器位置的内容。附图说明图1是按照一实施例的系统的框图。图2是按照一实施例的事务的执行的高级流程图。图3示出按照一实施例的硬件事务与软件事务之间的可能定时。图4是按照本专利技术的一实施例的混合事务存储器系统流程的框图。图5是按照一实施例的第一硬件事务的执行的流程图。图6是按照一实施例的第一硬件事务的阶段的细节。图7是按照一实施例的第二事务的执行的流程图。图8是按照一实施例的基于基本布隆过滤器的硬件事务的细节。图9是按照一实施例的基于优化布隆过滤器的硬件事务的细节。图10是按照一实施例的推测软件事务的执行的流程图。图11示出按照一实施例的软件事务执行的细节。图12是按照一实施例的不可撤销软件事务的执行的流程图。图13示出按照一实施例的不可撤销软件事务的细节。图14是按照另一个实施例的系统的框图。具体实施方式在实现事务存储器系统的各个实施例中,可在与一个或多个软件事务并发执行的一个或多个硬件事务之间使用与被访问存储器位置有关的信息来确定冲突。在某些实现中,这个信息可通过与执行事务的线程关联的过滤器组来保持。更具体来说,实施例可将这些过滤器组作为所谓的布隆过滤器来实现,其中可存储与被访问存储器位置有关的信息。一般来说,布隆过滤器可实现为位向量,其包括各提供与一个或多个存储器位置关联的值的多个字段。在操作中,将被访问存储器位置地址(或者其一部分)与一个或多个哈希值进行哈希。哈希结果用来装载位向量的对应条目。更具体来说,在访问和哈希计算时,位向量的所指示字段可设置在逻辑一或有效值,以指示已经访问对应地址。类似地,具有逻辑零或无效值的任何字段指示尚未访问存储器的一个或多个给定地址。冲突检测可至少部分使用多个布隆过滤器值来执行。更具体来说,第一线程的布隆过滤器可使其内容与具有并发执行事务的第二线程的布隆过滤器的内容进行比较。如果交叉比较指示访问存储器位置在一个或多个位置中交叉,则检测到冲突,并且终止或中止事务的一个或多个的操作可发生。而如果交叉比较指示被访问位置没有交叉,则事务之一或两者可在没有冲突检测的情况下继续提交。实施例可用来确定与软件事务并发执行的硬件事务之间的冲突。使用为各线程提供布隆过滤器的一实施例,在软件全局锁定由软件事务所保持的同时完成执行的硬件事务仅当发现冲突时才可被迫中止。布隆过滤器有时能够允许误报,因此假中止仍然能够发生。然而,布隆过滤器的使用能够改进硬件事务的提交率。实施例可用于混合事务存储器(HTM)(其使用将要由给定软件事务所获取的单个全局锁定来提供软件事务和硬件事务)中。硬件事务存储器可以只通过处理器硬件来实现,其使用尽力来完成要提交的事务。软件事务存储器完全通过软件来实现,以便在多线程程序中同步共享存储器。在硬件事务结束时,硬件事务咨询单个全局锁定。如果锁定为空,则硬件事务能够成功提交。在单个全局锁定不为空的情况下,冲突检测可使用每线程布隆过滤器(其表示各事务的读和写集合)来执行。这样,即使单个全局锁定被软件事务占用,非冲突硬件事务也能够提交。因此,实施例实现混合事务存储器系统中所实现的并发量的增加。为了检测软件事务与硬件事务之间的冲突,各线程与布隆过滤器关联。在线程中的事务的执行期间,注解每个读和写,以便将存储器位置添加到布隆过滤器。在一实施例中,这个注解可通过资料库调用进行。但是,其他实施例可采用读和写存储器访问来嵌入这类注解。备选地,编译器可插入指令,以操控布隆过滤器插入。在完成硬件事务(即,事务的临界区)时,事务在提交之前咨询全局锁定,以及如果锁定为空,则该事务能够成功提交。但是,如果锁定被占用,则在交叉操作中比较硬件事务和软件事务(其拥有全局锁定)的布隆过滤器内容,以确定是否存在冲突。布隆过滤器允许误报,但是不允许漏报。因此,尽管事务没有实际冲突,也可检测到冲突,但是如果事务访问相同存储器位置,则交叉比较将不会报告零冲突。因此,即使锁定被占用,硬件事务也能够成功提交,只要布隆过滤器没有报告冲突。在一个特定混合事务存储器系统中,单个软件事务可与一个或多个硬件事务并发执行。在软件事务开始时,它获取单个全局锁定以确保独占性。各硬件事务在临界区结束时读取这个锁定,以确定它是否能够设法提交或者要咨询布隆过滤器。在一实施例中,单个全局锁定能够存储拥有者线程的标识符,因而向硬件事务指示要对哪一个布隆过滤器检查冲突。在一实施例中,布隆过滤器可实现为软件布隆过滤器。使用这些过滤器,各事务(硬件或软件)在读取/写入那个位置时将所读取或写入的各存储器位置添加到其自己的布隆过滤器。在硬件事务结束时,布隆过滤器用来识别与当前保持单个全局锁定(若有的话)的软件事务的冲突。注意,硬件事务主要通过硬件来执行,但是使读和写访问被注解,使得所读取/写入的位置被输入到每线程软件布隆过滤器中。在提交时间,硬件事务检查全局锁定,以及如果它为空,则它们能够提交,否则它们计算它们自己的布隆过滤器与软件布隆过滤器之间的组交叉。如果不存在冲突,则硬件事务能够成功提交。在提交时(在确认没有冲突或过滤器交叉之后),通过将已更新值写到存储器(使得所有更新立即变为可见),由硬件事务所执行的更新变成是其他线程可见的。如果事务中止,则所有更新恢复到其初始状态。中止的硬件事务重试多次。在N(其是可配置参数)重试之后,硬件事务转变成软件事务,并且寻求获取单个全局锁定。在软件事务没有中止的一实施例中,这个转变确保前向进展。在这个实施例中,只有一个软件事务能够在任何给定时间执行。软件事务在其线程拥有单个全局锁定时能够执行。它通过在锁定位置写入其线程标识符(ID)来获取锁定,并且开始执行其临界区。由软件事务所执行的所有更新在原位进行(换言之,软件事务直接更新存储器)。此外,软件事务还在其线程的布隆过滤器中存储所读取/写入的位置,以允许任何并发硬件事务检查冲突。在一实施例中,软件事务能够从不中止。混合事务存储器方式可用来实现更快的事务执行以及与硬件事务存储器关联的降低开销,同时确保被操控事务的前向进展。按照混合事务存储器方式,各事务最初通过硬件来操控,以及随后在前向进展无法通过软件来取得时通过软件来操控。在各个实施例中,提供一种混合事务存储器系统,其中全局锁定用来实现软件事务和一个或多个硬件事务的并发执行。图1是设备100的框图。如图1所示,设备100包括多个元件,其中包括处理器元件102、存储器元件104和事务管理模块106。但是,实施例并不局限于所示元件的类型、数量或布置。在各个实施本文档来自技高网...

【技术保护点】
一种设备,包括:处理器;执行逻辑,用于在事务存储器系统中使能第一软件事务模式的至少一个第一软件事务和第二软件事务模式的第二软件事务以及第一硬件事务模式的至少一个硬件事务和第二硬件事务模式的至少一个第二硬件事务的并发执行;跟踪逻辑,用于激活标志,以指示至少一个软件事务正经历在所述第一软件事务模式或者所述第二软件事务模式的执行;交叉逻辑,用于确定在所述第二硬件事务模式的第一硬件事务结束时所述第二硬件事务模式的所述第一硬件事务的过滤器组是否与经历执行的所述至少一个软件事务的过滤器组冲突;以及最终完成逻辑,用于在不存在冲突时提交所述第一硬件事务,而在存在冲突时终止所述第一硬件事务。

【技术特征摘要】
【国外来华专利技术】2014.03.26 US 14/2258041.一种设备,包括:处理器;执行逻辑,用于在事务存储器系统中使能第一软件事务模式的至少一个第一软件事务和第二软件事务模式的第二软件事务以及第一硬件事务模式的至少一个硬件事务和第二硬件事务模式的至少一个第二硬件事务的并发执行;跟踪逻辑,用于激活标志,以指示至少一个软件事务正经历在所述第一软件事务模式或者所述第二软件事务模式的执行;交叉逻辑,用于确定在所述第二硬件事务模式的第一硬件事务结束时所述第二硬件事务模式的所述第一硬件事务的过滤器组是否与经历执行的所述至少一个软件事务的过滤器组冲突;以及最终完成逻辑,用于在不存在冲突时提交所述第一硬件事务,而在存在冲突时终止所述第一硬件事务。2.如权利要求1所述的设备,其中,在所述第二硬件事务模式,所述第一硬件事务更新所述第一硬件事务的各存储器访问的所述第一硬件事务的所述过滤器组。3.如权利要求1所述的设备,其中,在所述第一软件事务模式,第一软件事务在所述第一软件事务结束时得到第一锁定和第二锁定,并且采用哈希表中存储的写数据来更新所述事务存储器系统的事务存储器。4.如权利要求3所述的设备,其中,在所述第一软件事务模式,在所述第一软件事务的提交之后,所述第一软件事务使所述第一软件事务模式的另一个软件事务失效。5.如权利要求4所述的设备,其中,在所述第二硬件事模式,第二硬件事务在所述第二硬件事务的提交之前得到提交锁定和事务锁定。6.如权利要求4所述的设备,其中如果交叉在所述第一软件事务的过滤器组与所述另一个软件事务的过滤器组之间发生,则所述第一软件事务使所述另一个软件事务失效。7.一种方法,包括:由事务存储器系统中的处理器并发地执行第一线程的软件事务和第二线程的硬件事务;激活全局锁定,以指示所述软件事务的执行;以及在所述硬件事务结束时,确定所述全局锁定的状态,以及如果所述全局锁定是有效的,则确定所述第一线程的过滤器组是否与所述第二线程的过滤器组交叉,而如果不是的话,则提交所述硬件事务。8.如权利要求7所述的方法,还包括提交所述软件事务,并且在所述软件事务结束时停用所述全局锁定。9.如权利要求7所述的方法,还包括在所述全局锁定在所述硬件事务结束时是无效的时候在没有确定所述过滤器组是否交叉的情况下提交硬件事务。10.如权利要求7所述的方法,还包括:将所述硬件事务对所述事务存储器系统的事务存储器的访问的地址插入所述第一线程的所述过滤器组;以及基于将所述访问的地址与一个或多个哈希值进行哈希来更新所述第一线程的所述过滤器组的一个或多个字段。11.如权利要求7所述的方法,还包括:在所述软件事务中并发地将哈希表从第一大小重新哈希到第二大小;以及在所述硬件事务中访问所述哈希表,并且使所述硬件事务能够在所述并发重新哈希期间进行提交。12.一种方法,包括:在事务存储器系统的第二硬件事务模式执行第二硬件事务;在所述第二硬件事务结束时提交所述第二硬件事务;以及在所述第二硬件事务的提交之后,如果冲突存在于所述第二硬件事务与所述至少一个软件事务之间,则使与所述第二硬件事务并发执行的至少一个软件事务失效。13.如权利要求12所述的方法,还包括在所述第二硬件事务的提交之前确定是否获取了提交锁定,以及如果是的话,则确定冲突是否存在于所述第二硬件事务与获取了所述提交锁定的第一软件事务之间。14.如权利要求12所述的方法,还包括在所述冲突存在于所述第二硬件事务与所述第一软件事务之间时中止所述第二硬件事务,其中如果所述第二硬件...

【专利技术属性】
技术研发人员:I卡尔丘JE戈特施利奇T什佩斯曼GA波坎
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国;US

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

1