论文部分内容阅读
多线程处理器已经成为市场主流,但是由于并行开发环境还不成熟,大量历史遗留代码以及采用串行模型开发的新代码不能利用多线程处理器中的多个现场并行执行,反而会因为和其他线程竞争使用共享资源而降低执行速度。在多线程处理器上加速执行历史遗留代码等单线程应用成为处理器体系结构研究的热点。基于线程的数据预取方法利用空闲现场执行数据预取线程,计算存储指令访存地址并发起预取,可以改善系统存储行为、加速单线程应用、提高系统吞吐率。基于线程的数据预取技术是多线程环境下传统数据预取技术的继承和发展,也是多线程结构的扩展和增强。本文全面研究了数据预取技术,尤其是在当前多线程环境下的数据预取技术。在深入分析当前多线程执行、线程辅助执行研究现状的基础上,展开基于线程的数据预取技术研究。本文的创新性主要集中在以下几个方面:1.分析应用程序访存行为,定义问题存储指令和关键存储指令,并提出一种关键存储指令解决方法——基于线程的多路径数据预取技术。2.提出一种两阶段数据预取线程评估策略,在数据预取线程构建及执行阶段对数据预取线程的预取效果进行评估,选择更高效的数据预取线程。3.系统分析基于线程的多路径数据预取技术中的控制流行为,提出了一种优化的错误前瞻多路径数据预取方法,通过分支指令控制数据预取线程的行为,提高数据预取的准确性、减少无效预取数目、降低cache污染。4.提出一种基于置信度的数据预取线程控制机制,利用置信度机制增强分支预测,特别是多分支预测的性能,并用它来控制数据预取线程的提取、孵化和执行。本文在两种不同的同时多线程处理器(普通超标量同时多线程,显式并行指令计算同时多线程)以及单芯片多处理器上实现并验证了基于线程的多路径数据预取技术。实验表明,基于线程的多路径数据预取技术在改善系统存储行为、加速单线程应用的同时,还可以有效地提高系统吞吐率。目前,基于线程的多路径数据预取技术已经在国家高技术研究发展计划重点项目(2002AA110020, 2005AA110020)以及国家自然科学基金项目(60376018)中得到应用。