面向UniCorE-2处理器的结构体数据布局优化机制设计与实现

来源 :北京大学 | 被引量 : 0次 | 上传用户:jiushizhegehao
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
高速缓存是弥补处理器和内存之间的性能差距的重要方式。改善数据的局部性,可以更有效地利用高速缓存,进一步提升处理器的性能。运行时刻从堆中分配的数据的布局对程序性能有很大影响。目前,针对堆中数据的布局优化技术仍处于研究阶段,还没有在实际编译器中得到广泛应用。  运行时刻的数据布局优化主要是指在运行时刻对二进制程序进行分析并通过数据重排以改善数据的时间和空间局部性。该优化无需程序源代码或者对程序重新编译,可在遗产代码和商用软件上直接使用。但是,由于缺乏源代码中蕴含的高层信息,如何开展安全和高效的动态优化是研究的难点。大型程序广泛使用结构体数据,如何改善结构体数据的局部性是数据排布优化的重点任务之一。  本文面向UniCore-2处理器,针对结构体的数据布局,采用访存指令分析技术和运行时刻的代码生成技术,在运行时刻重新分配结构体内存空间,通过改变堆中结构体字段的数据布局,改善数据的空间和时间局部性。  本文设计了一种访存指令分析算法和一种运行时刻代码生成算法,可分析程序的访存指令在运行时刻对结构体字段重新排布,并生成新的程序代码访问重新排布后的字段。进而针对基于UniCore-2处理器的计算机系统,实现了上述可完成运行时刻的结构体拆分算法。通过对潜在拆分对象的原始内存空间设置读写保护,在读写原始内存空间时触发例外处理;通过分析对应访存指令,得到潜在拆分对象的字段信息,进而完成拆分并生成新的代码段;上述策略可在保证程序能够正确访问拆分后的结构体字段的前提下,改进结构体字段的时间和空间局部性。  论文采用使用SPEC2000和SPEC2006基准程序,在真实计算机环境上对运行时刻的结构体拆分优化效果进行了评测。实验结果表明部分测试程序的运行性能可改进15.1%。本文通过性能监视器获得测试程序在真机上的缓存信息,分析出性能提升的原因是大幅增强了数据局部性,但是较大的分析代价抵消了部分性能提升,如果能够与剖视分析和静态分析相结合,可以进一步提升优化效果。
其他文献
近几年来,面向对象数据库(OODBS)被许多高级应用程序所采用。OODBS是类和这些类的实例的集合。在OODBS中,类和实例都被称为对象。数据库系统的一个重要特点就是能对共享数据进
CNC(微机数控系统)技术是现代加工技术的一个重要组成部分.CNC能够控制高速度、高精度、多轴联动的加工设备从而制造出工业领域的各种复杂零件.随着计算技术和制造技术的不断
随着云计算的发展,越来越多的程序将被部署到云端。实际上,程序不仅仅在开发完成后可以部署到云端,它的开发过程也可以在云端完成。在这种情况下,基于云计算的在线集成开发环境成
随着Internet技术的飞速发展,网络互联和信息共享成为信息时代总的发展趋势。Internet已经成为大部分信息系统运行的平台,电子商务、电子政务甚至是很多军事信息都通过Internet
该文首先具体分析了GIS系统的发展现状,讨论了目前WebGIS常规采用的体系结构,指出了其中存在的主要问题,并从解决问题的角度引出了对GML的论述,进一步探讨了GML的来源及发展
网络拥塞一直是长期困扰Internet的难题,近年来虽然人们先后提出了多种卓有成效的算法,但网络拥塞问题仍然远未曾解决,使得拥塞控制一直是网络研究领域的热点之一.在拥塞控制
我们在进行"广东工业大学继续教育学院网络管理信息系统"的项目研发过程中遇到了这样的问题:学生通过外网查询成绩,教师通过外网录入成绩到内网.在外网防火墙等防护机制都失
随着半导体制造工艺水平的快速提高和应用需求的持续增长,系统芯片集成的功能部件数量不断增加,片上通信压力相应增大,对片上互连结构设计提出了更高的要求。本文基于PKUnity86
信息技术应用的普及以及计算机网络的飞速发展导致了计算机支持的协同工作的诞生。经过近二十年的发展,CSCW的应用却处在一个颇为尴尬的境地:一方面人们对于协同技术的需求越来
高层体系结构(HLA)作为新一代分布式交互仿真协议,主要解决分布式仿真应用系统的互操作性和可重用性,从而缩短系统开发周期,减少开发成本,降低大型系统的项目风险.联邦开发执