开发指令集并行ILP(instruction-level parallelsim)的两种途径是什么?
答:一种是资源重复,设计多个运行部件。一种是采用流水线技术,实现指令重叠并执行。
为了保证程序执行的正确性,必须保持哪两个关键属性?
答:数据流和异常处理。
指令的动态调度有什么优点?
答:能够处理一些编译时情况不明的相关,并且简化了编译器;
能够使本来是面向某一流水线优化编译的代码在其他动态调度上也能高效运行。
Tomasulo的基本思想是什么?
答:Tomasulo算法记录和检测指令相关,操作数一旦就绪就立刻执行,将发生RAW冲突的可能性减少到最小。
采用寄存器重命名(Renaming)方法,功能部件缓冲器称为 “保留站(reservation stations)”,用来存放未决的操作数;指令中的寄存器被数值或者指向保留站的指针代替,这一过程称为:寄存器换名。痛过寄存器换名来消除WAR和WAW冲突。
采用动态分支预测的目的是什么?需要解决哪些问题?
预测分支是否成功,尽快找到分支目标地址(或指令),避免控制相关造成流水线停顿。
在预测错误时,要作废已经预取和分析的指令,恢复现场,并从另一条分支路径重新取指令。
需要解决的问题:
如何记录分支的历史信息
如何根据这些信息来预测分支的去向(甚至取到指令)
采用分支目标缓冲器BTB后,流水线IF、ID、EX段的变化?
基于硬件的前瞻执行结合了哪三种思想?
(1)采用动态的分支预测技术来选择后续执行语句
(2)在控制相关消除之前指令前瞻执行。
(3)对基本块采用动态调度。
ROB中的每一项由哪四个字段组成?指令确认段做了什么?
与VLIW处理机相比,超标量处理机有什么优点?
指令多流出处理器的流出能力主要受哪三个方面的影响?