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

无约束事务存储器系统技术方案

技术编号:8413001 阅读:178 留言:0更新日期:2013-03-14 02:05
描述了用于提供无约束事务存储器系统的方法和装置。在一个实施例中,如果先前的一个硬件事务存储器(HTM)访问操作失败,则与一个软件事务存储器(STM)访问相对应的操作可被执行。

【技术实现步骤摘要】

本公开一般地涉及电子
更具体地,本专利技术的一个实施例涉及无约束事务存储器系统(unbounded transactional memory system)
技术介绍
为提高性能,一些计算机系统可并发地执行多个线程。通常,在线程访问共享资源之前,该线程可以获取该共享资源的锁。在共享资源为一存储于存储器中的数据结构的情形中,所有试图访问该相同资源的线程可以依照加锁机制提供的互斥性来将其操作的执行串行化。上述情形可能会对系统性能不利并且可能造成程序故障,例如,由于死锁错误。为减少使用加锁机制对性能的影响,一些计算机系统会使用事务存储器。事务存储器通常涉及一种同步模型,其允许多个线程并发地访问一个共享资源(例如存储在存储器中的一个数据结构),而只要多个访问之间不存在冲突(例如,只要多个访问是针对共享资源的不同部分)就不需要获取锁。事务存储器可通过一个表查找机制来实现。特别地,为访问一个共享资源,一个线程可首先检查一个存储于存储器中的表以确定是否有另一个线程正在访问共享资源的相同部分。访问存储于存储器中的表所产生的开销会导致性能的下降。附图说明以下参考附图对本专利技术进行详细描述。在附图中,参考标号最左侧的数字标识出最先出现该参考标号的那张图。在不同附图中使用的相同的参考标号表示相似或相同的项目。图I、图6和图7示出了计算系统各实施例的方框图,其可被用于实现本文中讨论的各种实施例。图2示出了根据本专利技术的一个实施例,处理器内核中多个部分的方框图。图3-图5示出了根据本专利技术的各种实施例的方法的方框图。具体实施例方式在以下的描述中给出了许多具体细节以提供对于各种实施例的深入理解。但是,一些实施例可以不需要这些细节来进行实现。在其它示例中,为了不使特定的实施例难以理解,一些公知的方法、过程、组件和电路没有进行具体描述。本文中所讨论的一些实施例可为使用硬件事务存储器(HTM)和软件事务存储器(STM)技术的组合的非约束事务存储器系统提供有效机制,例如参照图I 图7的计算系统而讨论的实施例。更具体地,图I示出了依据本专利技术的一个实施例的计算系统100的框图。系统100可包括一个或多个处理器102-1到102-N(本文中简称为“多个处理器102”或更一般地称为“处理器102”)。多个处理器102之间可通过互连或总线104进行通信。每个处理器可以包括各种组件,为了清楚,其中一部分仅在针对处理器102-1时给予说明。相应地,其余处理器102-2到102-n中每个均可包括针对处理器102-1所论述的相同或类似的组件。此外,这里所描述的实施方式并不仅限于多处理器计算系统中,其也可被应用于一个单处理器计算系统中。在一个实施例中,处理器102-1可包括一个或多个处理器内核106-1到106-M(本文中简称为“多个内核106”或者更一般地称为“内核106”)、高速缓存108、和/或路由器110。多个处理器内核106可在单个集成电路(IC)芯片上实现。此外,该芯片可以包括一个或多个共享的和/或私有的高速缓存(如高速缓存108)、总线或互连(如总线112)、存储器控制器(如参照图6和7所描述的)、或者其他组件。在一个实施例中,路由器110可被用于在处理器102-1和/或系统100的多个不同组件之间的通信。此外,处理器102-1可包括多于一个的路由器110。更进一步地,多个路由器(110)之间可进行通信,以使得处理器102-1内部或外部的各种不同组件之间能够 进行数据路由。此外,高速缓存108可存储数据(例如,包括指令),这些数据被处理器102-1的一个或多个组件所使用。举例来说,高速缓存108可在本地对存储器114中存储的数据进行缓存,以供处理器102-1的多个组件更快地进行访问。如图I所示,存储器114可与处理器102-1通过互连104进行通信。在一个实施例中,高速缓存108 (可为共享的)可以包括二级(L2)高速缓存、末级高速缓存(LLC)、或其他类型的高速缓存中的一个或多个。此外,每个内核106或处理器102可包括一个一级(LI)高速缓存。处理器102-1的各种不同组件可与高速缓存108直接通过总线(例如,总线112)和/或存储器控制器或控制中心进行通信。此外,处理器102-1可包括多于一个的高速缓存。正如将参照图2做进一步描述的,存储器114还可以包括一个页表116,该页表储存了有关于在虚拟地址和物理地址之间的映射的信息。图2示出了依据本专利技术的一个实施例,处理器内核106中多个部分的一个框图。如参照图I所讨论的,一个或多个处理器内核(如处理器内核106)可实现在单个集成电路芯片(或管芯(die))上。此外,该芯片可以包括一个或多个共享的和/或私有的高速缓存(例如,图I中的高速缓存108)、互连(例如,图I中的互连104和/或112)、存储器控制器、或其他组件。如图2所示,处理器内核106可包括一个用于取回指令以便由内核106来执行的取回单元(fetch unit) 202。所述指令可以从任何存储设备取回,如存储器114和/或参照图6和图7所描述的存储设备。内核106还可包括一个解码单元204,用于对取回的指令进行解码。举例来说,解码单元204可将取回的指令解码为多个uop (微操作)。另外,内核106可包括一个调度单元206。调度单元206可执行各种操作,这些操作关联于存储已解码指令(例如,从解码单元204接收的)直到所述指令已准备好待分派(例如,直到一个已解码指令的全部源值都可用)。在一个实施例中,调度单元206可调度和/或发布(或分派)已解码指令给执行单元208来执行。执行单元208可在分派的指令被解码(例如,通过解码单元204)和被分派(例如,通过调度单元206)之后执行所述指令。在一个实施例中,执行单元208可包括多于一个的执行单元,如存储器执行单元、整数执行单元、浮点数执行单元、或其他执行单元。进一步地,执行单元208可以乱序执行指令。因此,在一个实施例中,处理器内核106可以是一个乱序处理器内核。内核106也可包括一个引退(retirement)单元210。引退单元210可在指令被提交之后令已执行的指令引退。在一个实施例中,已执行指令的引退可能会导致处理器状态根据指令执行而被提交,指令使用的物理寄存器被解除分配,等等。如图2所示,内核106还可以包括一个跟踪高速缓存(trace cache)或者微代码只读存储器(uR0M)212,用于存储微代码和/或被取回的指令的踪迹(例如,通过取回单元202)。存储在UR0M212中的微代码可用于配置内核106的各种硬件组件。在一个实施例中,存储在UR0M212中的微代码可从与处理器内核106通信的另一个组件中被加载,例如参照图6和7中所描述的计算机可读介质或其他存储设备。处理器内核106还可以包括数据转换后备缓冲器(data translationlook-a-side buffer,DTLB) 214,以存储(或缓存)页表116的多个部分。在一个实施例 中,DTLB214可以是一个内容可寻址存储器(CAM)。此外,处理器内核106可以包括一个总线单元216,以允许处理器内核106的组件和其他组件(如参照图I所述的组件)通过一个或多个总线(例如,总线104和/本文档来自技高网...

【技术保护点】
一种处理器,包括:多个内核,每个内核用于在先前的与一线程相对应的硬件事务存储器访问执行失败之后,引发执行与所述线程相对应的软件事务存储器访问;所述多个内核中的每个内核包括用于存储数据的一级(L1)高速缓存;共享的二级(L2)高速缓存、共享的低级高速缓存(LLC)或者被所述多个内核共享的其它类型的高速缓存;其中,每个内核包括用于存储所有权标志的存储器,其中,所述所有权标志包括一个或多个位,用以确定对应表项的所有权状态,并且其中,响应于所述所有权标志指示有效的所有权状态,中止所述硬件事务存储器访问。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:H·H·阿卡瑞AR·阿德塔巴塔巴伊B·萨哈R·拉吉瓦
申请(专利权)人:英特尔公司
类型:发明
国别省市:

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

1