论文部分内容阅读
随着芯片集成度的不断提高,越来越多的处理器核被集成到单个芯片上,出现了多核和众核处理器。与多核和众核体系结构快速发展所不同的是,并行程序设计却没有实现跨越式发展。传统的并行编程模型——数据并行编程模型、消息传递编程模型、共享内存编程模型,虽然从一定程度上简化程序员程序并行化的工作,但是它们对于一些粗粒度并行缺乏一定的支持,而且它们都不支持线程的猜测执行,这也造成了巨大的计算资源浪费。在以猜测的方式挖掘应用中的粗粒度并行方面,TLS(Thread-Level Speculation线程级猜测执行)就是其中的典型代表。它的最大优点是编程模型非常简洁——程序员只需标识出那些可以猜测执行的代码段即可,运行时系统或硬件负责确保猜测线程之间的数据相关不被破坏。但是由于其自身系统开销过高等原因,导致TLS机制的应用并不广泛。本文提出并实现一种编程模型简单、系统开销低的TLS系统猜测数据管理机制,它不仅能够在不降低处理器核主频的情况下,实现高效的猜测数据管理,而且在一定程度上解决了猜测线程间共享数据相关的问题。本文的研究工作和成果有:1、提出猜测变量生命周期的概念猜测变量生命周期包括猜测变量的产生、使用和提交三个阶段,按照猜测变量的生命周期,本文提出了一种新的TLS技术分类方法,并比较了各种已有TLS实现方法的优缺点;根据猜测变量的生命周期,归纳了支持TLS的多核平台的设计空间,提出了探索该设计空间的若干方法;最后,指出了TLS技术当前面临的挑战和未来发展趋势。2、提出基于猜测数据生命周期的猜测数据管理机制Cache Copy-on-Write传统的TLS系统由于没有针对猜测数据管理做专门的优化,导致其在猜测数据管理方面开销过大,性能不佳。本文通过对TLS技术分析,提出了基于猜测变量生命周期的Cache Copy-on-Write猜测数据管理机制。Cache Copy-on-Write机制采用类似于操作系统Copy on Write的技术实现对猜测变量的动态管理,减少了线程创建时拷贝数据的开销。另外,Cache Copy-on-Write机制支持猜测线程间通信,通过这一机制可以消除由猜测线程间共享变量冲突带来的线程多次回滚,从而提高了线程执行成功率,进而提高了性能。3、提出采用Enhanced Local Memory的猜测数据管理机制的实现从性能上来说,Cache Copy-on-Write机制具有高效的猜测数据管理能力并且管理产生的开销较少。而采用Enhanced Local Memory作为猜测线程的私有数据缓存可以最大限度地发挥Cache Copy-on-Write机制的优势。首先,Enhanced Local Memory具有访问速度快的特点;其次,Enhanced Local Memory是片上存储器。基于这两点,同时结合Cache Copy-on-Write机制,就实现了一种具有高效猜测数据管理的TLS系统。本文基于SESC模拟器实现了采用Enhanced Local Memory的TLS系统猜测数据管理机制,并针对测试程序进行了详细的性能测试分析。实验的结果验证了本文所提出的猜测数据管理机制的高效性和有效性。