[发明专利]基于辅助线程实现事务存储系统的方法和装置有效
申请号: | 200910005955.5 | 申请日: | 2009-01-22 |
公开(公告)号: | CN101788922A | 公开(公告)日: | 2010-07-28 |
发明(设计)人: | 王华勇 | 申请(专利权)人: | 国际商业机器公司 |
主分类号: | G06F9/46 | 分类号: | G06F9/46 |
代理公司: | 北京市中咨律师事务所 11247 | 代理人: | 于静;李峥 |
地址: | 美国*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 辅助 线程 实现 事务 存储系统 方法 装置 | ||
1.一种在支持同时多个硬件线程的处理器中执行事务的方法,包括 以下步骤:
建立用于执行事务的主软件线程和用于执行屏障功能的辅助软件线 程,利用所述多个硬件线程执行所述主软件线程和所述辅助软件线程;
执行所述主软件线程;
如果所述主软件线程遇到需要读取/写入数据的事务加载/存储操作,则 判断是否需要执行屏障功能;
如果需要执行屏障功能,则:
停止所述主软件线程;
激活所述辅助软件线程以执行所述屏障功能;
响应于所述辅助软件线程执行所述屏障功能完成,退出所述辅助 软件线程;以及
继续执行所述主软件线程。
2.根据权利要求1的方法,在所述多个硬件线程的每个硬件线程中 包括:写签名和读签名,用于存储所述主软件线程曾经读取/写入的数据的 物理地址。
3.根据权利要求2的方法,其中判断是否需要执行屏障功能包括:
如果要读取/写入的数据没有命中高速缓存,并且要写入的数据没有命 中该硬件线程的写签名,或者要读取的数据没有命中该硬件线程的读签名 和写签名,则需要执行所述屏障功能。
4.根据权利要求3的方法,还包括所述主软件线程利用共享寄存器 与所述辅助软件线程进行通信。
5.根据权利要求4的方法,所述共享寄存器包括:
事务地址寄存器TAR,用于保存读取/写入的数据的物理地址;
事务数据寄存器TDR,用于保存来自高速缓存中的高速缓存行的数 据;
事务运行寄存器TOR,用于保存事务操作代码;以及
事务ID寄存器TIR,用于保存设置TOR的硬件线程ID。
6.根据权利要求5的方法,其中所述主软件线程利用共享寄存器与 所述辅助软件线程进行通信包括:
将要读取/写入数据的物理地址复制到TAR;
在要写入时将要写入的数据复制到TDR;
将硬件线程ID复制到TIR;以及
根据要读取/写入的状态对应地设置TOR的状态。
7.根据权利要求1的方法,其中所述辅助软件线程执行所述屏障功 能包括:所述辅助软件线程通过检索锁定表来检测冲突。
8.根据权利要求7的方法,其中所述锁定表存储在存储器中。
9.根据权利要求7的方法,其中如果检测到冲突,则所述辅助软件 线程根据管理策略中止发生冲突的事务。
10.根据权利要求7的方法,其中如果没有检测到冲突,则所述辅助 软件线程执行:
在要读取数据时,如果所述主软件线程具有要读取数据的物理地址的 读取许可,则所述辅助软件线程不执行任何处理;
如果所述主软件线程具有要读取数据的物理地址的写入许可,则所述 辅助软件线程将所述锁定表中的数据和硬件线程ID写入高速缓存行中; 以及
如果所述辅助软件线程没有在所述锁定表中找到与要读取数据的物理 地址对应的项目,则在所述锁定表中插入新的项目,以表示所述主软件线 程具有读取许可;
在要写入数据时,如果所述主软件线程具有要写入数据的物理地址的 读取许可,则所述辅助软件线程将所述读取许可升级为写入许可,然后所 述辅助软件线程通过正常加载操作从事务地址寄存器TAR读取与物理地 址对应的存储器块中的数据,并在对应的锁定表的项目中记录所读取的数 据,从而进行更新;
如果所述主软件线程具有要写入数据的物理地址的写入许可,则所述 辅助软件线程将对应数据从事务数据寄存器TDR写入对应的锁定表的项 目中;以及
如果所述辅助软件线程在所述锁定表中没有找到与要写入数据的物理 地址对应的项目,则向所述锁定表插入新的项目,以表示所述主软件线程 具有写入许可。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国际商业机器公司,未经国际商业机器公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910005955.5/1.html,转载请声明来源钻瓜专利网。