寄存器

程序员可见:

  • 通用寄存器(R0)
    用于传送和暂存数据,也可参与算术逻辑运算,并保存运算结果。
  • 程序计数器(PC/IP)
    PC寄存器中的内容,是下一条要取的指令的16位存储单元地址,在程序执行的过程中,PC中的值会自动加一。

程序员不可见:

  • 存储器地址寄存器(MAR)
    存储操作数在内存中的地址。
  • 存储器数据寄存器(MDR)
    存放读出或写入主存数据的主存数据寄存器。
  • 地址寄存器(AR)
    用来保存当前CPU所访问的内存单元的地址。
    当CPU和内存进行信息交换,即CPU向内存存/取数据时,或者CPU从内存中读出指令时,都要使用地址寄存器和数据缓冲寄存器。同样,如果我们把外围设备的设备地址作为像内存的地址单元那样来看待,那么,当CPU和外围设备交换信息时,我们同样使用地址寄存器和数据缓冲寄存器。
  • 指令寄存器(IR)
    用于存放当前从主存储器读出的正在执行的一条指令。
    在计算机的中央处理机中,一般都有专用的指令寄存器,其长度等于指令长度,即一般是计算机字长。指令寄存器通常与内存储器的缓冲寄存器相连。

当执行一条指令时,先把它从内存取到数据寄存器(DR,Data Register)中,然后再传送至IR。指令划分为操作码和地址码字段,由二进制数字组成。为了执行任何给定的指令,必须对操作码进行测试,以便识别所要求的操作。指令译码器就是做这项工作的。指令寄存器中操作码字段的输出就是指令译码器的输入。操作码一经译码后,即可向操作控制器发出具体操作的特定信号。

在计算机控制器中存放将要执行的指令的寄存器。当计算机的某一计算循环开始时,先根据地址寄存器(AR)的地址,从内存储器中读出一条指令,存入指令寄存器(IR)中。指令寄存器(IR)的相应位送入指令译码器(操作码译码、变址译码等)。根据译码结果产生相应的控制信号,完成指令规定的运算、传送数据等动作。

取指令
取指令阶段完成的任务是将现行指令从主存中取出来并送至指令寄存器中,具体的操作如下:

  1. 现行指令地址送至存储器地址寄存器,记作PC→MAR
  2. 向主存发送读命令,启动主存作读操作,记作1→R
  3. 将MAR(通过地址总线)所指的主存单元中的内容(指令)井数据总线读至MDR内,记作M(MAR)→MDR
  4. 将MDR的内容送至IR,记作MDR→IR
  5. 指令的操作码送至CU译码,记作OP(IR)→CU
  6. 形成下一条指令的地址,记作(PC)+1→PC

某 16 位计算机的主存按字节编码,存取单位为 16 位;采用 16 位定长指令字格式;

CPU 采用单总线结构,主要部分如下图所示。图中 R0~R3 为通用寄存器;T 为暂存器;SR 为移位寄存器,可实现直送(mov)、左移一位(left)和右移一位(right)3 种操作,控制信号为 SRop,SR 的 输出由信号SRout 控制;ALU 可实现直送 A(mova)、A 加 B(add)、A 减 B(sub)、A 与 B(and)、 A 或 B(or)、非 A(not)、A 加 1(inc)7 种操作,控制信号为 ALUop。

在这里插入图片描述
请回答下列问题。
1)图中哪些寄存器是程序员可见的?为何要设置暂存器 T?
2)控制信号 ALUop 和 SRop 的位数至少各是多少?
3)控制信号 SRout 所控制部件的名称或作用是什么?
4)端点①~⑨中,哪些端点须连接到控制部件的输出端?
5)为完善单总线数据通路,需要在端点①~⑨中相应的端点之间添加必要的连线。写出连线 的起点和终点,以正确表示数据的流动方向。
6)为什么二路选择器 MUX 的一个输入端是 2?

解答 :

1 )程序员可见寄存器为通用寄存器( R0 ~ R3 )和 PC 。因为采用了单总线结构,因此,若无暂存器 T ,则 ALU 的 A 、 B 端口会同时获得两个相同的数据,使数据通路不能正常工作。

【评分说明】回答通用寄存器( R0 ~ R3 ),给分;回答 PC ,给分;部分正确,酌情给分。设置暂存器 T 的原因若回答用于暂时存放端口 A 的数据,则给分,其他答案,酌情给分。

2 ) ALU 共有 7 种操作,故其操作控制信号 ALUop 至少需要 3 位;移位寄存器有 3 种操作,其操作控制信号 SRop 至少需要 2 位。

3 )信号 SRout 所控制的部件是一个三态门,用于控制移位器与总线之间数据通路的连接与断开。
【评分说明】只要回答出三态门或者控制连接 / 断开,即给分。

4 )端口 ① 、 ② 、 ③ 、 ⑤ 、 ⑧ 须 连接到控制部 件输出端。

【评分说明】答案包含④、⑥、⑦、⑨中任意一个,不给分;答案不全酌情给分。
5 )连线 1 , ⑥→⑨;连线2,⑦→④。
【评分说明】回答除上述连线以外的其他连线,酌情给分。

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

  • 11
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值