迈向时间最优软件流水的第一步
在软件开发中,软件流水技术对于提高程序执行效率至关重要。尤其是在处理带有控制流的循环时,如何实现时间最优的软件流水是一个具有挑战性的问题。本文将深入探讨这一问题,从基础概念到具体的依赖模型和软件流水的要求,为实现时间最优软件流水提供理论支持。
1. 研究背景
目前,针对带有控制流的循环,相关的理论研究成果较少。仅有 Uht 和 Schwiegelshohn 等人的研究有所涉及。Uht 证明了对于某些带有控制流的循环,最优执行所需的资源可能会呈指数级增长,但他的研究基于理想化的硬件模型,与软件流水的直接关联性不大。Schwiegelshohn 等人的研究表明,存在一些循环不存在等效的时间最优程序,不过他们缺乏对时间最优软件流水的正式处理。
2. 预备知识
2.1 架构要求
为了使带有控制流的循环的时间最优性有明确的定义,需要对目标机器模型做出一些架构假设:
- 机器能够同时执行多个分支操作(即多路分支)和数据操作。
- 具备根据分支结果提交操作的执行机制(即条件执行)。
以树 VLIW 架构模型为例,它满足上述架构要求。在该架构中,并行的 VLIW 指令(树指令)由二叉决策树表示,能够同时执行 ALU、内存和分支操作。分支单元可以在单个周期内确定分支目标,只有位于分支单元确定的执行路径上的操作才会被提交。
2.2 程序表示
顺序程序可以用控制流图(CFG)表示,其节点为基本的机器操作。当顺序程序被编译器并行化后,会生成并行的树 VLIW 程序。为了便于描述,我们采用扩展顺序表示法来表示并行程序。在这种表示法下,顺序程序和并
超级会员免费看
订阅专栏 解锁全文
1975

被折叠的 条评论
为什么被折叠?



