1.CPI=Ideal CPI + Structural stalls + Data hazard stalls + Control stalls
超标量通过动态调度,进一步降低CPI,通过每个周期发射多条指令来执行
2.猜测执行就是为了在Tomasulo算法的基础上,进一步解决控制冲突;
猜测执行算法与Tomasulo算法结构基本相同就仅有几点区别:–引入了Reorder Buffer;–取消了Store Buffer(其功能改由ROB承担);–CDB上的数据标签有变化;–保留站数据结构有变化。
猜测执行中不存在WAR/WAW问题,RAW可能存在。
猜测执行的代价:–因预测错误导致本不该执行的指令被实际的执行了,带来了无用功耗;–对不该执行的指令进行回滚,也需要消耗时间和功耗;–处理猜测执行的指令导致的例外,也可能会引入不必要的开销。
3.分支预测,分支指令的延时来自两个方面,一是分支条件的计算,二是目的地址的计算;为了快速得到目的地址 ,人们提出了Branch Target Buffer(BTB)。