首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 31 毫秒
1.
苏伯珙  王剑 《计算机学报》1992,15(7):499-506
本文首先在理论上分析了循环体间相关对软件流水的影响.提出了一个由循环本身性质决定的充分必要条件并证明了满足此条件的循环是可限制的,否则是不可限制的;其次我们证明了任意不可限制的循环展开K次后即可转换为可限制循环,K取决于循环本身的性质;最后给出了循环预处理算法和一个新的循环体压缩算法.实验结果表明,这两个算法可使URPR算法对任意循环都能得到最优时间效益并保持了良好的空间效益及低的计算复杂性.  相似文献   

2.
软件流水技术是对程序及微程序中的循环进行优化的一种有效方法,可对基本块构成的循环体进行软件流水的LURPR算法已取得令人满意的效果。本文将在LURPR法的基础上,把软件流水技术扩展到任意结构的循环体,并给出相应的GURPR算法,GURPR算法可对任意的含非正常入口、条件出口、支路、循环嵌套及子程序调用的循环体进行软件流水。  相似文献   

3.
本文叙述一个正在开发的VLIW多处理单元单片机,这个机器的体系结构基于URPR软件流水技术,采用了流水寄存器堆来减少体间相关距离,因此,细粒度并行性可得到充分开发,从而提高了循环体重叠程度,使得优化后的循环体的长度可大大缩短.模拟实验结果表明,这个体系结构在优化编译器的配合下可达到很高的性能。  相似文献   

4.
苏伯珙  王剑 《计算机学报》1992,15(7):491-498,506
本文首先提出一种能够充分开发循环程序指令级细粒度并行性的编译技术——两级软件流水,该技术基于URPR软件流水算法,把资源分配和代码优化有机地结合起来;然后叙述采用两级软件流水的VLIW优化编译器;最后给出一个FFT内层循环编译过程的实例及初步实验结果.  相似文献   

5.
为了提高基于FPGA平台的SoC设计方案的开发速度和运行性能,提出一种基于高层次代码转换的高级综合优化方法.首先将高级语言算法进行软硬件划分,确定在硬件上执行的部分;然后针对在硬件上执行的算法部分,通过代码转换去除函数间数据依赖性、提高循环体并行性,并对循环体进行流水线化;最后将优化方法应用到Alpha-beta搜索算法,完成Blokus-Duo设计.实验结果表明,该方法将高级语言描述自动转化为适于高级综合工具优化的代码模式,提高高级综合生成电路的性能,优化后高级综合生成电路的速度比优化前提高了14倍.  相似文献   

6.
当计算划分层迭代数目较大,或是循环体单次迭代工作量较大,但可用的并行线程数目较小时,传统的基于循环分块的流水粒度优化方法无法进行处理。为此,提出一种基于循环分块减小流水粒度的方法,并根据流水并行循环的代价模型实现最优流水粒度的求解,设计实现了一个流水计算粒度的优化算法。对有限差分松弛法(FDR)的波前循环和时域有限差分法(FDTD)中典型循环的测试表明,与传统的流水粒度选择方法相比,所提算法能够得到更优的循环分块大小。  相似文献   

7.
为了提升处理器执行循环的性能,降低循环开销,提出一种适用于多发射数字信号处理器(DSP)的软硬件协同循环优化方法.在对循环体量化分析的基础上,利用编译器进行循环标志指令的插入和循环开销指令的删除,并由新增的硬件专用循环单元根据循环标志指令携带的信息实现循环计数器的增减和取指地址的计算等功能,达到零开销循环的目的.在多发射DSP SuperV_EF01上的实验结果表明,应用文中方法后,指令周期数和汇编代码大小平均降低了20.94%和4.06%.  相似文献   

8.
软件流水中隐藏存储延迟的方法   总被引:5,自引:2,他引:3  
刘利  李文龙  陈彧  李胜梅  汤志忠 《软件学报》2005,16(10):1833-1841
软件流水是一种重要的指令调度技术,它通过同时执行来自不同循环体的指令来加快循环的执行速度.随着处理机运行速度的逐渐提高,存储访问延迟成为性能提高的瓶颈.为了减轻存储系统影响,软件流水结合了一些存储优化技术,通过隐藏存储延迟来提高性能.提出了一种延迟可预测的模调度算法(foresighted latencymodulo scheduling,简称FLMS),它根据循环的特点来确定load指令延迟.实验结果表明,FLMS算法减少了阻塞时间,提高了程序性能.  相似文献   

9.
循环是程序中的热代码,对循环进行有效的优化可以显著缩短程序的执行时间。软件流水是一种开发循环体指令级并行的细粒度循环优化技术,它通过调度循环中连续迭代之间的指令使其并行执行,从而提高了循环的执行效率。实验数据表明,用Cerngoop程序包进行测试,循环优化效果明显。  相似文献   

10.
软件流水是编译后端优化中针对循环的调度技术,在软件流水优化过程中,依赖环是影响软件流水优化的重要因素。针对循环体中依赖环导致软件流水失败的问题,通过对循环中的依赖环进行分析处理,基于传统的模调度框架,提出了改进的软件流水优化算法,对于造成依赖环的寄存器引入多个分量,实现了对含有归约变量循环的流水。通过典型的算法测试,实验结果表明,该框架能够使得更多类型的循环流水成功,对于循环核心性能提升至少58%。  相似文献   

11.
3种提高软件流水有效性的算法:比较和结合   总被引:1,自引:0,他引:1  
李文龙  陈彧  林海波  汤志忠 《软件学报》2005,16(10):1822-1832
软件流水是开发循环程序指令级并行性的技术,它通过并行执行连续的多个循环体来加快循环的执行速度.在软件流水中,循环体的重叠增加了寄存器需求,导致寄存器压力增大,当目标处理机所提供的寄存器不足时,软件流水可能失败.在Itanium处理机上评估了NAS和SPEC2000基准程序中的软件流水循环的寄存器需求,发现静态寄存器不足是造成软件流水失败的主要原因,提出了3种增加软件流水个数、提高软件流水有效性的算法:限制循环展开因子的算法(register sensitive unrolling,简称RSU)、堆栈寄存器分配算法(stacked registerallocation,简称SRA)以及变量类型转换的算法(variabletype conversion,简称VTC).RSU根据静态寄存器需求确定一个合理的展开因子,增加了软件流水的成功率;SRA和VTC分别使用空闲的堆栈寄存器和旋转寄存器来充当静态寄存器,提高了寄存器的利用率.在面向Itanium处理器的开放源码编译器ORC(open research compiler)上实现了这3种算法,通过NAS程序的测试比较了这3种算法的有效性,同时对它们的结合应用进行了研究和实验.  相似文献   

12.
分支目标缓存(BTB)是高端嵌入式CPU的主要耗能部件之一。针对BTB访问中引入的冗余功耗问题,提出了一种循环体访问过滤机制消除循环体指令流中顺序指令对BTB的无效访问。进一步提出了一种分支跟踪方法补偿循环过滤机制对循环体中非循环类分支指令的错误过滤造成的性能损失,节省了循环体指令流中顺序指令访问BTB的大量冗余功耗。基于Powerstone基准程序的仿真实验表明,在128表项BTB配置下,二级循环过滤器和4表项分支踪迹表可以减少约71.9%的BTB功耗,而平均每条指令周期数(CPI)退化仅为0.66%。  相似文献   

13.
对数据结构中赫夫曼树和赫夫曼遍历的算法问题进行探讨,针对传统使用的遍历算法存在循环次数较多、算法时间复杂度较大问题,通过修改参数和循环体结构对原有算法进行改进,从而减少循环次数,降低算法时间复杂度,同时也提出了动态编码算法等的优点和可行性。  相似文献   

14.
为了解决谓词抽象技术面临的程序中循环体的每次迭代都至少需要一个谓词来实现的难题,提出了一个两阶段的不完全判定过程,用来对一个包含循环的反例进行可行性模拟.通过给出的循环探测算法来从抽象模型中提取出包含循环的反例,并用循环迭代的数量作为参数来确定模拟实例.实验结果表明,该方法在典型的缓冲溢出实例中的表现优于传统的抽象求精方法.  相似文献   

15.
对数据结构中赫夫曼树和赫夫曼遍历的算法问题进行探讨,针对传统使用的遍历算法存在循环次数较多、算法时间复杂度较大问题,通过修改参数和循环体结构对原有算法进行改进,从而减少循环次数,降低算法时间复杂度,同时也提出了动态编码算法等的优点和可行性。  相似文献   

16.
本文提出了一种全新的软件流水算法MAP,它不仅采用一种直观的流水安放规则以适应各种类型的硬件流水操作,而且使用多种启发策略减小循环体间相关距离。此算法以很低的算法复杂度在任意结构的VLIW机器上都可获得较高的加速比和资源利用率。  相似文献   

17.
分析了Krinke切片算法对循环体内嵌套有线程的程序结构会产生切片不精确的现象,认为其原因是该算法对线程间数据依赖的定义过于粗糙,且对程序行为约束不够。该文提出一种新算法,在并发程序内部表示中,增加跨线程边界循环-承载数据依赖,并引入区域化执行证据约束程序行为。实例研究表明,该算法克服了Krinke算法的不精确现象。  相似文献   

18.
本文探讨并行预编译系统的设计,并着重讨论串行程序中的并行成分识别算法。我们先给出几种在循环体内进行数据相关检测的定理和方法,然后介绍SLI算法——一种实用而精确的数据相关检测方法。  相似文献   

19.
为提高处理器对加密算法的处理效率和扩展性能,本文提出一种基于共性子图的指令定制方法.该方法通过挖掘常用加密算法中的共性计算模式,用一条模式指令替换多条被共性模式覆盖的指令,并使用查找表(LUT)对S-盒间址访问进行处理,达到减少算法指令数的目的.我们针对MD5,SHA256,RC5和AES等4种常用加密算法进行了实验,结果表明该方法可以有效的减少4种算法的核心循环体指令,使这些算法得到15.4%~60.6%的指令减少率.  相似文献   

20.
软件流水的开销模型和决策框架   总被引:1,自引:0,他引:1       下载免费PDF全文
李文龙  林海波  汤志忠 《软件学报》2004,15(7):1005-1011
软件流水是一种重要的指令调度技术,它通过重叠地执行不同的循环体来提高指令级并行性(instruction level parallelism,简称ILP).模调度是一类被广泛采用的软件流水调度算法.软件流水并非一种无损的优化方法,它具有一定的开销,比如延长了编译时间、增加了寄存器压力等.而且,受到体系结构、调度算法以及程序特性的限制,进行软件流水并不一定能达到理想的加速比,有时反而会引起性能下降.提出了一种面向程序特性的软件流水开销模型,对此模型下的软件流水开销进行了量化分析,并提出了一种基于相关性分析的  相似文献   

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号