【摘要】 本发明提供一种事务性内存的实现方法,该方法包括:将一段程序语句编译成字节码;从字节码中识别并提取与事务相关的字节码,并对其中的共享对象进行标记;将与事务相关的字节码编译成事务版本的本地代码,根据所述字节码的语义在编译结果后添加TxLoad指令或TxStore指令或对软件事务性内存库接口的调用。本发明采用了TMSI协议来加速读写拦截和冲突检测,有效于降低纯软件事务性内存的开销,并且因为无需实现事务性内存的全部功能和纯硬件模式相比,硬件的复杂性较小。 【专利类型】发明授权 【申请人】中国科学院计算技术研究所 【申请人类型】科研单位 【申请人地址】100190 北京市海淀区中关村科学院南路6号 【申请人地区】中国 【申请人城市】北京市 【申请人区县】海淀区 【申请号】CN200810239010.5 【申请日】2008-12-04 【申请年份】2008 【公开公告号】CN101425052B 【公开公告日】2010-06-09 【公开公告年份】2010 【授权公告号】CN101425052B 【授权公告日】2010-06-09 【授权公告年份】2010.0 【IPC分类号】G06F13/42 【发明人】范彬; 吴承勇 【主权项内容】一种事务性内存的实现方法,在具有多个处理器核的计算机上实现,所述处理器核包括私有的高速缓存,在所述计算机上有供所有处理器核访问的共享内存,在所述处理器核的微指令控制器中还定义了TxLoad指令以及TxStore指令;在所述计算机上还安装有软件事务性内存库;该方法包括:步骤1)、将一段程序语句编译成字节码;步骤2)、从所述字节码中识别并提取与事务相关的字节码,并对其中的共享对象进行标记;步骤3)、即时编译器将与事务相关的字节码编译成事务版本的本地代码;在所述的编译过程中,根据所述字节码的语义在相应字节码的编译结果后添加TxLoad指令或TxStore指令或对软件事务性内存库接口的调用;其中,所述的TxLoad指令命令执行该指令的处理器核向该处理器核的高速缓存控制器发送PrTxnRd消息,并从高速缓存中读取一个指针长度的数据;所述的PrTxnRd消息用于根据数据块的当前状态对所述状态进行调整,并向总线发送用于对TM状态的块做检测冲突的BusTxnRd消息;所述的TxStore指令命令执行该指令的处理器核向该处理器核的高速缓存控制器发送PrTxnWr消息,并将一个指针长度的数据写入高速缓存;所述的PrTxnWr消息用于写入数据,根据数据块的当前状态对所述状态进行调整,并向总线发送用于对TM状态和TS状态的块做冲突检测的BusTxnWr消息。 【当前权利人】蓝卫平 【统一社会信用代码】12100000400012342E 【引证次数】3.0 【他引次数】3.0 【家族引证次数】3.0 【家族被引证次数】10