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

自适应处理远程原子执行制造技术

技术编号:4040288 阅读:182 留言:0更新日期:2012-04-11 18:40
本发明专利技术的名称为自适应处理远程原子执行在一个实施例中,一种方法包括接收用于在处理器核中解码的指令并基于是否预测到争用而用多个行为之一动态处理指令。如果没预测到争用,则在核中执行指令,并且如果预测到争用,则与指令相关联的数据被编组,并被发送到所选的远程代理以便执行。描述了其它实施例,并要求了其权利。

【技术实现步骤摘要】

本专利技术涉及自适应处理远程原子执行
技术介绍
在许多指令集架构(ISA)中,存在指令以处理所谓的原子序列。在原子序列中,代 理以如下方式执行对数据的操作确保代理具有数据的独占拥有权,直到执行完成。通常这 可通过锁定序列来实现,其中锁变量与数据相关联,使得代理在访问要对其操作的数据之 前首先获得对锁变量的独占访问,以阻止其它代理在该操作期间访问对应的数据。有两种典型的方法用于处理争用的原子,即本地操作或远程执行(remote execution)。第一种方法对于执行原子操作是快速的,但是由于高速缓存行跳动 (cacheline bouncing)和一致性而具有高开销成本,对于争用数据导致低带宽。第二种方 法对于原子操作具有差的等待时间,但是对于争用数据具有高带宽。原子序列上的管芯上(On-die)争用(利用临界区域或其它构造)通常留给编程 器明确管理。通过仔细检测(instrumentation)原始程序,降低原子操作的粒度并且可最 小化争用。然而,这种性能调整工作一般不可从一类机器缩放到另一类。而且,仔细检测需 要编程器额外注意以开发考虑了原子操作的代码,这通常需要额外的编程器工作,并且无 法很好地适合不同的机器。例如,在具有两个核的处理器中可避免争用的编程器编写的代 码可能无法很好地适合于(scale very well to)许多核的实现,其中存在其中每个都可执 行多线程的许多核。
技术实现思路
本专利技术的第一方面在于一种方法,包括接收用于在处理器的第一核中解码的第 一指令,并相对于所述第一指令确定是否预测到争用;以及用多个行为之一动态处理所述 第一指令,包括如果没预测到争用,则在所述第一核中执行所述第一指令,并且,如果预测 到争用,则在所述第一核中编组与所述第一指令相关联的数据,并将具有所编组数据的远 程执行请求发送到所选远程代理以便执行所述第一指令。本专利技术的第二方面在于一种设备,包括多核处理器,包含多个核,其中每个核 都包含前端以解码指令并相对于所述指令确定是否预测到争用;执行逻辑,如果没预测到 争用,则本地执行所述指令,并且如果预测到争用,则编组与所述指令相关联的数据,并将 具有所编组数据的远程执行请求发送到所选远程代理以便执行所述指令;以及预测器,具 有多个项目,每个项目用于存储有关在执行期间是否要争用与所述项目相关联的指令的预 测。本专利技术的第三方面在于一种系统,包括处理器,包含具有前端,解码指令并相 对于所述指令确定是否预测到争用;动态执行逻辑,如果没预测到争用,则本地执行所述指 令,否则编组与所述指令相关联的数据,并将具有所编组数据的远程执行请求发送到所选 远程代理以便执行所述指令;以及预测器,具有多个项目,每个项目用于存储有关在执行期间是否要争用与所述项目相关联的指令的预测;目录,具有多个项目,每个项目用于存储有 关所述系统的高速缓存中所存储的高速缓存行的标签信息,每个目录还包含具有各与核相 关联的多个核字段的争用矢量,每个核字段包含第一指示符和第二指示符,各用于指示相 关联的核在时段内利用原子操作访问所述高速缓存行;以及动态随机存取存储器(DRAM), 耦合到所述目录和所述处理器。附图说明图1是根据本专利技术一个实施例的预测器的框图。图2是根据本专利技术一个实施例基于争用预测来处理指令的流程图。图3是根据本专利技术一个实施例的争用标签矢量(contention tag vector)的框 图。图4A是根据本专利技术一个实施例处理操作的远程执行的流程图。图4B是根据本专利技术一个实施例在目录中处理远程执行的流程图。图4C-4E例证了根据本专利技术一个实施例在拥有者核中处理远程执行的流程图。图5是根据本专利技术一个实施例的处理器的框图。图6是根据本专利技术一个实施例的系统的框图。具体实施例在各种实施例中,透明微架构机构可动态检测和优化争用的原子操作(诸如前缀 为LOCK的指令)。具体地说,当在程序执行的全部时间中锁经历了变化级别的争用时,实施 例可以对编程器、操作系统和指令集架构(ISA)透明的方式自适应地在模式之间切换。在一个实现中,可使用如下组件实现动态锁操作(i)基于预测来动态识别争用 行为的机构;(ii)在指令解码期间对于任何给定指令在争用/不争用行为之间切换以选择 最有效执行的机构;(iii)提供反馈以更新预测器系统的机构;以及(iv)用于原子操作的 代理执行(proxy-execution)的机构。在指令解码的时候,程序计数器(EIP)可用作争用预测器的查找值。在一个实施 例中,预测器可以是预测是否将争用指令的操作的表。在一个实现中,可为每个指令给出预 测,但是仅某些指令将使用该预测。作为一个示例,在英特尔 架构(IA)平台中,这些指令 可以是前缀为LOCK的指令,诸如交换(xchg)、交换-加(xadd)、递增(inc)和递减(dec)。 如果该核支持多于1个硬件上下文的话,为了访问该表,可对EIP进行哈希操作(hashed) 以在预测器表中创建索引,并与硬件线程标识符(ID)位级联。然后将参考这个表以确定是 否预期争用该操作。现在参考图1,示出了根据本专利技术一个实施例的预测器的框图。如图1所示,预测 器10可采取可使其位于与处理器核相关联的高速缓冲存储器的专用存储区(storage)中 的表的形式。在图1的实施例中,预测器10可包含多个项目,每个项目存储提供预测的一个 或多个位。在一个实施例中,每个项目可存储单个位以指示存在或不存在争用(例如设置 状态以指示争用,而重置状态以指示没有争用)。然而,在其它实施例中,可能存在多个位, 其中最高有效位(MSB)指示该预测,而其它位充当饱和计数器。在图1所示的实施例中,可 使用通过级联程序计数器的至少一些位可获得的索引20来访问预测器10,这些位可以是5程序计数器15的散列位(hashedbits)子集,连同线程标识符(TID) 18的位,但是也可以实 现索引和访问预测器10的其它方法。基于由预测器表提供的预测,核可以给定方式处理指定指令。在一个实施例中, 预测可用于确定适当的指令执行。例如,预测可以操纵核在处理指令时所用的微代码编程 (或等效物)。注意,本文所描述的实施例针对其中指令解码器确定使用哪种模式的流水线 (并由此不具有可用存储器操作数的地址)。然而,在其它实施例中,以后流水线可例如用 微代码进行争用/不争用判定。在这种实施例中,以后可使预测器位于流水线中,而不是指 令解码器中。备选地,流水线可具有操作数地址,并将那个值包含在预测器表的散列中。现在参考图2,示出了根据本专利技术一个实施例基于争用预测来处理指令解码和不 同指令执行行为之间切换的流程图。如图2中所示,方法100可在处理器核中指令解码期 间开始执行。如所看到的,方法100可开始于计算要解码的下一指令的下一指令指针(块 110)。可以取这个下一指令(块115)。例如,可以从指令高速缓存中取该指令,或者如果指 令高速缓存中还未存在该指令,则可以从存储器层级(memory hierarchy)的另外部分获得 该指令。取指令的同时,也可发生预测器查找(块120)。使用计算的EIP,可生成索引,并 将其用于访问争用预测器以获得对应指令的预测。仍参考图2,当取指令时,可以在解码期间确定该指令是否本文档来自技高网...

【技术保护点】
一种方法,包括:接收用于在处理器的第一核中解码的第一指令,并相对于所述第一指令确定是否预测到争用;以及用多个行为之一动态处理所述第一指令,包括:如果没预测到争用,则在所述第一核中执行所述第一指令,并且,如果预测到争用,则在所述第一核中编组与所述第一指令相关联的数据,并将具有所编组数据的远程执行请求发送到所选远程代理以便执行所述第一指令。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:JB弗里曼ET格罗乔夫斯基T胡安AT富尔塞斯J梅吉亚R孙达拉拉曼E斯普兰格尔R埃斯帕萨R拉瓦
申请(专利权)人:英特尔公司
类型:发明
国别省市:US[美国]

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

1