从上面的数据我们可以看出代码经过循环优化后:时钟周期由33463减少至24063个,RAW由原来的1511减少至11011;浮点运算指令由6200条减少到了4400条,其中浮点加法没有改变,而浮点乘法则由5200减少至3400条。
总而言之,总的时钟周期,数据相关,浮点运算指令均大大减少,流水线的性能得到明显改善。
7.对优化程序,考察增加浮点运算部件对性能的影响。
将浮点加法器由1个增加为2个后(右图为2个),可以由上图看出,程序执行的性能得到了提升,结构相关由700减到0。
26
8.对优化程序,将浮点部件的延迟改为8个时钟周期,考察增加浮点运算部件对性能的影响。
将浮点部件的延迟改为8个时钟周期,数据相关的数量大大增加,指令执行周期也增加了。
·实验总结
循环优化的难点是将循环内部的乘法改为增量时,在哪里改为增量,在哪里又重新初始化为0或下一次增量的初始值。在判断循环是否继续处添加增量,在循环开始处重新初始化为0或下一次增量的初始值。
27