[发明专利]用于在事务性存储器系统中实现强原子性的方法、装置和系统有效
申请号: | 201310487913.6 | 申请日: | 2008-12-30 |
公开(公告)号: | CN103544054B | 公开(公告)日: | 2017-01-11 |
发明(设计)人: | B·萨哈;A-R·阿德尔-塔巴塔拜;C·王;T·史佩斯曼 | 申请(专利权)人: | 英特尔公司 |
主分类号: | G06F9/46 | 分类号: | G06F9/46 |
代理公司: | 上海专利商标事务所有限公司31100 | 代理人: | 何焜 |
地址: | 美国加利*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 事务性 存储器 系统 实现 原子 方法 装置 | ||
本发明专利申请是2008年12月30日提交的申请号为200810188987.9,名称为“用于在事务性存储器系统中实现强原子性的机制”的发明专利申请的分案申请。
技术领域
本发明涉及处理器执行领域,具体地涉及指令组的执行。
背景技术
半导体处理和逻辑设计方面的进步已允许集成电路器件上可存在的逻辑量上的增加。结果,计算机系统配置已经从系统中的单个或多个集成电路演进成存在于个体集成电路上的多核及多逻辑处理器。处理器或集成电路一般包括单个处理器管芯,其中该处理器管芯可包括任意数量的核或逻辑处理器。
集成电路上数量不断增加的核和逻辑处理器使更多的软件线程能够并发执行。然而,可同时执行的软件线程数量上的增加产生了关于使诸软件线程间共享的数据同步的问题。用来访问多个核或多个逻辑处理器系统中的共享数据的一种常用的解决方案包括使用锁来保证对共享数据的多个访问上的互斥。然而,不断增长的执行多个软件线程的能力潜在可能导致错误的竞争和执行的串行化。
例如,考虑持有共享数据的散列表。利用锁系统,程序员可对整个散列表加锁,从而允许一个线程访问整个散列表。然而,其它线程的吞吐量和性能潜在可能受到不利的影响,因为它们不能访问散列表中的任何项,直到锁被释放。或者,散列表中的每个项可被加锁。然而,这增加了编程复杂度,因为程序员不得不计及散列表内更多的锁。
另一种数据同步技术包括使用事务性存储器(TM)。通常事务性执行包括投机地执行多个微操作、操作、或指令的编组。在以上的示例中,两个线程皆在散列表内执行,且其访问被监控/跟踪。如果两个线程皆访问/变更相同的项,则这两个事务之一可被中断以解决此冲突。一种类型的事务性执行包括软件事务性存储器(STM),其中访问被跟踪,冲突解决、中断任务、和其它事务性任务以软件方式来执行。
以前,为了确保事务性存储器操作与非事务性存储器操作之间不发生运行时冲突,编译器将每个非事务性存储器操作视为单个操作事务。换言之,事务性操作被插在非事务性存储器操作处以确保不发生运行时冲突。然而,在非事务性存储器操作处执行周到的屏障潜在可能浪费执行周期。
发明内容
本发明的至少一个方面提出了一种用于在事务性存储器系统中提供强原子性的装置,包括:用于执行多个事务性操作和多个非事务性操作的处理元素单元,其中所述处理元素单元将在功能内执行所述多个非事务性操作中的非事务性加载操作,所述非事务性加载操作在被执行时用于从存储器位置加载;以及与所述处理元素单元相关联的用于确定从所述功能开始起所述存储器位置是否已被更新过的逻辑单元;其中所述处理元素单元响应于确定从所述功能开始起所述存储器位置尚未被更新过而不执行锁操作,所述锁操作在被执行时用于确定与所述存储器位置相关联的元数据位置是否持有解锁值。
本发明的另一个方面提出了一种用于在事务性存储器系统中提供强原子性的方法,包括:检测功能中的非事务性加载操作,所述非事务性加载操作在被执行时从存储器位置加载;以及响应于在所述功能中检测到所述非事务性加载操作而插入多个强原子性操作,所述多个强原子性操作在被执行时用于确定从所述功能开始起是否已有事务启动更新存储器位置。本发明的另一个方面又提出了一种用于在事务性存储器系统中提供强原子性的方法,包括:在功能中检测非事务性加载操作,所述非事务性加载操作在被执行时用于从存储器位置加载;以及响应于在所述功能中检测到所述非事务性加载操作而插入多个强原子性操作,所述多个强原子性操作在被执行时用于确定从所述功能开始起所述存储器位置是否已被更新过。
本发明的还有一个方面提出了一种用于在事务性存储器系统中提供强原子性的装置,包括:用于检测功能中的非事务性加载操作的装置,所述非事务性加载操作在被执行时从存储器位置加载;以及用于响应于在所述功能中检测到所述非事务性加载操作而插入多个强原子性操作的装置,所述多个强原子性操作在被执行时用于确定从所述功能开始起是否已有事务启动更新存储器位置。
本发明的进一步方面提出了一种用于在事务性存储器系统中提供强原子性的装置,包括:用于在功能中检测非事务性加载操作的装置,所述非事务性加载操作在被执行时用于从存储器位置加载;以及用于响应于在所述功能中检测到所述非事务性加载操作而插入多个强原子性操作的装置,所述多个强原子性操作在被执行时用于确定从所述功能开始起所述存储器位置是否已被更新过。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于英特尔公司,未经英特尔公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310487913.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:安全输出电路的自检方法
- 下一篇:一种GIS用PT感应耐压二次可调补偿电感