用一台每个时钟周期发射两条指令的超标量处理机运行下面一段程序。所有指令都要进行取指(IF)、译码(ID)、执行、写结果(WB)4个阶段。其中IF、ID、WB这3个阶段各为一个流水段,其延迟时间都为10 ns。在执行阶段,LOAD操作、AND操作各延迟10 ns,ADD操作延迟20 ns,MUL操作延迟30 ns。这4种功能部件各设置一个,它们可以并行工作。ADD部件和MUL部件都采用流水结构,每一级流水线的延迟时间都是10 ns。 I1 LOAD R0,M(A) ;R0←M(A) I2 ADD R1,R0 ;R1←(R1)+(R0) I3 LOAD R2,M(B) ;R2←M(B) I4 MUL R3,R4 ;R3←(R3)×(R4) I5 AND R4,R5 ;R4←(R4)∧(R5) I6 ADD R2,R5 ;R2←(R2)+(R5) ①请列出程序代码中所有的数据相关及其相关类型。 ②假设所有运算型指令都在译码(ID)流水段读寄存器,在写结果(WB)流水段写寄存器,采用顺序发射、顺序完成的调度方法。画出流水线的时空图,计算执行这个程序所用的时间。
某指令流水线分为五级,分别完成取址(IF)、译码并取数(ID)、执行(EX)、访存(MEM)、写结果(WR)。设完成各阶段操作的时间依次为90 ns、60 ns、70 ns、1 00 ns、50 ns。试问流水线的时钟周期应取何值?若第一条和第二条指令发生数据相关,试问第二条指令需推迟多少时间才能不发生错误?若相邻两条指令发生数据相关,而不推迟第二条指令的执行可采取什么措施?
B、增加了一套独立的存储器及相关操作总线
C、提高了处理器的频率
D、增加了指令的数目
E、指令存储和数据存储分开,使用两套独立总线访问
F、计算机内部信息表示不必使用二进制
G、程序无需存储在存储器中
H、存储器中的数据访问和指令读取必须串行进行
I、采用Cache技术来改变存储器访问的串行性
J、采用了流水线技术来改变指令执行的串行性
今有四级流水线,分别完成取指(IF)、译码并取数(ID)、执行(EX)、写结果(WR)四个步骤。假设完成各步操作的时间依次为100 ns、100 ns、70 ns、50 ns。 (1)流水线的时钟周期应取何值? (2)若相邻的指令发生数据相关,那么第二条指令安排推迟多少时间才能不发生错误? (3)若相邻两指令发生数据相关,而不推迟第二条指令的执行,可采取什么措施?
在遇到一些情况时,必须阻塞或停顿(Stall)指令流水线,否则后续指令将会被流水线错误地执行。这种现象称为“流水线冒险(Iiazard)”或“流水线相关”。下列选项中,不属于“流水线冒险”的()。
A.结构冒险
B.数据冒险
C. 指令冒险
D.控制冒险
可改变程序执行顺序称为程序控制类指令。以下有关分支冒险和分支预测的叙述中,()是正确的。
A.程序控制类指令不会由于控制(分支)冒险而产生阻塞
B.每次进行简单(静态)预测的预测结果可能是不一样的
C.动态预测(根据分支指令历史记录进行预测)的成功率能达90%
D.如果预测错误,已取到流水线中的错取指令依然要在流水线中继续执行