2015年数据通路大题

【知识回顾】

2015年数据通路大题_第1张图片

(2)指令中的【寻址特征】又称为【寻址方式】;指令中的操作数可以有多个,每个操作数都是【寻址特征】+【形式地址】共同指出。

形式地址可能是具体的某个内存地址 或 寄存器编号。

(3)以in或out结尾的控制信号控制某部件的输入输出,如用1表示有效时,

Tin=1表示向T输入数据,Tin=0表示未向T输入数据。

以op结尾的控制信号,如存储器控制信号MEMop,助记符是read读和write写(实际还是发送0和1二进制编码)。

【真题】

2015年数据通路大题_第2张图片

2015年数据通路大题_第3张图片

机器字长=存储字长=指令字长=16bit

计算机所需要的数据刚好能通过一次存取操作取出(16bit)

第一问:可见的寄存器  暂存器作用

(1)图中哪些寄存器是程序员可见的?为啥要设置暂存器T?

【解析】通用寄存器R0~R3和PC。

因此采用了单总线结构,若无暂存器T,则ALU的A、B端口会同时获得2个相同的数据,使数据通路不能正常工作。

【注意】程序员可见即指可编程,如在可在指令中指示使用哪个通用寄存器;可通过转移指令修改PC值;可修改PSW中的中断允许位来进行中断控制。PSW程序状态字存放一些标志和状态位。

第二问:控制信号位数

(2)控制信号ALUop和SRop的位数至少各是多少?

【解析】等价于问 分别给ALU和SR的操作编号,各需要多少个二进制位

ALU共有7种操作,故其操作控制信号ALUop至少需要3位,

SR移位寄存器共3种操作,其操作控制信号SRop至少需要2位。

第三问:三态门

(3)控制信号SRout所控制部件的名称或作用是?

【解析】信号SRout所控制的部件用于控制移位器与总线之间数据通路的连接与断开

名称为三态门——可以根据控制信号产生3种状态(连接、断开&高阻)。

第四问:控制部件

(4)端点1~9中,哪些端点需连接到控制部件的输出端?

【解析】首先明确控制部件输出啥,由于IR存放指令(送到控制部件),所以控制部件输出指令译码的结果(对应数据通路的数据信号)。

控制部件通过输出端向各个部件发送控制信号,故需要接收控制信号的端点都需要连接到控制部件的输出端——即在图中所有横着画的信号(端口1、2、3、5、8需连接到控制部件输出端)。

第五问:数据通路连线

(5)为完善总线数据通路,需要在端点1~9中相应的端点之间添加必要的连线,写出连线的起点和终点,以正确表示数据的流动方向。

【解析】由于6号最终要连到4号的,而现在中间多了一个MUX,则是6号连接9号,7号连接4号。

第六问:MUX & PC

(6)为啥二路选择器MUX的一个输入端是2?

【解析】多路选择器MUX——通过控制信号来决定把哪个输入端传送到输出端

联想平时做题的PC+1,而该图中的PC旁边并没有写“+1”即没自动加1功能,所以要把PC送到ALU的一端,再通过MUX多路选择器把2送入ALU的另一端,ALU运算完PC+2后将结果送回PC。

【答案】因为每条指令的长度为16位,按字节编址,所以每条指令占2个内存单元,顺序执行时,下条指令地址为(PC)+2.MUX的一个输入端为2,可便于执行(PC)+2操作。

该背景的第二大题

记住上题给的条件——采用16位定长指令字格式

2015年数据通路大题_第4张图片

2015年数据通路大题_第5张图片

第一问:OP操作码位

(1)该机的指令系统最多可定义多少条指令?

【解析】寻址方式位分别为0和1意味着用1个二进制位;需用2个二进制位“寻址”4个通用寄存器。

可以有3个操作数,每个操作数有1位寻址方式位和2位寄存器编号

操作码字段为16-3×(1+2)=7位,最多定义2^7=128条指令。

第二问:指令格式&寻址

(2)假定inc、shl和sub指令的操作码分别为01H、02H和03H,则以下指令对应的机器代码各是什么?

1)inc R1 ;           R1+1->R1

——单地址指令,最后6位为0,OP=000 0001,目的操作数=001,

所以机器代码为0000 0010 0100 0000即0240H. 

2)shl R2,R1 ;      (R1)<<1->R2

——二地址指令,最后3位为0,OP=000 0010,目的操作数为010(送到R2,寄存器直接寻址);源操作数为001(对R1寄存器直接寻址),即机器代码为0000 0100 1000 1000即0488H。

3)sub R3,(R1),R1; ((R1))-(R2)->R3

——三地址指令, OP=000 0011,目的操作数为011(送往R3,寄存器直接寻址);源操作数1为101(对R1寄存器间接寻址);源操作数2为010(对R2寄存器直接寻址),即机器代码为0000 0110 1110 1010即06EAH.

第三问:数据通路

先分析取指阶段

第一个时钟周期】PCout=1时PC的值就会输出到总线上,所有和总线连接的部件都可以看到这个PC的值(但是是根据in结尾的控制信号来判断是否接收)。

可以看做MEMop=read中省略了MDRin=1(或把这里的read功能看作一个复杂的功能)。

第二个时钟周期】ALUop=add,因为加法器的一端是输入了PC,所以可以推测是“PC+1”,但应该是从MUX过来一个“2”。

每行代表一个时钟周期,所以对第二行分析前要撤销所有第一行的通路上的控制信号(撤销信号不会改变寄存器、暂存器里面的内容)。

MUX是多路选择器(由MUXop决定将哪个输入直接送到输出端),MUXop=0时会选择2通过MUX进入ALU的一个端口。

第三个时钟周期】ALU完成+2操作后将结果送到移位寄存器,再mov直送到SRout指的部件,PCin=1即使新的PC值进入PC。

第四个时钟周期】MDRout(题目省略=1),IRin=1实现MDR->IR

2015年数据通路大题_第6张图片

再分析执行阶段

------shl R2,R1:执行效果是(R1)<<1->R2

进入T后,ALU不用做啥——所以【直送ALUop=mova】,接着去到移位寄存器SR(SRop=left)

【注意】审题——ALU的直送是mova,而SR的直送是mov。

-------sub R0,R2,(R1):执行效果是((R1))-(R2)->R0

R1out=1,MARin=1,MEMop=read;

R2out=1,Tin=1

MDRout=1,MUXop=1 ALUop=sub(间接寻址后将MDR数据送往ALU和R2值作减法) SRop=mov

最后一个时钟周期,先看R0in=1即R0准备好接收数据,即前一个是SRout=1.

第四问:指令总时间

(4)指令“sub R1,R3,(R2)”和“inc R1”的执行阶段至少各需要多少个时钟周期?

【解析】sub R1,R3,(R2)和第三问的sub R0,R2,(R1)类似(只是寄存器编号不同),从题目图中可看出至少是4个时钟周期。

inc R1的执行阶段:(也和第三问的sub类似

R1out=1,Tin=1,ALUop=inc,SRop=mov(不用到移位寄存器,所以直送moc就行)

SRout=1,R1in=1

【注意】inc是自增1(上一大题的题干有说)即inc R1效果为(R1)+1->R1和第三问中左边的(R1)<<1->R2类似,至少用2个时钟周期。

总结:

2015年数据通路大题_第7张图片

2015年数据通路大题_第8张图片

2015年数据通路大题_第9张图片

2015年数据通路大题_第10张图片

注意】本题中有些步骤比较特殊,不像上面总结第四点的2)说的“有先后顺序不可并行”,所以要注意题目说明。

另外,要学会仿造题目安排微操作序列或者控制信号

你可能感兴趣的:(计算机组成原理)