编译器支持下的推测多线程内存数据同步执行方法及装置制造方法及图纸

技术编号:3982754 阅读:468 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种编译器支持下的推测多线程内存数据同步执行方法及其装置,能在程序运行时对选定的读写内存指令进行同步,降低读后写数据依赖违规发生的次数,提高多线程同步操作的整体加速比。在获取候选读/写指令对之后,在读指令前添加一条stall指令,并将读指令替换为同步读指令synload,在写指令后添加一条或多条forward指令,在写指令所在线程的线程发起指令spawn后添加一条synset指令;最后经汇编链接生成可执行文件加载后在模拟器上运行;多线程程序以同步的方式推测执行,得到运行结果,并获得较高的加速比。

【技术实现步骤摘要】

本专利技术属于计算机领域,涉及线程级并行与推测多线程技术,特别涉及编译器支 持下对内存数据进行同步的推测多线内存数据同步执行方法及装置。
技术介绍
当前线程级并行已成为并行处理和并行计算的发展趋势。一方面,多核处理器已 经得到了普遍的应用。另一方面,片上多处理器因为其核之间更大的带宽和更低的通信延 迟,为线程级并行技术提供了巨大的应用平台。但是,处理器核的利用效率往往受到各种因 素的制约,而一些并行程序设计方法又给用户和编程人员带来了额外的负担。推测多线程 技术(SpMT,SpeculativeMultithreading)就是在这样的背景下被提出的。对于推测多线程技术,编译器采用激进的策略,自动将高级语言编写的串行程序 划分为多线程程序,并允许线程间存在一定的数据依赖。当多个线程并行执行时,由硬件动 态检测线程间的数据依赖违规,缓存推测数据并实现数据一致性的维护,通过线程的提交、 撤销、验证等机制,保证程序并行执行的正确性。线程间的数据依赖程度,是影响推测多线程执行效率的关键因素之一。线程间的 数据依赖主要包括寄存器数据依赖和内存数据依赖;这两种数据依赖在运行时都会发生读 后写(本文档来自技高网...

【技术保护点】
一种编译器支持下的推测多线程内存数据同步执行方法,其特征在于,多线程程序实现内存数据同步包括以下步骤:1)程序由硬件线程划分器划分生成多线程汇编程序后,作为硬件程序剖析器的输入,并在其上运行;2)硬件程序剖析器在运行程序时统计内存数据依赖违规情况,并将统计结果信息反馈给同步编译模块;3)同步编译模块读取统计结果信息,通过计算同步代价获取进行多线程同步操作的候选读/写指令对;然后通过数据流分析之后,在读指令前添加一条stall指令,并将读指令替换为同步读指令synload,在写指令后添加一条或多条forward指令;在写指令所在线程的线程发起指令spawn后添加一条synset指令;最后经汇编链...

【技术特征摘要】

【专利技术属性】
技术研发人员:赵银亮王旭昊韦远科宋少龙
申请(专利权)人:西安交通大学
类型:发明
国别省市:87[中国|西安]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1