CPU内部总线方式,指令周期的数据流典型题目

 例  已知单总线计算机结构如图9.5所示,其中M为主存,XR为变址寄存器,EAR为有效地址寄存器,LATCH为锁存器。图中各寄存器的输入和输出均受控制信号控制,例如,PC_{i}表示PC的输入控制信号,MDR_{o}表示MDR的输出控制信号。假设指令地址已存于PC中,画出“ADDX,D”(X为变址寄存器XR,D为形式地址)和“STA*D”(*表示相对寻址,D为相对位移量)两条指令的指令周期信息流程图,并列出相应的控制信号序列。

(1)ADD X,D——该指令将变址寻址和加法指令相结合,

首先取指周期,PC将下一条指令地址通过CPU内部总线送入MAR,对应的控制信号为PC^{o}和MAR_{i}

然后MAR将地址送入地址总线,再进一步进入存储体M中,找到该地址在M中对应的数据内容M(MAR),通过地址总线送入CPU内的MDR,这一步对应的控制信号为MAR_{Eo}和MDR_{Ei},其中E代表External,表示非CPU内总线而是来自CPU外部;

接下来的控制信号为1->R,即给存储器发送读信号;

MDR取到了来自存储器的指令之后,将其送入指令寄存器IR(通过CPU内部总线Bus),对应的控制信号为MDR_{o}和IR_{i}

随后PC进行自动加一的操作,取指令周期完成。

然后是执行周期,变址寻址是将变址寄存器XR的内容与指令的地址码部分(形式地址)相加,得到有效地址EA,对应的操作是(XR)+Ad(IR)->EAR,通过地址加法器,此时EAR中的即为有效地址,对应的控制信号如图;

然后EAR通过Bus将有效地址EA送入MAR中,MAR再通过送地址到地址总线等一系列操作将数据取回MDR,此时MDR得到加法的加数,通过Bus将其存放到ALU两个输入之一的暂存器X中,而被加数原本就在ACC寄存器中;

接下来打开相应的控制信号即可利用ALU实现对两个操作数的加法运算,并将结果先放入锁存器LATCH,再由LATCH通过Bus最终将结果存入ACC中。该指令执行周期完成。

(2)STA  _{*}D——该指令将相对寻址和存数指令(写主存)相结合,

首先是取指周期,与(1)一致:PC将下一条指令地址通过CPU内部总线送入MAR,对应的控制信号为PC^{o}和MAR_{i};然后MAR将指令的地址送入地址总线,该地址再进一步进入存储体M中,找到该地址在M中对应的数据内容M(MAR),通过地址总线送入CPU内的MDR,这一步对应的控制信号为MAR_{Eo}和MDR_{Ei};接下来的控制信号为1->R,即给存储器发送读信号;MDR取到了来自存储器的指令之后,通过CPU内部总线Bus,将其送入指令寄存器IR中,对应的控制信号为MDR_{o}和IR_{i};随后PC进行自动加一的操作,取指令周期完成。

然后是执行周期,相对寻址是将PC的内容与指令中的形式地址相加,得到有效地址EA,对应的操作是(PC)+Ad(IR)->EAR,通过地址加法器,此时EAR中的即为有效地址,对应的控制信号如图;

然后EAR通过Bus将有效地址EA送入MAR中,将准备要写入主存的数从ACC,经过Bus送入MDR中,给主存送入写控制信号,1->W;

最后将MDR的数据,通过数据总线送入地址是EA的存储单元中。该指令执行周期完成。

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

whyBo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值