杨书鑫
- 作品数:7 被引量:3H指数:1
- 供职机构:中国科学院计算技术研究所更多>>
- 发文基金:国家自然科学基金国家高技术研究发展计划更多>>
- 相关领域:自动化与计算机技术更多>>
- 全局无环指令调度研究
- 指令调度是一种指令级并行技术.它既是一种微体系结构技术,也是一种编译技术.对于后者,指令调度指的是在保持程序语义的前提下通过重新排列指令的顺序来提高流水的或多发射处理机的指令级并行度.随着微体系结构和微电子技术的发展,现...
- 杨书鑫
- 关键词:指令级并行IA-64
- 文献传递
- 存储池:一种适合于编译器的存储管理方法被引量:1
- 2005年
- 介绍开放源码编译器ORC中使用的存储管理方法:存储池。存储池不是一种通用的存储管理方法,但是它特别适合于编译器。在编译器这个应用场合下,存储池比通用的malloc/free存储管理机制具有十分明显的优点。具体表现为分配速度快、管理开销小、释放时间开销小以及没有内存泄漏的问题。
- 杨书鑫薛丽萍张兆庆
- 关键词:存储池编译器
- 全局指令调度综述被引量:2
- 2004年
- 指令调度通过调整指令之间的顺序来提高指令级并行度(ILP)。然而基本块通常很小,因而潜在的ILP也很小。随着芯片设计技术的发展,现代的处理机所包含的资源却越来越丰富。指令调度只有跨越基本块的边界(即全局指令调度)才能够充分发挥处理机潜在的和程序中固有的ILP。全局指令调度可划分为有环和无环两种。该文介绍了无环全局指令调度的几种影响力较大的算法。同时还简单介绍了有关全局指令调度的新的热点。
- 杨书鑫张兆庆
- 关键词:指令级并行
- 迭代式全局指令调度
- 2004年
- 基于非线性控制流图的全局指令调度由于非线性控制流的控制流图的复杂性不易计算出一条指令在其所在控制流图中的优先级,因此也不易判断来自不同基本块的指令的优先顺序,从而导致在决定一条指令何时被调度出该指令所在的基本块以及调度到哪儿时倾向于保守和随意。例如D.Bernstetin的全局指令调度的启发性方法优先来自这些基本块的指令:调度器当前正在调度的基本块以及与当前基本块控制等价的基本块。然而,这种启发性方法往往导致处在关键路径上的指令被滞后。本文提出的迭代式全局指令调度算法基于D.Bernstein的全局调度算法。它采用与D.Bernstein相同的启发性方法,但有选择地多次调度一个基本块使得处在关键路径上的指令被尽早调度。实验结果表明该算法以增加10%的调度时间开销提高调度器8%的性能。
- 杨书鑫薛丽萍张兆庆
- 关键词:迭代式
- ORC的全局指令调度技术
- 2004年
- IA 6 4是一种崭新的体系结构 ,它为挖掘程序中潜在的指令级并行提供了丰富的硬件支持 ,例如 :大寄存器组、(控制 /数据 )投机、谓词等 .Itanium是IA 6 4的一个具体实现 .该文作者将Bernstein的基于超标量处理机的全局指令调度算法应用于显式并行 (EPIC)的Itanium处理机上 .在结合Itanium处理机特性的同时 ,作者对Bernstein的算法有以下两点创新 :(1)应用层次化区域 .相对于传统的扁平区域 ,这样的区域具有很强的灵活性并提供了调度器大小合适的调度范围 ,使其既能充分利用硬件资源又能够有效地控制调度的时间和空间开销 .(2 )集成P Ready指令调度 .P Ready是在与Bernstein算法框架差异很大的上下文中提出的 .P Ready指令调度能够把优先级高的指令尽早调度即使这条指令并没有在所有经过它的执行路径上解除数据依赖 .集成P Ready指令调度到Bernstein的算法框架上是十分有意义的 .作者在“基于Itanium处理机的开放源码编译器ORC”中实现了该文介绍的算法 ,实验结果显示全局指令调度器对CPU2 0 0 0int基准测试例平均有 8.4 %的运行时加速比 .作为应用层次化区域的优越性的一个反映 ,调度指令跨越嵌套循环最高可取得 12 .9%的运行时加速比 .此外 ,P Ready指令调度对CPU2 0 0 0int的测试例平均有 1.37%的运行?
- 杨书鑫张兆庆
- 关键词:IA-64编译器
- IA-64开放源码编译系统
- 张兆庆吴承勇连瑞琦刘旸杨书鑫刘丽霞傅忱任莉干戈董希谦芦运照张可新吕方周述康龙飞
- IA-64开放源码编译系统是面向英特尔新一代64位处理器架构IA-64的优化编译系统,能够提高英特尔安腾处理器家族的总体性能与效率。项目的主要研究内容集中在编译器代码生成阶段的分析和优化方面,包括全局指令调度、投机执行、...
- 关键词:
- 关键词:开放源码IA-64
- 代码生成阶段的循环不变量外提
- 2004年
- 循环不变量外提是一种传统的优化算法。在现代编译器中,循环不变量通常在编译器的中端中被删除或外提。中端的中间表示是目标处理机无关的,而编译器的后端的中间表示是目标处理机相关的。尽管中端的优化十分有效,但是从中端的中间表示向后端的中间表示转化的过程中会引入许多循环不变量。因此,有必要在后端再进行循环不变量外提。由于在指令调度的过程能够比较容易地决定一个循环不变量是否需要外提,我们将这一个阶段集成到指令调度中。为了降低指令调度的复杂性,我们把循环不变量的识别和外提区分开来。"识别"独立进行,而决定是否"外提"并实施"外提"则集成到指令调度阶段中。我们在开放源码编译器ORC的代码生成模块中具体实现了本文所介绍的算法。实验结果显示,在代码生成阶段的循环不变量外提能够提高目标代码1%的性能。我们的代价模型避免了78%的循环不变量不必要地外提到循环之外。
- 杨书鑫薛丽萍张兆庆
- 关键词:指令调度代码生成编译器目标代码处理机不变量