[发明专利]在软件事务内存系统中保护共享变量有效

专利信息
申请号: 200680042986.2 申请日: 2006-12-06
公开(公告)号: CN101310258A 公开(公告)日: 2008-11-19
发明(设计)人: B·萨哈;A-R·阿德-塔巴塔巴伊 申请(专利权)人: 英特尔公司
主分类号: G06F9/52 分类号: G06F9/52
代理公司: 永新专利商标代理有限公司 代理人: 王英
地址: 美国加*** 国省代码: 美国;US
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 软件 事务 内存 系统 保护 共享 变量
【权利要求书】:

1.一种用于修改在任何基于软件的事务内存所定义的临界区域之外发 生的、对一变量的访问的方法,所述变量是在程序的基于软件的事务内存 系统所定义的临界区域中至少被访问一次的变量,所述方法包括:

开始基于硬件的事务内存事务;

在所述基于硬件的事务内存事务内,检查所述变量当前是否被基于软 件的事务内存事务所拥有;

如果所述变量当前不被基于软件的事务内存事务所拥有,则执行所述 访问,然后提交所述基于硬件的事务内存事务;以及

如果所述变量当前被基于软件的事务内存事务所拥有,则执行下列操 作中的一个:

引发指示错误的异常;

等待限定的时间,然后检查所述变量当前是否被基于软件的事务 内存事务所拥有,然后如果所述变量当前被基于软件的事务内存事务所拥 有,则引发第一异常;

重复限定的时间的等待以及之后的对所述变量当前是否被基于软 件的事务内存事务所拥有的检查,直到所述变量当前不被基于软件的事务 内存事务所拥有为止。

2.如权利要求1所述的方法,还包括:如果在所述基于硬件的事务内 存事务期间发生临界事件则引发第二异常,其中所述临界事件是需要利用 所述基于硬件的事务内存事务的中止处理程序进行处理的事件。

3.如权利要求2所述的方法,其中,所述临界事件还包括:利用所述 基于硬件的事务内存事务之外的处理,对所述变量的所有权记录或所述变 量本身的访问。

4.如权利要求1所述的方法,其中,修改对所述变量的所述访问的操 作还包括以下操作中的至少一个:

利用包括以下指令的代码,替代引用对应于所述变量的地址的加载指 令,该代码所包括的指令用于:

开始基于硬件的事务内存事务;

在所述基于硬件的事务内存事务内,检查所述变量当前是否被基 于软件的事务内存事务所拥有;以及

如果所述变量当前不被基于软件的事务内存事务所拥有,则执行 引用对应于所述变量的所述地址的所述加载指令,然后提交所述基于硬件 的事务内存事务;以及

利用包括以下指令的代码,替代引用对应于所述变量的地址的写入指 令,该代码所包括的指令用于:

开始基于硬件的事务内存事务;

在所述基于硬件的事务内存事务内,检查所述变量当前是否被基 于软件的事务内存事务所拥有;以及

如果所述变量当前不被基于软件的事务内存事务所拥有,则执行 引用对应于所述变量的所述地址的所述写入指令,然后提交所述基于硬件 的事务内存事务。

5.如权利要求1所述的方法,其中,引发所述第一异常的操作还包括:

提交所述基于硬件的事务内存事务;以及

引发数据竞争异常。

6.如权利要求2所述的方法,其中,引发所述第二异常的操作还包括:

提交所述基于硬件的事务内存事务;以及

引发数据竞争异常。

7.一种用于修改在任何基于软件的事务内存所定义的临界区域之外发 生的、对一变量的访问的系统,所述变量是在程序的基于软件的事务内存 系统所定义的临界区域中至少被访问一次的变量,所述系统包括:

用于开始基于硬件的事务内存事务的模块;

用于在所述基于硬件的事务内存事务内,检查所述变量当前是否被基 于软件的事务内存事务所拥有的模块;

用于如果所述变量当前不被基于软件的事务内存事务所拥有,则执行 所述访问,然后提交所述基于硬件的事务内存事务的模块;以及

用于如果所述变量当前被基于软件的事务内存事务所拥有,则执行下 列操作中的一个的模块:

引发指示错误的异常;

等待限定的时间,然后检查所述变量当前是否被基于软件的事务 内存事务所拥有,然后如果所述变量当前被基于软件的事务内存事务所拥 有,则引发异常;

重复限定的时间的等待以及之后的对所述变量当前是否被基于软 件的事务内存事务所拥有的检查,直到所述变量当前不被基于软件的事务 内存事务所拥有为止。

8.如权利要求7所述的系统,还包括:

用于利用包括以下指令的代码,替代引用对应于所述变量的地址的加 载指令的模块,该代码所包括的指令用于:

开始基于硬件的事务内存事务;

在所述基于硬件的事务内存事务内,检查所述变量当前是否被基 于软件的事务内存事务所拥有;以及

如果所述变量当前不被基于软件的事务内存事务所拥有,则执行 引用对应于所述变量的所述地址的所述加载指令,然后提交所述基于硬件 的事务内存事务;以及

用于利用包括以下指令的代码,替代引用对应于所述变量的地址的写 入指令的模块,该代码所包括的指令用于:

开始基于硬件的事务内存事务;

在所述基于硬件的事务内存事务内,检查所述变量当前是否被基 于软件的事务内存事务所拥有;以及

如果所述变量当前不被基于软件的事务内存事务所拥有,则执行 引用对应于所述变量的所述地址的所述写入指令,然后提交所述基于硬件 的事务内存事务。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于英特尔公司,未经英特尔公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/200680042986.2/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top