面向64位UniCore体系结构的GNU Binutils的移植与优化

来源 :北京大学 | 被引量 : 0次 | 上传用户:wj34271996
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
应用程序对计算机硬件特别是处理器的性能要求越来越高,尽管32位处理器还在使用,但64位处理器已经越来越多的受到人们的关注。相对于32位处理器,64位处理器能直接进行64位的整点运算,通常还能表示更大的地址空间,能满足日益增长的性能和数据大小的需求。然而要实现真正意义上的64位计算,不仅需要64位处理器的支持,还必须得有配套的编译工具链、操作系统以及应用软件。编译工具链是一套将C、C++、Java等高级语言源代码编译成对应的目标机器二进制文件的系统软件套件。它先通过编译器将高级语言源代码编译成目标机器相关的汇编语言,然后再通过汇编器将对应的汇编语言源代码翻译成目标机器二进制文件,最后通过链接器把目标文件以及目标文件依赖的库文件链接生成可执行文件或者库文件。其中汇编、链接过程需要对应的二进制工具汇编器、链接器来完成。  本文以UniCore体系结构为平台完成了两部分的工作,首先面向64位UniCore体系结构的二进制工具的分析与移植;然后基于该二进制工具为运行时堆内数据排布进行了优化。其中本文的移植工作基于GNUBinutils,优化工作基于内存分配函数展开。本文首先介绍了Binutils的基本组成,并且分析了二进制文件描述符库(BFD)对二进制工具的支持,同时对Binutils里的两个重要的二进制工具汇编器和链接器进行了分析。基于对GNUBinutils的分析,我们将GNUBinutils移植到64位UniCore体系结构,并且进行了正确性验证,最后总结了体系结构从32位向64位扩展时对主要的二进制工具汇编器和链接器的影响。本文还讨论了运行时刻堆内数据排布的优化技术,通过对内存管理模块的重新设计,使得程序在运行时刻调用内存分配函数在堆内分配内存时获得程序的控制权,通过识别调用内存分配函数的包装函数,找到真正的调用点,基于调用点信息及所要分配的对象大小进行亲和性分析,指导数据分配与排布以提高空间局部性。本文选用SPEC2000整点测试集作为评测集,在UniCore体系结构上对优化方案进行了评测,结果表明该技术可在程序运行时进一步优化性能。
其他文献
计算科学为所有学科向定量化和精确化发展提供了重要基础,结构化网格计算是其中应用极其广泛的计算模式之一。网格计算通常计算访存比较低,对带宽要求很高,在主流HPC平台上普遍
随着现代医疗技术的发展,利用光学原理,无创的脉搏和血氧饱和度检测技术成为监控心血管系统生理状况的重要方法。脉搏血氧仪在临床医疗、老年人和新生儿监护等方面得到广泛应用
视频中广泛地存在着大量的空间冗余和时间冗余,如何消除这些冗余是视频压缩编码研究的重要内容。视频中空间冗余和时间冗余的存在使得视频信号用低秩矩阵的模型来表示成为可能
由于信息技术和网络的发展,通过网络实时上课、做实验已经成为可能。而通信原理实验课程由于真实通信设备昂贵、折旧快、维护费用高,一般采用仿真软件来代替真实实验设备,所
随着计算机应用的范围越来越广,处理问题的规模越来越大,计算机硬件得到了迅速发展,近年来已经进入到多核体系结构、个人高性能计算机、千万亿次并行机的发展阶段。为了适应迅速
目前,政务信息化和企业信息化进入“后建设时代”,基础设施和核心应用系统的建设基本告一段落,IT运维成为了与系统建设并重的一项关键工作。业务服务管理是IT运维管理的高级阶段
在雾、霾等天气条件下,由于大气粒子散射和吸收作用,所获取图像的颜色以及对比度、饱和度严重下降,严重影响户外视觉系统的正常运行以及人们的出行。此外,计算机视觉领域中的诸多
现如今实时数据库(RTDB)已获得越来越广泛的应用,实时数据库必须保持数据对象的一致性约束和保证每一个请求到达系统所规定的时间限制。随着系统存储的数据量越来越大,复杂性
1394B协议是在基于1394A协议的基础上,对速度和技术进行了提升的新一代火线协议,其发展趋势是向军事领域发展,将作为新一代军事领域实验室平台搭建的基础协议。新一代1394B协
单篇科研文献文档摘要自动生成在信息检索中具有重要意义,可以为大规模信息检索提供简要信息提示。无监督抽取式摘要生成是文本摘要研究的重要任务,旨在从原文中依据各种文本语