[发明专利]使用存储的原子程序的可编程原子内存有效
| 申请号: | 201180064250.6 | 申请日: | 2011-12-07 |
| 公开(公告)号: | CN103299272A | 公开(公告)日: | 2013-09-11 |
| 发明(设计)人: | 本杰明·C·谢列布林;大卫·A·卡普兰;安东·切尔诺夫 | 申请(专利权)人: | 超威半导体公司 |
| 主分类号: | G06F9/38 | 分类号: | G06F9/38;G06F9/30;G06F9/46 |
| 代理公司: | 上海胜康律师事务所 31263 | 代理人: | 李献忠 |
| 地址: | 美国加利*** | 国省代码: | 美国;US |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 使用 存储 原子 程序 可编程 内存 | ||
发明背景
现代的计算机架构趋势已走向多重处理,其中单系统和/或处理器包括共享内存并且每个能够进行独立的并行执行的多个处理核心。如今,单芯片上具有2、4或8个处理核心的片上多处理器(CMP)或具有更多处理核心的通用图形处理单元(GPGPU)已相对普遍。此外,在将来每个芯片和/或系统上处理核心的数量可能甚至进一步增加。
为了利用现代处理器增大的并行能力,软件编程员会利用不同的同步设备,诸如支持指令集架构(ISA)的原子指令。处理核心可针对系统中的其它处理核心原子地执行这些指令,即使指令自身包含多个微指令。例如,x86架构中的原子指令CMPXCHG(比较和交换)是指示处理核心原子地比较给定内存位置的内容与给定值并且只要两个值相同就将内存位置的内容修改为给定新值的通用原子指令。
ISA有时提供限量的专用原子指令,诸如原子XADD、BTS等。在由编程员所要的特定功能不存在专用指令的情况下,编程员可以尝试使用通用指令(诸如CMPXCHG)建立这个逻辑。然而,这些建立可能是复杂、难以实施的,并且执行起来缓慢。
实施方案概述
一种多处理核心系统中的处理核心被配置来执行指令序列作为单原子内存事务。处理核心验证序列满足一组一个或多个原子性标准,包括原子序列中的指令不指示处理核心访问共享内存。在验证序列后,处理核心执行序列作为单原子内存事务。所述执行可以包括锁定存储共享内存数据的源缓存线,执行验证的指令序列,将原子序列的结果存储到源缓存线中,和对源缓存线解锁。在某些实施方案中,处理核心在保证转发进度下执行序列。
在某些实施方案中,微代码验证代理可以执行验证并将验证序列的副本存储在受保护内存区中。在这些实施方案中,验证代理可以将识别符返回到用户代码,其中用户代码可随后使用识别符调用原子序列。
附图简述
图1是示出了根据某些实施方案的被配置来在保证转发进度下验证和执行原子序列指令的计算机系统的方框图。
图2是示出了根据某些实施方案的用于原子地执行自定义微指令序列的方法的流程图,其中指令序列符合给定原子性标准。
图3是示出了根据某些实施方案的处理核心使用指令执行流水线中的运行时间验证单元验证和执行原子序列指令指令的方法的流程图。
图4是示出了根据某些实施方案的处理核心使用预执行验证(例如,微编码的验证代理)验证和执行原子序列指令的方法的流程图。
图5是示出了根据某些实施方案的用于在运行时间前使用微编码的验证代理验证和执行原子序列的更详细方法的方法的流程图。
图6是示出了根据某些实施方案的包括被配置来代表一个或多个处理核心和/或装置执行原子序列指令的专用处理器的系统的方框图。
图7是示出了根据某些实施方案的用于使用原子程序执行单元执行原子序列的方法的流程图。
图8是示出了根据某些实施方案的被配置来使用代码验证代理执行原子序列指令作为单原子事务的计算机系统的方框图,如本文描述。
实施方案详述
本说明书包括对“一个实施方案”或“实施方案”的参考。短语“在一个实施方案中”或“在实施方案中”的出现无需指相同实施方案。特定特征、结构或特性可以按与本公开一致的任何合适方式进行组合。
术语:以下段落提供存在于本公开(包括随附权利要求书)中的术语的定义和/或语境。
“包括”:这个术语是开放式的。如随附权利要求书中使用,这个术语不排除额外结构或步骤。考虑引用“包括一个或多个处理单元的装置”的权利要求,这个权利要求不排除包括额外组件(例如,网络接口单元、图形电路等)的装置。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于超威半导体公司,未经超威半导体公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201180064250.6/2.html,转载请声明来源钻瓜专利网。





