计算机系统结构复习(五):ILP指令集并行

指令集并行和两种方式

ILP定义:当指令之间不存在相关,他们在流水线中可以重叠起来 并行执行,这种潜在的并行性称为指令级并行。

开发ILP的两种方法
1.静态调度:利用编译器对代码进行静态调度,以减少相关 和冲突。是在编译期间而不是执行期间进行调度和优化。
2.动态调度:在程序执行过程中依靠硬件对代码进行调度。

基本快

定义:除入口和出口外没有其他分支的线性指令序列。BB内 部的指令可能相互依赖,且每4-7条指令就会有分支。为明显提升性能,开发ILP更多是在BB之间。

比如循环级并行(loop-level parallelism)采用循环展开:

for (i=1; i<=1000; i=i+1) (共1000个BB,ILP就是使得这1000个BB能并行计算)
x[i] = x[i] + s //(一个循环中的不同循环体并行执行)

循环展开的两种方法:
1.静态循环展开:编译器静态调度指令
2.动态循环展开:动态分支预测
上一章的分支预测是静态

相关与从冲突的关系

相关:两条指令之间存在某种依赖关系(数据相关、名相关、 控制相关)
冲突: 在具体流水线中,由于相关的存在,使得指令流中下一 条指令不能在指定的时钟周期开始执行。
两者之间的关系:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值