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

多处理器环境中基于事务的共享数据操作制造技术

技术编号:2835289 阅读:234 留言:0更新日期:2012-04-11 18:40
本文所述的装置及方法是用于通过事务执行采用无锁定同步来处理多个处理器之间的共享存储器访问。以软件划分的事务被推测地执行。在执行期间,事务缓冲器跟踪对于从共享存储器加载的以及要向共享存储器写入的地址的失效远程访问/请求。如果遇到失效访问,则事务被重新执行。在重新执行事务预定次数之后,可采用锁定/信标非推测地重新执行事务。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及集成电路领域,具体来说,涉及多个集成电路、核心和线程之间的共享数据操作。
技术介绍
半导体加工和逻辑设计方面的进步允许在集成电路器件上可存在的逻辑数量的增加。因此,计算机系统配置已经从系统中的单个或多个集成电路发展到各个集成电路上存在的多个核心和多个逻辑处理器。集成电路通常包括单个处理器管芯,在其中,处理器管芯可包括任何数量的核心或逻辑处理器。作为一个实例,单个集成电路可能具有一个或多个核心。术语“核心”通常表示集成电路上的逻辑保持独立体系结构状态的能力,在其中,各独立体系结构状态与专用执行资源关联。因此,具有两个核心的集成电路通常包括用于保持两个分离且独立的体系结构状态的逻辑,各体系结构状态与其自己的执行资源、诸如低级高速缓存、执行单元和控制逻辑关联。各核心可共享某些资源,诸如高级高速缓存、总线接口以及取/解码单元。作为另一个实例,单个集成电路或单个核心可具有用于执行多个软件线程的多个逻辑处理器,这又称作多线程集成电路或多线程核心。多个逻辑处理器通常共享公共数据高速缓存、指令高速缓存、执行单元、分支预测器、控制逻辑、总线接口及其它处理器资源,同时保持各逻辑处理器的特有体系结构状态。多线程技术的一个实例是来自Intel公司(Santa Clara,California)的超线程技术(HT),它使得能够采用信号物理处理器并行地执行线程。当前的软件具有运行各个软件线程的能力,它可并行调度在多个核心或逻辑处理器上的执行。集成电路上数量不断增加的核心和逻辑处理器使更多软件线程能够被执行。但是,可同时执行的软件线程的数量的增加对于使软件线程之间共享的数据同步造成问题。多个核心或多个逻辑处理器系统中访问共享数据的一个常见解决方案包括使用锁定来保证对共享数据的多个访问的互斥。作为一个实例,如果第一软件线程正访问某个共享存储器位置,则保护该共享存储器位置的信标被锁定,以便在保护该存储器位置的信标被解锁之前拒绝系统中的其它任何软件线程访问该共享存储器位置。但是,如上所述,执行多个软件线程的不断增加的能力可能引起错误争用和执行的串行化。错误争用因以下事实而发生信标通常设置成保护数据的集合,它根据软件所支持的共享粒度,可覆盖极大数量的数据。为此,信标用作争用“放大器”,因为对于信标可能存在多个软件线程的争用,即使软件线程正访问完全独立的数据项。这引起其中第一软件线程锁定保护第二软件线程可安全访问而不妨碍第一软件线程执行的数据位置的信标的情况。但是,由于第一软件线程锁定了信标,所以第二线程必须等到信标被解锁,从而引起原本并行执行的串行化。附图说明 附图中的各图以举例而不是限定的方式来说明本专利技术。图1说明具有N个核心以及N个核心的每个中的M个逻辑处理器的集成电路。图2说明用于实现事务执行的集成电路的一个实施例。图3说明图3所示的事务缓冲器的一个实施例。图4说明以软件代码划分的事务,所示软件代码被编译成编译代码的第一和第二实施例。图5说明系统中的事务执行的一个实施例。图6说明执行事务的方法的流程图的一个实施例。图7说明用于事务执行的代码流程的一个实施例。具体实施例方式在以下描述中,阐述了大量具体细节,诸如物理/逻辑处理器的具体数量、具体的事务缓冲器字段以及具体处理器逻辑和实现,以便提供对本专利技术的透彻理解。然而,本领域的技术人员会清楚,这些具体细节不一定要用于实施本专利技术。在其它情况下,没有详细描述众所周知的组件或方法、例如微处理器的众所周知的功能块等,以免不必要地影响对本专利技术的理解。本文所述的装置及方法是用于通过事务执行采用无锁定同步来处理多个软件线程之间的共享存储器访问。对于本领域的技术人员显而易见,本文公开的方法及装置可在诸如个人数字助理、移动平台、桌面平台和服务器平台之类的、以及具有任何数量的集成电路、核心或逻辑处理器的任何等级的计算机系统中实现。例如,具有四个集成电路的微处理器系统可采用本文所述的方法及装置来管理对集成电路中的任何四个所共享的存储器的共享访问。在图1中,说明可实现事务执行的集成电路105。在一个实施例中,集成电路105是能够与其它微处理器无关地进行操作的微处理器。或者,集成电路105是结合多个处理元件进行操作的处理元件。集成电路105说明第一核心110、第二核心115和第N核心120。本文所使用的“核心”表示位于集成电路上的能够保持独立体系结构状态的任何逻辑,其中,各独立保持的体系结构状态与至少一部分专用执行资源关联。执行资源可包括算术逻辑单元(ALU)、浮点单元(FPU)、寄存器文件、用于对单个或多个整数和/或浮点数据操作数进行串行或并行运算的操作数寄存器以及用于执行代码的其它逻辑。此外,多个核心可共享对于诸如高级高速缓存、总线接口和控制逻辑以及取/解码逻辑之类的其它资源的访问。作为一个说明性实例,集成电路105具有八个核心,各核心与一组体系结构状态寄存器关联,诸如通用寄存器、控制寄存器、高级可编程中断控制(APIC)寄存器、机器状态寄存器(MSR)或者用于存储指令指针的状态的寄存器,以便保持独立体系结构状态。此外,各组体系结构状态寄存器独占地与单独执行单元关联。集成电路105还说明核心110,其中包括第一逻辑处理器125、第二逻辑处理器130和第M逻辑处理器135。本文所使用的逻辑处理器表示位于集成电路上的能够保持独立体系结构状态的任何逻辑,其中,独立保持的体系结构状态共享对执行资源的访问。如上所述,各逻辑处理器具有保持独立体系结构状态的一组体系结构状态寄存器;但是,体系结构状态中的每个共享对执行资源的访问。因此,在任何单个集成电路上,可能存在任何数量的核心和/或任何数量的逻辑处理器。为了说明,在论述用于事务执行的装置及方法时,在论述核心和/或逻辑处理器的操作的过程中会引用术语“处理器”。参照图2,描述集成电路的一个实施例,以便说明事务执行的一个具体实现。但是,显而易见,参照图2所述的方法及装置可在任何等级的系统中实现,例如在图5所示的系统中。在一个实施例中,集成电路205是能够无序推测的,在其中,指令能够以与程序中给出的不同的顺序执行。或者,处理器205是能够有序执行的,在其中,以原始程序顺序发出及执行指令。集成电路205可包括可能是核心或逻辑处理器的任何数量的处理器。例如,集成电路205具有八个核心,各核心具有两个逻辑处理器,它们允许在集成电路205上一次执行16个软件线程。因此,集成电路205通常称作多线程多核心处理器。在图2中,集成电路205被单独表示,以免影响对本专利技术的理解;但是,集成电路205可单独或者与其它处理器结合操作。集成电路205还可包括,但不要求包括,没有具体描绘的以下项的任一个或任何组合数据通路,指令通路,虚拟存储地址转换单元(转换缓冲器),算术逻辑单元(ALU),能够执行单个指令或多个指令以及能够对单个或多个数据操作数进行串行或并行运算的浮点计算单元,寄存器,中断控制器,高级可编程中断控制器(APIC),预取单元,指令重新排序单元,以及用于取或执行指令并对数据进行运算的其它任何逻辑。集成电路205说明前端210。前端210表示为包括指令取215、指令解码220和分支预测225。前端210不限于仅包括所示的逻辑,而是还可包括其它逻辑,诸如外部本文档来自技高网...

【技术保护点】
一种装置,包括:    由第一代理和远程代理共享的共享存储器;    执行事务的执行逻辑,所述事务包括多个指令;    事务跟踪逻辑,在所述多个指令执行期间跟踪所述远程代理对于从所述共享存储器加载的各地址以及要写入所述共享存储器的各地址进行的失效访问;以及    事务退出逻辑,用于(1)如果在所述事务执行期间所述事务跟踪逻辑没有跟踪到对于从所述共享存储器加载的各地址以及要写入所述共享存储器的各地址的失效访问,则退出所述事务,以及(2)如果在所述事务执行期间所述事务跟踪逻辑已经跟踪到对于从所述共享存储器加载的任何地址或者要写入所述共享存储器的任何地址的失效访问,则发起所述事务的重新执行。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:S科塔帕利JH克劳福德K维德
申请(专利权)人:英特尔公司
类型:发明
国别省市:US[美国]

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

1
相关领域技术
  • 暂无相关专利