2004 年 11 月 北 京 航 空航 天 大 学 学 报 November 2004

第 卷 第 期

30 11 JournaI of Beijing University of Aeronautics and Astronautics VoI . 30 No . 11

软件流水中的循环展开优化

李文龙 刘 利 汤志忠

(清华大学 计算机科学与技术系,北京 100084 )

摘 要:在软件流水中应用循环展开可以实现分数值的启动间距,提高资

源的利用率,同时基于展开的优化技术可以降低程序的资源需求和关键路径的长度.

提出了基于程序特性的展开因子算法 (

UTBPC UnroIIing Times Based Program Character-

istics),解决了循环展开的核心问题———展开因子的确定,同时提出了基于展开的软

件数据预取优化技术,提高了软件数据预取的效率 所有这些都在 (

. ORC Open Re-

search CompiIer )中实现,并对 SPEC 2000 中的程序进行了测试,平均性能提高了2 .

6 % . 实验结果表明新提出的算法和基于展开的数据预取优化技术提高了编译器的整

体性能.

关 键 词:计算机软件;软件流水;循环展开;展开因子;数据预取

中图分类号:

TP 311

文献标识码: 文 章编 号: ( )

A 1001-5965 2004 11-1111-05

Loop unrolling optimization for software pipelining

Li WenIong Liu Li Tang Zhizhong

( , , , )

Dept . of Computer Science and TechnoIogy Tsinghua University Beijing 100084 China

Abstract Loop unroIIing can make software pipeIining achieve fractionaI initiation intervaI and improve re-

source utiIization . Optimizations based on unroIIing can reduce resource reguirements and the heights of criticaI

paths . An aIgorithm named UTBPC( )

unroIIing times based program characteristics for determining

高性能计算机软件循环流水,软件流水中循环展开优化.pdf相关推荐

  1. 软件性能测试pdf,软件性能测试解析与优化.pdf

    第 19卷 第 19期 电子设计工程 2011年 lO月 Vo1.19 No.19 ElectronicDesiznEng 0ct.2011 软件性能测试解析与优化 孟祥丰 (渭南师范学院 陕西 渭南 ...

  2. 软件流水在干嘛(转)

    以下所有内容基于个人理解,如有错误.纰漏请指出,谢谢. 1.基本思想:将有真相关的指令分隔到不同的循环周期内执行. 2.方法(以第6章第5题(2)为例): (1) 寻找指令依赖的关键路径(即答案中的& ...

  3. 软件流水和循环展开的区别

    软件流水:循环重组,重组后的循环体中的指令属于原循环体的不同迭代过程. 循环展开:将循环体代码复制多次,以增大指令调度空间,再进行指令调度来消除相关.

  4. 胡伟武体系结构——第六章软件流水

    看下面两篇就够了: ①基础:(66条消息) 软件流水在干嘛(转)_diyinqian的博客-CSDN博客 ②练习:三道题理解软件流水 - BBMAN - 博客园 (cnblogs.com)

  5. 软件开发中常见知识总结

    最近在准备软件开发的笔试面试,复(yu)习(xi)了一些在软件开发中的常见知识.为了给自己攒点RP,故与大家分享一二. 软件开发需要准备的比较多,主要分为编程语言,数据结构和算法,计算机网络,计算机操 ...

  6. [软考2013计算机软件水平考试软件设计师考试大纲

    来源:3773.com.cn 2012-12-21 2013计算机软件水平考试软件设计师考试大纲 软件设计师考试大纲 一.考试说明 1.考试目标  通过本考试的合格人员能根据软件开发项目管理和软件工程 ...

  7. 软件设计中的一些原则

    本文为大家介绍软件设计中的一些原则,都是经过长期经验总结出来的知识,每一个程序员都应该了解,相信对大家在进行软件设计的过程中会有很大帮助. Don't Repeat Yourself (DRY) DR ...

  8. 浅析软件项目管理中十个误区(来自:http://manager.csdn.net/n/20051213/30907.html)

    随着计算机硬件水平的不断提高,计算机软件的规模和复杂度也随之增加.计算机软件开发从"个人英雄"时代向团队时代迈进,计算机软件项目的管理也从"作坊式"管理向&qu ...

  9. [FW]软件开发中的11个系统思维定律

    "我会更加努力地工作"--一匹名叫Boxer的马(出自乔治·奥威尔的<动物农庄>) 彼得·圣吉在其著作<第五项修炼>中提到的系统思维定律同样适用于软件开发. ...

最新文章

  1. sed及awk显示指定行内容
  2. NYOJ 14 会场安排问题
  3. 二十六、深入Node.js中的文件系统fs模块
  4. jquery常见操作分享
  5. [转]使用 LDAP 组或角色限制访问,包含部分单点登录SSO说明
  6. CSDN博客标题和目录的一点思考
  7. tf.keras CNN网络搭建笔记
  8. 提升速度与精度,FedReg: 减轻灾难性遗忘加速联邦收敛(ICLR 2022)
  9. Android应用层 知识体系
  10. FineReport.10 一(帆软)(报表基础练习)
  11. nodejs安装教程Windows版本
  12. 大唐杯题库(300道)(一)
  13. html页面实现下载功能,html网页实现服务器下载、本地文件下载功能
  14. 图片去水印的原理_图片去水印方法 图片如何去掉水印
  15. 磨刀不误砍柴工——实验工具准备
  16. Sprite 3D用法和相关特性详解
  17. 7-15 福到了 c语言,福到啦L1-6 福到了(15 分) “
  18. idea 断点线程_在IntelliJ IDEA中多线程并发代码的调试方法
  19. DevOps云翼日志服务实践
  20. 开源云笔记本开发构想

热门文章

  1. python中封装是什么意思_python封装是什么
  2. RPC框架:从原理到选型,一文带你搞懂RPC
  3. 从项目中由浅入深学习 React
  4. 如何在JSP字符串中添加空格符
  5. 全新智能扫地机器人的清洁秘诀!
  6. js:一百以内质素的求法
  7. java object.getclass_Java Object类,getClass()方法介绍
  8. HTML5的popstate、pushState、replaceState如何玩转浏览器历史记录
  9. 输入法引擎的模型设计
  10. 阿里云oss文件上传工具类