并行编译技术_计算机体系结构——探索指令级并行的基本编译器技术

本文翻译摘录自“ComputerArchitecture : A Quantitative Approach (6th Edition)”。

本文介绍一些简单的编译器技术用来提高处理器开发ILP的能力,这些技术对于使用静态发射或静态调度的处理器非常重要。

1. 基本流水线调度和循环展开

为了使流水线能够保持满载,必须找出可以在流水线中重叠的不相关指令序列,充分开发指令并行。为了避免流水线停顿,必须将相关指令与源指令的执行隔开一定的时间周期,这一间隔应当等于源指令的流水线延迟。编译器执行这种调度的能力既依赖于程序中可用ILP的数目,也依赖于流水线中功能单元的延迟。下表给出了在本章采用的FP单元的延迟,如果偶尔采用不同延迟,会另行明确说明。假定采用一个标准的5级整数流水线,所以分支的延迟为一个时钟周期。假定这些功能单元被完全流水线化或复制(复制次数与流水线深度相同),所以在每个时钟周期可以发射任何一个类型的指令,不存在结构性冒险。

a107e0ded2256f0a5c424be1a0a04017.png

在这一小节,我们将介绍如何通过转换循环来提高可用ILP的数目。下面的例子是对一个标量和一个向量求和:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值