荒废了很久的深入理解计算机系统,最近捡起里,遇到一个有点棘手的问题
练习题5.8
书上答案
刚刚看到这个题的时候,我以为除了最后一个表达式计算可以并行进行,其他的表达式都需要依次等待上一个乘法完成之后才能进行下一个乘法。
例如:A4:先等到yz结果出来之后才能进行x(y*z)。
看到答案之后才发现不是这样,先对答案进行一番解释:
5: 浮点乘法操作的延迟,每个乘法操作需要等待5个周期才能出结果,这里需要注意的是浮点乘法的发射时间为1个时钟周期,意味着每1个时钟周期都能开始一个乘法运算。
p: 在每一次循环展开里面需要进行的操作数。
3: 进行的多少次循环展开,那么每次循环展开都能处理三个数据。
在这里A2的x、y,A3的x、y、z都不需等待上次r计算完成就可以计算,所以可以并行计算。
有什么问题欢迎在评论区留言讨论!