[发明专利]一种硬件事务内存系统中避免数据移动的方法有效
申请号: | 201010231134.6 | 申请日: | 2010-07-23 |
公开(公告)号: | CN101923486A | 公开(公告)日: | 2010-12-22 |
发明(设计)人: | 刘景宁;冯丹;童薇;施展;田磊;晏志超;谭玉娟 | 申请(专利权)人: | 华中科技大学 |
主分类号: | G06F9/46 | 分类号: | G06F9/46;G06F9/38 |
代理公司: | 华中科技大学专利中心 42201 | 代理人: | 朱仁玲 |
地址: | 430074 湖北*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 硬件 事务 内存 系统 避免 数据 移动 方法 | ||
技术领域
本发明属于计算机系统结构领域,具体涉及一种利用重定向方法扩展事务内存系统中读、写操作的执行路径,避免数据的移动,节约了数据移动的时间,从而达到提高了系统的性能的目的。
背景技术
由于功耗的原因,处理器厂商都转型利用片上多核的方式提高处理器的性能,运行在多核上的多个线程在进行数据通信的时候,需要格外小心,防止出现数据修改不一致的现象,传统的锁机制,可以确保系统的正确性,但是抑制了系统的并发性,事务内存系统(TransactionalMemory)采用事务的概念,封装指定的代码段,使之具备原子性和隔离型,即降低用户编程的复杂度,同时也提供了较好的并发性。
事务内存系统是一种并行编程模型,其实现涉及冲突检测,冲突解决和版本管理这三个主要功能模块,其中版本管理是为了管理事务执行前后修改的数据版本。传统的数据版本管理方式采用如下所述的两种模式管理数据,一种是将事务修改的数据缓存到一个容量有限的缓存中,当事务提交的时候,将该缓存数据写回到原始地址中,而当事务撤销时,将该缓存中的数据置为无效状态;另外一种是修改数据前,将原始地址的旧数据读出来,保存到另外一个区域中,然后将事务修改的数据写到原始地址中,当事务提交时,将保存到另外一个区域中的旧数据丢弃,而当事务撤销时,则需要将保存的旧数据重新写回到原始地址中。可以看出,当事务撤销时,采用前者可以避免数据移动;当事务提交时,采用后者可以避免数据移动。同时需要注意的是,前者还有一个缺点即在于内部缓存的空间是有限的,当缓存空间不够用的时候,不论事务提交还是撤销,都需要额外的数据移动。所以这两种方式在虽然在一方面可以避免数据的移动,但是在另外一方面却会带来额外的数据移动。
这种数据移动会带来一系列副作用,可以总结出,额外的数据移动带来的副作用包括以下几个部分:1.本身数据移动将延长事务执行的时间,2.由于数据移动过程中,不能释放对共享数据的所有权,会导致其它线程对共享数据访问的冲突,阻止了其它事务的执行,3.延长事务的执行时间,可能导致其它的原本不会出现冲突的事务由于冲突被撤销,浪费了之前执行的工作。特别是在未来众核处理器环境下,多线程之间内存竞争的情况更加严重的条件下,额外的数据移动时间将会严重制约系统的并发性。
发明内容
本发明的目的在于提出一种硬件事务内存模型中避免数据移动的方法,在事务内执行写操作的时候,直接将写操作写的内容写到一个重定向的地址中,同时将重定向信息写入重定向的表格中,最后根据事务最终执行的情况(事务提交或事务撤销)更新重定向表格中的重定向信息,利用重定向信息协助访问所需的数据,这样任何情况下只需要一次的写数据操作,减少了数据移动的开销,可以挖掘出更大的并发性,提高系统的性能。
本发明包括一个地址重定向表格、事务内对写操作的处理步骤、事务内对读操作的处理步骤、事务外对读操作的处理步骤和事务外对写操作的处理步骤。本发明利用地址重定向表格,将事务内存中运行事务的写操作重定向到一个空闲的地址空间中,在重定向表格中记录下原始地址和重定向地址,原始地址用来保存事务操作之前的数据的值,重定向地址用来保存事务操作修改后的数据的值。当本事务正常提交的时候,则将以后对原始地址的访问重定向到重定向地址,如果事务遇到冲突需要撤销,则将重定向表格中的相关条目清空,后续操作直接访问原始地址。不论事务是提交还是撤销,事务内写操作都仅仅进行一次写操作,避免了写相同地址空间时需要保存原始数据而造成的数据移动。
事务内存中对数据写操作重定向后,后续数据访问需要确定访问地址是否被重定向,以确保后续操作访问到实际需要的数据,这就包括事务内对读操作的处理步骤,事务外对读、写操作的处理步骤。由于事务在执行过程中,其对系统的修改对外是不可见的,事务提交时,全部修改变为可见,而当事务撤销时,所有的修改都要放弃。
实现本发明的目的所采用的具体技术方案如下:
一种硬件事务内存系统中避免数据移动的方法,利用地址重定向表格,将事务内存中运行事务的写操作重定向到一个空闲的地址空间中,并在所述重定向表格中记录下原始地址和重定向地址,原始地址用来保存事务操作之前的数据的值,重定向地址用来保存事务操作修改后的数据的值,该方法具体步骤如下:
(1)检查重定向表格,确认写操作访问的地址是否在全局可见的已经提交的重定向条目和本事务预测添加的重定向条目的原始地址集合的范围中;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华中科技大学,未经华中科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010231134.6/2.html,转载请声明来源钻瓜专利网。