基于线程的数据预取技术研究
发布时间:2020-07-23 14:26
【摘要】:多线程处理器已经成为市场主流,但是由于并行开发环境还不成熟,大量历史遗留代码以及采用串行模型开发的新代码不能利用多线程处理器中的多个现场并行执行,反而会因为和其他线程竞争使用共享资源而降低执行速度。在多线程处理器上加速执行历史遗留代码等单线程应用成为处理器体系结构研究的热点。基于线程的数据预取方法利用空闲现场执行数据预取线程,计算存储指令访存地址并发起预取,可以改善系统存储行为、加速单线程应用、提高系统吞吐率。 基于线程的数据预取技术是多线程环境下传统数据预取技术的继承和发展,也是多线程结构的扩展和增强。 本文全面研究了数据预取技术,尤其是在当前多线程环境下的数据预取技术。在深入分析当前多线程执行、线程辅助执行研究现状的基础上,展开基于线程的数据预取技术研究。本文的创新性主要集中在以下几个方面: 1.分析应用程序访存行为,定义问题存储指令和关键存储指令,并提出一种关键存储指令解决方法——基于线程的多路径数据预取技术。 2.提出一种两阶段数据预取线程评估策略,在数据预取线程构建及执行阶段对数据预取线程的预取效果进行评估,选择更高效的数据预取线程。 3.系统分析基于线程的多路径数据预取技术中的控制流行为,提出了一种优化的错误前瞻多路径数据预取方法,通过分支指令控制数据预取线程的行为,提高数据预取的准确性、减少无效预取数目、降低cache污染。 4.提出一种基于置信度的数据预取线程控制机制,利用置信度机制增强分支预测,特别是多分支预测的性能,并用它来控制数据预取线程的提取、孵化和执行。 本文在两种不同的同时多线程处理器(普通超标量同时多线程,显式并行指令计算同时多线程)以及单芯片多处理器上实现并验证了基于线程的多路径数据预取技术。实验表明,基于线程的多路径数据预取技术在改善系统存储行为、加速单线程应用的同时,还可以有效地提高系统吞吐率。目前,基于线程的多路径数据预取技术已经在国家高技术研究发展计划重点项目(2002AA110020, 2005AA110020)以及国家自然科学基金项目(60376018)中得到应用。
【学位授予单位】:国防科学技术大学
【学位级别】:博士
【学位授予年份】:2011
【分类号】:TP332
【图文】:
基于线程的数据预取技术是多线程环境下传统数据预取技术的继承和发展以有效地处理关键存储指令,高效地利用片上资源。基于线程的数据预取技仅可以加速单线程应用,还可以提高系统的吞吐率,是多线程结构的扩展和。通常,基于线程的数据预取技术不会修改目标程序的体系结构状态,对目标执行的正确性没有影响。数据预取线程是从目标程序中直接提取出来的特殊踪迹,本质上是前瞻的,不能直接提交执行结果。它对目标程序的主要影响数据从远离处理器的共享存储层次提升到离处理器更近的共享存储层次,间用于主线程。基于线程的数据预取技术开发的是一种新型局部性:程序片(slice)局部性程序片局部性是通过存储指令展现的:存储指令访问的地址可能无法预测产生该地址的指令序列却是可以预测的[6],它们是静态程序代码的不同执行。基于线程的数据预取技术采用预先计算方式[5, 8, 10, 37]获得访存地址,不再依靠猜测获得地址,相比传统基于历史结果预测的数据预取技术,准确性有提高,而且适用于多种情况[37],能够以一种统一的方式进行预取。
图 2- 4 前瞻预计算图 2- 4 中结构与其它结构不同的地方在于,它建立在 Itanium 处理器上,使用式触发器和基本触发器,采用低开销的线程孵化机制,提前进行地址计算以及据读取操作,隐藏主线程存储访问延迟。Luk 提出了软件控制的预计算方法[37]。这种方法在类似 Alpha21264 的同时多程处理器上,通过程序员或者编译器在目标程序中插入特殊的数据预取线程,瞻地计算访存地址并进行预取。在这种方法中,数据预取线程相对于其它方法说是重量级的,包含了显式的控制流,每个线程需要执行上百条甚至更多的指。Luk 给出了四种预取线程形式,用于匹配研究中用到的测试程序:遍历多个指链;间接数组访问;执行过个过程调用;遍历多个控制流路径。他还把他的方和软件预取方法进行了比较。Luk 发现他的方法比传统的预取方法效果要好很。前瞻预计算的后续研究包括:动态前瞻预计算[10],它与一般前瞻预计算不同
图 2- 6 数据预取线线程构造中的主确识别关键存储指存储相关性处理,存储相关性难以判虑其影响,本文研取的准确性和及时对于线程预取有着据预取线程为多个到预取线程 cache在 TMPDP 的设计取线程可能带来的
本文编号:2767446
【学位授予单位】:国防科学技术大学
【学位级别】:博士
【学位授予年份】:2011
【分类号】:TP332
【图文】:
基于线程的数据预取技术是多线程环境下传统数据预取技术的继承和发展以有效地处理关键存储指令,高效地利用片上资源。基于线程的数据预取技仅可以加速单线程应用,还可以提高系统的吞吐率,是多线程结构的扩展和。通常,基于线程的数据预取技术不会修改目标程序的体系结构状态,对目标执行的正确性没有影响。数据预取线程是从目标程序中直接提取出来的特殊踪迹,本质上是前瞻的,不能直接提交执行结果。它对目标程序的主要影响数据从远离处理器的共享存储层次提升到离处理器更近的共享存储层次,间用于主线程。基于线程的数据预取技术开发的是一种新型局部性:程序片(slice)局部性程序片局部性是通过存储指令展现的:存储指令访问的地址可能无法预测产生该地址的指令序列却是可以预测的[6],它们是静态程序代码的不同执行。基于线程的数据预取技术采用预先计算方式[5, 8, 10, 37]获得访存地址,不再依靠猜测获得地址,相比传统基于历史结果预测的数据预取技术,准确性有提高,而且适用于多种情况[37],能够以一种统一的方式进行预取。
图 2- 4 前瞻预计算图 2- 4 中结构与其它结构不同的地方在于,它建立在 Itanium 处理器上,使用式触发器和基本触发器,采用低开销的线程孵化机制,提前进行地址计算以及据读取操作,隐藏主线程存储访问延迟。Luk 提出了软件控制的预计算方法[37]。这种方法在类似 Alpha21264 的同时多程处理器上,通过程序员或者编译器在目标程序中插入特殊的数据预取线程,瞻地计算访存地址并进行预取。在这种方法中,数据预取线程相对于其它方法说是重量级的,包含了显式的控制流,每个线程需要执行上百条甚至更多的指。Luk 给出了四种预取线程形式,用于匹配研究中用到的测试程序:遍历多个指链;间接数组访问;执行过个过程调用;遍历多个控制流路径。他还把他的方和软件预取方法进行了比较。Luk 发现他的方法比传统的预取方法效果要好很。前瞻预计算的后续研究包括:动态前瞻预计算[10],它与一般前瞻预计算不同
图 2- 6 数据预取线线程构造中的主确识别关键存储指存储相关性处理,存储相关性难以判虑其影响,本文研取的准确性和及时对于线程预取有着据预取线程为多个到预取线程 cache在 TMPDP 的设计取线程可能带来的
【参考文献】
相关期刊论文 前1条
1 孙彩霞;张民选;;基于多个取指优先级的同时多线程处理器取指策略[J];电子学报;2006年05期
相关博士学位论文 前8条
1 邓濵;前瞻多线程编译优化技术的研究与实现[D];国防科学技术大学;2001年
2 杜贵然;多路径Trace处理器[D];中国人民解放军国防科学技术大学;2001年
3 黄光奇;SCMP中共享多端口数据Cache结构的研究[D];中国人民解放军国防科学技术大学;2000年
4 沈立;动态VLIW体系结构关键技术研究与实现[D];国防科学技术大学;2003年
5 曹宏嘉;面向微处理器设计的动态二进制翻译技术研究[D];国防科学技术大学;2005年
6 唐遇星;面向动态二进制翻译的动态优化和微处理器体系结构支撑技术研究[D];国防科学技术大学;2005年
7 赵荣彩;多线程低功耗编译优化技术研究[D];中国科学院研究生院(计算技术研究所);2002年
8 孙彩霞;同时多线程处理器中的资源分配策略研究[D];国防科学技术大学;2006年
本文编号:2767446
本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/2767446.html