【技术实现步骤摘要】
本专利技术涉及处理器执行领域,特别涉及成组指令的执行。
技术介绍
半导体工艺和逻辑设计中的进步己使得可在集成电路设备中提 供的逻辑的数量得以增加。因此,计算机系统配置己经从一个系统中 的单一或多个集成电路演进到在单个集成电路上提供多个核心和多 个逻辑处理器。 一个处理器或集成电路典型地包括单个处理器管芯(die),其中该处理器管芯可以包括任意数量的核心或逻辑处理器。集成电路上不断增加的核心和逻辑处理器数量使得能够执行更 多的软件线程。然而,可以被同时执行的软件线程数量的增加已经产 生了对软件线程之间共享的数据进行同步的问题。在多核心或多逻辑 处理器系统中访问共享数据的一种通常方案包括,使用锁来确保对共 享数据的多个访问之间的互斥。然而,不断增加的执行多个软件线程 的能力将可能会导致错误的争用和执行的串行化。例如,考虑一个持有共享数据的哈希表。利用锁系统,程序员可 以锁住整个哈希表,允许一个线程访问整个哈希表。然而,其它线程 的吞吐量和性能将可能会受到负面影响,原因在于它们无法访问该哈 希表中的任何条目,直到该锁被释放。作为选择,可以对哈希表中的 每个条目加锁。然而,这增加了编程的复杂性,因为程序员不得不考 虑在一个哈希表内的更多的锁。另一种数据同步技术包括使用事务存储器(transactional memory,TM)。通常事务执行包括推测地执行一组的多个微操作、操作或指令。 在上述例子中,两个线程都在该哈希表内执行,而它们的访问被监视 /跟踪。如果两个线程都访问/改变同一条目,则可以中止其中一个事 务以解决冲突。 一种事务执行包括软件事务存储器(ST ...
【技术保护点】
一种方法,包括: 响应于开始执行第一事务,在与所述第一事务相关联的第一局部时间戳中存储全局时间戳值; 响应于遇到被包括在所述第一事务中、且涉及第一地址的当前的读操作,如果与所述第一地址相关联的当前版本大于所述局部时间戳,则验证所述第一事务中的多个先前的读操作。
【技术特征摘要】
US 2006-12-28 11/648,0121、一种方法,包括响应于开始执行第一事务,在与所述第一事务相关联的第一局部时间戳中存储全局时间戳值;响应于遇到被包括在所述第一事务中、且涉及第一地址的当前的读操作,如果与所述第一地址相关联的当前版本大于所述局部时间戳,则验证所述第一事务中的多个先前的读操作。2、 如权利要求1所述的方法,其中,响应于遇到所述当前的读 操作进一步检查所述第一地址是否未加锁,并且响应于所述第一地址 未加锁而记录所述当前版本。3、 如权利要求2所述的方法,进一步包括 执行所述当前的读操作;以及 在执行所述当前的读操作之后,检査与所述第一地址相关联的后续版本,以及 如果所述后续版本不同于所述当前版本,则中止所述第一事务。4、 如权利要求3所述的方法,进一步包括响应于遇到涉及所 述第一地址的写操作,获取与所述第一地址相关联的元数据单元中的 锁。5、 如权利要求4所述的方法,进一步包括提交所述第一事务, 其中,提交所述事务包括响应于所述第一局部时间戳小于所述全局时间戳,验证所述第一 事务中的每个读操作,包括所述多个先前的读操作和所述当前的读操作;递增所述全局时间戳值,使其变为递增后的全局时间戳值;以及将所述元数据单元中的写版本设置为至少所述递增后的全局时 间戳值。6、 如权利要求1所述的方法,验证所述第一事务中的多个先前的读操作包括如果与所述多个先前的读操作相关联的多个已记录版 本对应于与所述多个先前的读操作相关联的多个当前版本,则确定所 述多个先前的读操作是有效的。7、 一种包括程序代码的制品,所述程序代码在被机器执行时,使得该机器执行以下操作检测事务中涉及一地址的加载操作;在所述加载操作之前插入要执行的一组读屏障操作,该组读屏障 操作在执行时用于获得与所述地址相关联的当前版本;在所述加载操作之后插入一组版本检査屏障操作,该组版本检查 屏障操作在执行时用于将与所述地址相关联的后续版本和所述当前 版本进行比较。8、 如权利要求7所述的制品,进一步包括在所述加载操作之前插入对读屏障函数的调用,其中,所述读屏 障函数包括所述一组读屏障操作;以及在所述加载操作之后插入对版本检査屏障函数的调用,其中,所 述版本检查屏障函数包括所述一组版本检查屏障操作。9、 如权利要求7所述的制品,其中,所述一组版本检查屏障操作包括第一版本检查屏障操作,在执行时用于获得所述后续版本; 第二版本检查屏障操作,在执行时用于确定所述后续版本是否不同于所述当前版本;以及对中止函数的调用,在响应于所述后续版本不同于所述当前版本而执行时用于中止所述事务。10、 如权利要求7所述的制品,进一步包括 检测开始事务指令;以及插入在所述事务开始时要执行的复制操作,所述复制操作在执行 时用于把全局时间戳复制到与所述事务相关联的局部时间戳。11、 如权利要求IO所述的制品,其中,所述一组读屏障操作包括第一读屏障操作,在执行时用于获得所述当前版本; 第二读屏障操作,在执行时用于确定所述当前版本是否大于所述局部时间戳;以及一组验证操作,在响应于所述当前版本大于所述局部时间戳而执 行时用于验证所述事务中的多个先前的读操作。12、 如权利要求11所述的制品,...
【专利技术属性】
技术研发人员:B萨哈,AR阿德塔巴塔巴伊,C王,Y吴,WY陈,
申请(专利权)人:英特尔公司,
类型:发明
国别省市:US[美国]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。