一、基本结构
【2010统考】下列寄存器中,汇编语言程序员可见的是(B)
A、MAR B、PC C、MDR D、IR
解析:IR、MAR、MDR是内部工作寄存器,对程序员不可见
可见:通用寄存器、程序状态字寄存器
不可见:MAR、MDR、IR
【2016统考】某计算机的主存空间为4GB,字长为32位,按字节编址,采用32位字长指令字格式。若指令按字边界对齐存放,则程序计数器(PC)和指令寄存器(IR)的位数至少分别是(B)
A、30,30 B、30,32 C、32,30 D、32,32
解析:
PC:主存空间决定了PC的范围,按字节编址,一个字大小:32 / 8 = 4B,4GB / 4B =1GB = 30位
指令字格式:定长32位,指令寄存器位数32位
PC的大小与主存有关,因为PC记录的是下一条指令在主存中存放的地址
按字节编址,一个存储单元8bit,字长32位,一个字 = 4B,4个字节,4个存储单元,总共4GB所以可以存储1G个字。
二、指令执行过程(取指、间指、执行、中断)
【2009统考】冯诺依曼计算机中指令和数据均以二进制形式存放在存储器中,CPU区分它们的依据是(C)
A、指令操作码的译码结果 B、指令和数据的寻址方式
C、指令周期的不同阶段 D、指令和数据所在的存储单元
解析:取指周期取出的是指令,执行周期取出的是数据
【2011统考】假定不采用Cache和指令预取技术,且机器处于"开中断"状态,则在下列有关指令执行的叙述中,错误的是(C)
A、每个指令周期中CPU都至少访问内存一次
B、每个指令周期一定大于等于一个CPU时钟周期
C、空操作指令的指令周期中任何寄存器的内容都不会被改变
D、当前程序在每条指令执行结束时都可能被外部中断打断
即使是空操作指令,取指操作后PC也会自动加1
不使用Cache,CPU取指令时必定会访问内存一次;时钟周期时最小的时间单位,每个指令周期一定大于等于一个CPU时钟周期;开中断,则可能被中断。
三、数据通路的功能和基本结构
【2016统考】单周期处理器中所有指令的指令周期为一个时钟周期。下列关于单周期处理器的叙述中,错误的是(A)
A、可采用单总线结构数据通路
B、处理器时钟频率较低
C、在指令执行过程中控制信号不变
D、每条指令的CPI为1
解析:单周期处理器,每条指令的执行只有一个时钟周期,而在一个时钟周期内控制信号并不会变化
单总线数据通路:所有寄存器的输入输出短都连接在一条公共痛路上,一个时钟周期无法完成所有的操作(取值、间指、执行……)
【2021统考】下列关于数据通路的叙述中,错误的是(C)
A、数据通路包含ALU等组合逻辑(操作)元件
B、数据通路包含寄存器等时序逻辑(状态)元件
C、数据通路不包含用于异常时间检测及响应的电路
D、数据通路中的数据流动路径由控制信号进行控制
解析:数据通路:指令在执行过程中数据所经过的路径,包括路径上的部件。
ALU、通用寄存器、状态寄存器、Cache、MMU、浮点运算逻辑、异常和中断处理逻辑
((R1)):将R1的内容所指的主存单元的数据(间接寻址)
与R0所指向的内容相加,最后将结果放回到R1所指向的位置。
C5 (R1) ➡️MAR R1out,MARin //第一层括号
C6 M(MAR) ➡️MDR MemR,MDRinE //第二层括号
C7 MDR ➡️ A Ain,MDRout
C8 (R0)+ (A)➡️ AC R0out,ADD,ACin
C9 (AC)➡️ (MDR) ACout,MDRin
C10 (MDR) ➡️ M(MAR) MDRoutE,MemW
1)R0,R1,R2,R3,R4,PC。CPU是单总线结构,若没有T,AB两端会同时获得两个相同的数据。
2)ALUop:3位(7种操作),SRop:2位(三种操作)
3)SRout控制的是一个三态门,用于控制移位器与总线之间的数据通路的连接与断开
4)1,2,3,5,8
5)连接6-9,7-4.
6)因为,每条指令占用2个内存单元(16/8=2B),所以下条指令地址为(PC)+2
四、控制器的功能和工作原理
【2012】某计算机的控制器采用微程序控制方式,微指令中的操作控制字段采用直接编码法,共有33个微命令,构成5个互斥类,分别包含7、3、12、5和6个微命令,则操作控制字段至少有(C)位
A、5 B、6 C、15 D、33
1、互斥的微命令在同一个字段,相容的在不同字段,5个互斥类所以都在同一字段
2、7个微命令至少需要3位表示,……,共3+2+4+3+3 = 15位
每个字段需要留出一个状态来表示不工作,比如三位微命令留下000
【2014】某计算机采用微程序控制器,共有32条指令,公共的取指令微程序包含2条微指令,各指令对应的微程序平均由4条微指令组成,采用断定法(下地址字段),确定下条微指令地址,则微指令中下地址字段的位数至少是(C)
A、5 B、6 C、8 D、9
操作系统中的指令条数,2 + 4 *32 = 130条
7 < log2(130) < 8 所以至少需要8位才能寻址到130条微指令
五、指令流水线
【2013】某CPU主频为1.03GHz,采用4级指令流水线,每个流水段的执行需要一个时钟周期。假定CPU执行了100条指令,在其执行过程中,没有发生任何流水线阻塞,此时流水线的吞吐率为(C)
A、0.25x10^9条指令/秒 B、0.97x10^9条指令/秒
C、1.0x10^9条指令/秒 D、1.03x10^9条指令/秒
【2017】下列关于指令流水线数据通路的叙述中,错误的是(A)
A、包含生成控制信号的控制部件
B、包含算数逻辑运算部件(ALU)
C、包含通用寄存器和取指部件
D、由组合逻辑电路和时序逻辑电路组合而成
数据通路:数据在功能部件之间传送的路径,PC、ALU、通用寄存器、状态寄存器、异常和中断处理逻辑。
控制器控制数据通路,根据指令的功能生成控制信号。
【2020】下列给出的处理器类型中,理想状态下,CPI为1的是(B)
1、单周期CPU 2、多周期CPU 3、基本流水线CPU 4、超标量流水线
A、1、2 B、1、3 C、2、4 D、3、4
多周期CPU,CPI < 1.
超标量流水线,CPI > 1.
1)-513
原码: 0000 0010 0000 0001
补码: 1111 1101 1111 1111
右移一位:1111 1110 1111 1111
2) 8T
3) I3和I4段,I1和I3段,I2和I3段有写后读现象,产生数据冒险,所以要等上一条指令执行完下一条才能开始执行。
4)
I1:LOAD R1,[x]
I2:LOAD R2,[a]
I3:SHL R1
I4:ADD R1,R2
I5:STORE R2,[x]
IF | ID | EX | M | WB | ||||||||||||
IF | ID | EX | M | WB | ||||||||||||
IF | ID | EX | M | WB | ||||||||||||
IF | ID | EX | M | WB | ||||||||||||
IF | ID | EX | M | WB |
1)按字节编址,因为1号指令和2号指令相差了4B,而指令字长为32位,32/4=8,所以是按字节编址
2)左移两位,相当于乘以4,所以每个元素占4B。//R4是地址,(R4)是内容,地址左移两位
3)-14、1111 1111 1111 0010
4)2、3,3、4,5、6.
6会发生控制冒险
1)从0加到1000,所以R2内容是1000
2)32B*16 = 512B,6*4B = 24B 小于32B,只有在第一次循环的时候会更新cache,往后不再更新。所以只有第一次访问cache时缺失一次,一次循环访问6次,总共1000次循环,所以总共访问6000次,5999/6000 = 99.98%
3)第4条指令可能发生溢出,第3条指令可能缺页(只有访存指令会发生缺页)。
查TLB,缺失—查页表,缺失—查主存,缺失—读磁盘,将A调入主存。往后A就在主存之中。
所以只有初次访问需要读一次磁盘,但每次循环都需要读一次TLB。总共循环1000次,所以需要查询1000次。初次访问A[0]时,发生缺页中断,会重新访问A[0],这里多访问了一次TLB。
所以总共1001次。