针对循环的内存访问模式分析与应用

来源 :中国科学技术大学 | 被引量 : 0次 | 上传用户:ltzmh
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
随着硬件工艺技术的进步,处理器芯片集成了越来越多的晶体管,处理器速度的飞速提高导致其与内存的速度鸿沟不断拉大。现代主流的体系结构都采用分层缓存架构来缓和处理器和内存访问速度差距带来的影响。有效地利用缓存成为系统性能的关键因素之一。除了硬件上的设计考虑,常用的软件方法是借助编译器强大的分析和优化能力,在中间代码层次对软件程序进行变换,使程序的指令局部性和数据局部性尽可能高,从而降低缓存的失效次数,提高缓存性能。基于编译器来优化程序局部性常分为软件预取、代码变换和数据变换三种。本文基于以上研究思路,致力于在LLVM (Low Level Virtual Machine)编译器系统上开发一个缓存优化原型系统,从而能够结合LLVM强大的分析和优化能力实现对缓存性能地提升。为此,本文基于LLVM中间代码进行了下面的一些工作:1、设计实现一个使用数据变换技术来进行缓存优化的原型系统APCache,涉及代码分析到代码优化的完整过程。系统以LLVM遍的方式对中间代码中的循环进行内存访问模式分析,根据分析结果优化并生成新的访问模式,再更新中间代码。2、以对循环中的数组进行布局优化为重点研究,探讨在LLVM中实现经典算法所需要的技术。循环加数组的使用方式常用在访存密集型程序中,本文采用Leung提出的经典算法来对循环中数组进行重布局优化,提高数据的空间局部性。3、提出一种轻量级的函数指针分析算法FP,为跨过程的缓存优化提供精确的函数调用图支持。算法使用强连通分量(SCC)流敏感和上下文敏感技术确保分析精度,通过缩小分析对象的范围提高分析速度。基于FP的分析结果构造的跨文件函数调用图为跨过程的缓存优化提供了部分技术支持。
其他文献
嵌入式系统开发是当今计算机软件发展的一个热点。嵌入式系统调试器是进行嵌入式开发的关键工具,常用于对嵌入式软件的调试和测试。嵌入式系统调试器由交叉调试器和调试代理
大学生综合素质发展测评是高校学生管理的重要内容之一,传统的描述性的定性评价方法往往是定性分析或者单因素的定量评价,往往存在主观片面,不够准确、不够全面的问题,已经不能适
近20年以来,随着国家经济的飞速发展,对能源的需求日益俱增。从而对各种勘探与解释方法要求也越来越高。特别是对石油勘探中的主要手段地震勘探要求更高。地震数值模拟技术是
随着存储规模日益扩大,存储网络的多样性和异构性,资源分布的广阔性和动态性,都对数据的存储管理方式和访问方式提出了新的要求和挑战。面向广域网的存储资源发现技术研究,旨
Internet上超过80亿个网页的海量数据使互联网成为当今世界上最大的信息库和全球范围内传播信息的最主要渠道,也为广大用户提供了一个巨大价值的,广阔的获取信息的渠道。但当我
OSEK操作系统标准是针对汽车电子领域嵌入式系统制定的工业标准,在汽车工业界有着广泛的应用。 调度是多任务系统正确运行的保证,而OSEK.操作系统作为硬实时系统,其调度有着特
MapReduce是支持数据并行的简单有效的编程模型,它最初为集群编程而设计。随着多核处理器的日益普及,研制面向多核的MapReduce编程库以充分利用多核单机系统的计算资源也变得
多文档自动摘要是自然语言理解领域的一个重要的研究方向。近年来,随着计算机和互联网技术的迅速发展和普及,信息增长的速度比以前各个时期都更快,人们越来越陷入到信息的海洋之
随着计算机网络时代的到来,人们开始通过网络的途径享受各种娱乐服务和学习各种知识,并对家庭数字媒体服务提出了更高的要求。人们需要一种方便可靠的途径,能在家庭环境下获
随着个人电脑市场的增长和存储设备数据存储能力的不断提高,个人数据量变得越来越大。文件系统作为管理用户数据的基础,其名字空间变得越来越复杂,这导致文件系统元数据访问