1、MIPS的五级流水线结构中,计算访存的地址是在哪个阶段完成的? 执行
2、MIPS的五级流水线结构中,读寄存器堆是在哪个阶段完成的? 译码
解析:
3、一个五级流水线的处理器,时钟频率为1GHz。指定运行一段5条指令的代码,在流水线不停顿的情况下,需要 9ns
参考:
需要5+(5-1)=9个时钟周期
每秒有1G个时钟周期
9个时钟周期需要 9 * 1/1G = 9ns
1秒=1000 000 000纳秒(ns)
4、一个五级流水线的处理器,时钟频率为2GHz。指定运行一段8条指令的代码,在流水线不停顿的情况下,需要 6ns
解析:
需要5+(8-1)=12个时钟周期
每秒有2G个时钟周期
12个时钟周期需要 12 * 1/2G = 6ns
5、以下哪些是处理器采用流水线技术带来的影响?
A、提高指令的吞吐率
B、提高时钟频率
C、简化硬件电路
D、降低功耗
解析:
6、在流水线处理器设计时,如果划分出五个相对独立的阶段,延迟分别为:250ps,150ps,200ps,300ps,250ps。而还需要加入的流水线寄存器延迟为50ps。那时钟周期应该为:350ps(延迟最大的那个作为时钟周期)
7、在流水线处理器设计时,如果划分出五个相对独立的阶段,延迟分别为:450ps,350ps,300ps,400ps,350ps。而还需要加入的流水线寄存器延迟为50ps。那时钟频率应该为:2GHz
解析:450+50=500ps 时钟频率 = 1/500ps
8、有一个五级流水线的处理器设计,每一级的延迟分别为:450ps,650ps,450ps,450ps,450ps。其中包含流水线寄存器延迟50ps。如果将第二级(650ps)均匀拆分为两级,从而形成六级流水线。那新处理器的主频应该是:2.22GHz
解析:650-50 = 600 600/2=300 300+50 = 350 < 450 1/450ps
9、有一个五级流水线的处理器设计,每一级的延迟分别为:450ps,950ps,450ps,450ps,450ps。其中包含流水线寄存器延迟50ps。如果将第二级(950ps)均匀拆分为两级,从而形成六级流水线。那在新处理器上,一条指令的执行时间是:3000ps
解析:950 - 50 = 900 900/2=450 450+50 = 500 500*6=3000
10、以下关于超标量的说法,哪些是正确的?
A、超标量和流水线是两种独立的技术
B、超标量是一种利用空间并行性的优化
C、现代的多核CPU通常都是超标量处理器(每个核都集成了超标量流水线)
D、超标量技术是建立在标量流水线技术基础上的
E、超标量处理器是多核CPU的另一种说法
F、超标量是一种利用时间并行性的优化
解析:
11、流水线的“冒险”有哪几种?
A、结构冒险
B、数据冒险
C、控制冒险
12、对于典型的MIPS五级流水线处理器,如果将指令和数据放在同一个存储器中,则会直接导致哪种冒险?结构冒险
解析:
13、以下哪个方法,可以解决所有的冒险?让流水线停顿(产生空泡)
14、对于典型的MIPS五级流水线处理器(不前递,指令存储器和数据存储器分开),下面这段代码中,存在哪些冒险?
lw $1, 40($6)
beq $2, $1, Label;
add $6, $6, $2
add $6, $6, $1
Label: add $2, $6, $6
A、数据冒险
B、控制冒险
解析:
15、对于典型的MIPS五级流水线处理器(不前递,指令存储器和数据存储器分开),下面这段代码中,存在哪些冒险?
lw $1, 40($6) ( 读40($6)到$1 )
add $6, $1, $2
sw $6, 50($1)( 存$6到50($1) )
A、数据冒险
16、对于典型的MIPS五级流水线处理器(不前递),下面这段代码中,哪条指令会遇到数据冒险?
instruction 1: add $1, $2, $3
instruction 2: sw $2, 0($1)
instruction 3: lw $1, 4($2)
instruction 4: add $2, $2, $1
A、instruction 2
B、instruction 4
数据冒险
17、对于典型的MIPS五级流水线处理器,即使已经对数据冒险进行了处理,下面这段代码中,哪条指令还是会导致流水线停顿?
add $s0, $t0, $t1
sub $t2, $s0, $t3
lw $t3, 40($t2)
or $t4, $t3, $t2
and $t3, $t4, $t2
A、lw(发生了结构冒险)
18、对于典型的MIPS五级流水线处理器,按照指令执行的正常流程,beq指令的分支条件判定会在哪个阶段完成?执行
19、如果采用延迟转移技术(延迟数为1),那么执行完下面这些指令之后,$s1的内容是什么? 4
xor $s1, $s1, $s1
addi $t1, $t3, 1
subi $t2, $t4, 2
beq $t1, $t2, Next; Assume $t1 == $t2 is True
addi $s1, $s1, 1
addi $s1, $s1, 2
Next:
addi $s1, $s1, 3