题目
某16位计算机的主存按字节编址,存取单位为16位;采用16位定长指令字格式;CPU采用单总线结构,主要部分如下图所示。图中RO~R3为通用寄存器:T为暂存器:SR为移位寄存器,可实现直送(mov).左移一位(lef)和右移一位(right)3种操作,控制信号为SRop,SR的输出由信号SRout控制; ALU可实现直送A(mova)、A加B(add)、A减B(sub)、A与B(and)、A或B(or)、非A(not)、A加ne)7种操作,控制信号为ALUop.
请回答下列问题。
(1)图中哪些寄存器是程序员可见的?为何要设置暂存器T?
(2)控制信号ALUop和SRop的位数至少各是多少?
(3)控制信号SRout所控制部件的名称或作用是什么?
(4)端点D~9中,哪些端点须连接到控制部件的输出端?
(5)为完善单总线数据通路,需要在端点O~9中相应的端点之间添加必要的连线。写出连线的起点和终点,以正确表示数据的流动方向。
(6)为什么二路选择器MUX的一个输入端是2?
【解析示意图】从上面可以看出,这是外总线加内总线的形式。其中CPU采用单总线,元件通过内总线进行数据地址传输。而通过主存总线与主存进行传输。通过将地址或者数据传输到总线上,总线对其进行判断传输到对应的元器件与主存进行交换信息。
提取题中信息:R0~R3为通用寄存器,T为暂存器,SR为移位寄存器有三种操作,ALU有7种操作。
(1)图中哪些寄存器是程序员可见的?为何要设置暂存器T?
【解析】程序员可见寄存器:通用寄存器、PC寄存器、程序状态字寄存器;而设置寄存器T是因为ALU上AB两个口需要两个数据,而CPU是单总线,则一次只能传输一个数据,通过T先暂存一个数据,在输入第二个数据到B口后,ALU既可正常进行工作。如果两个数据相同则不能正常工作。
【标准答案】通用寄存器(R0~R3)和PC。因为采用了单总线结构,因此,若无暂存器T,则ALU的A、B端口会同时获得两个相同的数据,导致数据通路不能正常工作。
(2)控制信号ALUop和SRop的位数至少各是多少?
【解析】SR为移位寄存器有3种操作所以至少2位才能表示三种操作,因此SRop至少要2位。ALU有7种操作所以至少3位才能表示7种操作,因此ALUop至少要3位。
(3)控制信号SRout所控制部件的名称或作用是什么?
【解析】从SR寄存器出去,因此可以猜测这是将结果传输到总线上的一个控制器,主要功能是控制SR数据的连接和断开。需要控制数据进入移位寄存器,从寄存器出去和关闭寄存器三个转态,因此所控制的部件是一个三态门。
【标准答案】信号SRout所控制的部件是一个三态门,用于控制移位器与总线之间数据通路的连接和断开。
(4)端点1~9中,哪些端点须连接到控制部件的输出端?
【解析】需要连到控制部件的,表明与控制部件相关,从图中看,可以很清楚看到1,2,3,5,8这五个口是进行控制操作的,因此需要连接到输出端,将控制器转态输出到控制部件上。
(5)为完善单总线数据通路,需要在端点1~9中相应的端点之间添加必要的连线。写出连线的起点和终点,以正确表示数据的流动方向。
【解析】题中是补齐需要连接到总线上的线,通过观察图中的数据流向,可以看到通过总线将数据要传输到ALU上,则6跟9需要连接起来,才能将数据传到MUX选择器中,在通过7跟4连接,将数据传输到ALU的B端。
【答案】6-->9,7-->4
(6)为什么二路选择器MUX的一个输入端是2?
【解析】下图为二路选择器的逻辑电路图,sel为控制端,即当sel为0时输出X0,当sel端为1时,输出X1。观题中给的条件,还有一个按字节编址,且指令字长固定为16位,因此每条指令需要2个内存单元,但进行执行时,一条指令的地址需要(PC)+2。
【答案】因为每条指令占用2个内存单元,顺序执行时,下条指令地址为(PC)+2,MUX的一个输入端为2,可便于执行(PC)+2操作。
【总结】本题的解题思路是通过题中给的条件为基本点,通过对基础元件的功能理解和对总线数据传输的基本概念,进行分析。从而对每道题进行解析。