计算机组成原理——中央处理器(CPU)考研题
(一) CPU的功能和基本结构
(二) 指令执行过程
(三) 数据通路的功能和基本结构
(四) 控制器的功能和工作原理
1. 硬布线控制器
2. 微程序控制器
微程序、微指令和微命令;
微指令的编码方式;
微地址的形式方式。
(五) 指令流水线
1. 指令流水线的基本概念
2. 指令流水线的基本实现
3. 超标量和动态流水线的基本概念
(六)多核处理器的基本概念
(2009)
18.某计算机的指令流水线由四个功能段组成,指令流经各功能段的时间(忽略各功能段之
间的 缓存时间)分别是 90ns、80ns、70ns 和 60ns,则该计算机的 CPU 时钟周期至少是
A.90ns B.80ns C.70ns D.60ns
答案:A
考点:指令流水线的阶段设置
为了充分发挥流水线的作用,CPU时钟周期应取各功能段时间的最大值,使得各功能段能在CPU的统一时钟控制下执行。这样,流水线的各功能段的执行时间才能相等,不会引起“堵塞”或“断流”现象,使得时间长的段成为整个流水线的“瓶颈”。
19.相对于微程序控制器,硬布线控制器的特点是
A.指令执行速度慢,指令功能的修改和扩展容易
B.指令执行速度慢,指令功能的修改和扩展难
C.指令执行速度快,指令功能的修改和扩展容易
D.指令执行速度快,指令功能的修改和扩展难
答案:D
考查硬布线控制器的特点。
硬布线控制:
由于控制器的速度取决于电路延迟,所以速度较快。
一旦设计完成,不可能通过其他的修改添加新功能。
微程序控制:
同硬布线控制器相比,具有规整性、灵活性、可维护性等一系列优点。
由于微程序控制器采用了存储程序原理,所以每条指令都要从控制存储器中取一次,
因此影响了速度。
(2010)
19.下列不会引起指令流水阻塞的是()
A.数据旁路
B.数据相关
C.条件转移
D.资源冲突
答案:A
考点:引起指令流水的原因。数据旁路的引入是为了解决指令流水阻塞的。
(2012)
18.某计算机的控制器采用微程序控制方式,微指令中的操作控制字段采用字段直接编码法,共有 33 个微命令,构成 5 个互斥类,分别包含 7、3、12、5 和 6 个微命令,则操作控制字段至少有
A. 5 位 B. 6 位 C.15 D. 33 位
答案:C
考点:互斥的概念,由于还需要考虑一种不发命令的情况,所以每组还要加上1,所以有8,4,13,6,7个微命令,取对数取整后得到最少操作控制字段为3+2+4+3+3=15
(2013)
某 CPU 主频为 1.03 GHz,采用 4 级指令流水线,每个流水段的执行需要 1 个时钟周期。假定 CPU 执行了 100 条指令,在其执行过程中,没有发生任何流水线阻塞,此时流水线的吞吐率为
A. 0.25×109条指令/秒 B. 0.97×109条指令/秒
C. 1.0×109条指令/秒 D. 1.03 ×109条指令/秒
答案:C
解析:采用 4 级流水执行 100 条指令,在执行过程中共用4 +(100-1) =103 个时钟周期(k+(n-1))。
CPU 主频是1.03 GHz,即每秒1.03 G个时钟周期
那么流水时间为103/1.03Ghz=1*10-7s
流水线的吞吐率=指令条数n/流水时间=100/1*10-7=1.0×109条指令/秒
(2014)
18. 某计算机采用微程序控制器,共有32条指令,公共的取指令微程序包含2条微指令,各指令对应的微程序平均由4条微指令组成,采用断定法(下址字段法)确定下条微指令的地址,则微指令中下址字段的位数至少是:
A 5 B 6 C 8 D 9
答案:C
解析:
这里的32条指令是机器指令,一条机器指令对应一条微程序,那么就要有32条微程序,微指令条数=2+32*4=130,取一下对数可以得到需要8位二进制数才能用来表示这些微指令。
(2016)
19、已知无转发机制的五段基本流水线(取指、译码/读寄存器、运算、访存、写回寄存器)中,下列指令序列存在数据冒险的指令对是()
I1: add R1,R2,R3; (R2)+(R3)->R1
I2: add R5,R2,R4; (R2)+(R4)->R5
I3: add R4,R5,R3; (R3)+(R5)->R4
I4: add R5,R2,R6; (R2)+(R6)->R5
A、I1和I2 B、I2和I3 C、I2和I4 D、I3和I4
答案:B
解析:流水线包括3种冒险:结构冒险 、数据冒险 、控制冒险。这里的数据冒险,通俗点说就是前一条指令产生的后果是下一条指令的输入
流水线冒险
结构冒险
由于硬件资源的竞争,操作无法同时执行的冒险情况。如内存访问会造成构造冒险。IF阶段和MEM 阶段都要涉及内存访问。由于访问内存使用的总线是共享资源,无法同时进行操作。
数据冒险
当即将执行的指令依赖于还未处理完成的数据时,会导致指令无法立刻开始执行,引发数据冒险。直通(Forwarding):原本回写运算结果是在WB 阶段,直通是指在运算结果确定的EX 阶段,将数据直接传递给下一个指令。
控制冒险
程序存在跳转语句,如果程序的实际执行路径是要跳转到其他的地址去执行,那么流水线中已经做的这些取指和译码工作就白做了,这就是流水线的控制冒险。此时,处理器需要排空流水线,跳转到新的地址处重新进入流水线。
(2016)
2.静态流水线是指( )
A.只有一种功能的流水线
B.功能不能改变的流水线
C.同时只能完成一种功能的多功能流水线
D.可同时执行多种功能的流水线
答案:C
一条流水线只能完成一种固定的功能,这种流水线称为单功能流水线。多功能流水线是指流水线的各段可以进行不同的连接,在不同时间内或同一时间内,通过不同的连接方式实现不同的功能。
在多功能流水线中,按照同一时间内是否能够连接成多种方式以同时执行多种功能,可以将其分为静态流水线和动态流水线。
所谓静态流水线,是指同一段时间内,多功能流水线中的各个功能段只能按照一种固定的方式连接,实现一种固定的功能,只有当按照该方式工作的所有任务都流出流水线之后,也就是流水线完全排空之后,多功能流水线才能重新进行连接,以实现另外的功能。
动态流水线是指同一段时间内,多功能流水线中的各段可以按照不同的方式连接,同时执行多种功能。当然,要同时实现多种连接方式是有条件的,即流水线中各个功能部件之间不能发生冲突。
1、以下说法不正确的是( )
A.线性流水线是单功能流水线
B.动态流水线是多功能流水线
C.静态流水线是多功能流水线
D.动态流水线只能是单功能流水线
答案:D
4. 在流水机器中,全局性相关是指( )
A.先写后读相关
B.先读后写相关
C.指令相关
D.由转移指令引起的相关
答案:D
5.流水机器对全局性相关的处理不包括( )
A.猜测法
B. 提前形成条件码
C.加快短循环程序的执行
D. 设置相关专用通路
答案:D
设置相关专用通道是为解决局部相关而产生的一种方法。
(2012)
44 某 16 位计算机中,带符号整数用补码表示,数据 Cache 和指令 Cache 分离。(下表给出了指令系统中部分指令格式,其中 Rs 和 Rd 表示寄存器,mem 表示存储单元地址,(x)表示寄存器 x 或存储单元 x 的内容。)
该计算机采用 5 段流水方式执行指令,各流水段分别是取指(IF)、译码/读寄存器(ID)、执行/计算有效地址(EX)、访问存储器(M)和结果写回寄存器(WB),流水线采用“按序发射,按序完成”方式,没有采用转发技术处理数据相关,并且同一寄存器的读和写操作不能在同一个时钟周期内进行。请回答:
(1)若 int 型变量 x 的值为-513,存放在寄存器 R1 中,则执行“SHR R1”后,R1 的内容是多少?(用十六进制表示)
答:
X=-513=-(512+1)=(-00000010 00000001)2
X补=(11111101 11111111)2
右移 1 位后位 1111 1110 1111 1111,
即指令执行后(R1)=FEFFH。
(2)若在某个时间段中,有连续的 4 条指令进入流水线,在其执行过程中没有发生任何阻塞,则执行这 4 条指令所需的时钟周期数为多少?
答:执行这4条指令所需的时钟周期数=5+(4-1)=8
3)若高级语言程序中某赋值语句为 x=a+b,x、a 和 b 均为 int 型,它们的存储单元地址分别表示为[x]、[a]和[b]。该语句对应的指令序列及其在指令流中的执行过程如图所示。则这 4 条指令执行过程中 I3 的 ID 段和 I4 的 IF 段被阻塞的原因各是什么?
I1 LOAD R1,[a]
I2 LOAD R2,[b]
I3 ADD R1,R2
I4 STORE R2,[x]
答:
I3 的 ID 段被阻塞的原因: I3 与 I1 和 I2 都存在数据相关,需等到 I1 和 I2 将结果写回寄存器后,I3 才能读寄存器内容。
I4 的 IF 段被阻塞的原因: I4与I3存在结构相关,I3占用了IF部件,需等I3进入ID部件后I4才能进入IF部件.
(4)若高级语言程序中某赋值语句为 x=x*2+a,x 和 a 均为 unsigned int 类型变量,它们的存储单元地址分别表示为[x]、[a],则执行这条语句至少需要多少个时钟周期?要求模仿(3)题图画出这条语句对应的指令序列及其在流水线中的执行过程示意图。
答:语句为 x=x*2+a对应的指令序列为:
I1 LOAD R1,[x]
I2 LOAD R2,[a]
I3 SHL R1 //或者 ADD R1,R1
I4 ADD R1,R2
I5 STORE R2,[x]
故执行 x=x*2+a 语句最少需要 17 个时钟周期。
(2009)
44.
某计算机字长16位,采用16位定长指令字结构,部分数据通路结构如下图,图中所有控制信号为1时表示有效,为0表示无效,例控制信号MDRinE为1表允许数据从DB打入MDR,MDRin为1表允许数据从内总线打入MDR。假设MAR的输出一直处于使能状态。
加法指令“ADD (R1),R0”的功能为(R0)+((R1))→(R1),即将R0中的数据与R1的内容所指主存单元的数据相加,并将结果送入R1的内容所指主存单元中保存。
下表给出了上述指令取指和译码阶段每个节拍(时钟周期)的功能和有效控制信号,请按表中描述方式用表格列出指令执行阶段每个节拍的功能和有效控制信号。
答案:
这里对这几个时钟周期的功能进行一下说明:
C1:MAR←(PC) 将PC中的内容送到MAR(存储器地址寄存器)中,取指令的地址
PCout,MARin PC寄存器要流出数据,MAR要流入数据
C2: MDR←M(MAR) PC←(PC)+1
将MAR中的内容(指令的地址)送到MDR(寄存器数据寄存器中),PC+1以便读取下一条指令
MemR,MDRinE,
PC+1
存储器允许读数据,允许数据从DB打入MDR
C3: IR←(MDR) 将取得指令存放到IR(指令寄存器中)
MDRout,IRin
MDR流出数据,指令寄存器流入数据
C4: 指令译码
无
C5: MAR←(R1) 取操作数R1的内容(即所指向主存单元的地址)。
R1out,MARin
R1流出数据,MAR流入数据
C6: MDR←M(MAR) A←(R0) 取得R1所指向主存单元的内容,取操作数R0的内容存放到寄存器A中
MemR,MDRinE
R0out,Ain
存储器允许读数据,允许数据从DB打入MDR
R0流出数据,A流入数据
C7: AC←(MDR)+(A) 加法运算,结果保存到AC寄存器中
MDRout,Add,ACin
MDR流出数据,加法运算,A流入数据
C8: MDR←(AC) 送到MDR
ACout,MDRin
A流出数据,MDR流入数据
C9: M(MAR)←(MDR) 写回到R1
MDRoutE,MemW
允许数据从MDR打入DB,存储器允许读数据