1.对于数据类型float:
关键路径决定的CPE下界是add的延迟3,因此CPE=3。
2.对于整数:
加法的延迟时间是1,因此CPE=1
3.根据图中的流水线可以看出:
①关键路径上只有一个add操作,而mul操作每个循环之间是没有数据相关的,因此,mul操作的开始只跟float乘法的发射时间有关;
②它的发射时间是1,表示每一个周期都可以开始一个新的mul操作。
③考虑到数据的读取两个Load,因此每次mul花费时间=2+4=6。
④
|
循环次数 |
add开始时间 |
mull开始时间 |
Load1开始时间 |
Load2开始时间 |
|
1 |
6 |
Load2+1=2 |
0 |
Load1+1=1 |
|
2 |
6+3=9>mull+4=8 |
Load2+1=4 |
2 |
Load1+1=3 |
|
3 |
9+3=12>mull+4=10 |
Load2+1=6 |
4 |
Load1+1=5 |
从前三次循环就可以看出来每次add操作的时候,mul的结果早已准备好,不需要等待。因此流水线的延迟取决于add的延迟。