• 计算机执行指令


    1.示例

    指令格式:ADD R0,[6]

    指令功能:

    ADD这是一条加法指令

    通用寄存器R0的内容+地址为6存储单元的内容=运算结果(更新到R0)

    2.过程

    R0里面数为00000011十进制为3

    地址为0110(6)存储单元内容为00000010十进制为2

    也就是计算3+2=5并且把运算结果返回到R0

    2.1取指

    ①控制器将指令的地址送往存储器。

    ②存储器按给定地址独处指令内容,送回控制器。

    上图具体步骤

    1.控制器发出控制信号将PC寄存器里面的地址通过内部总线传送到MAR寄存器里

    2.MAR寄存器将地址送到地址总线上,与此同时控制电路会在控制总线上发出控制信号,并表示这次访问

    存储器是读取数据。

    3.存储器的MAR寄存器收到地址总线上的地址,并将其保存下来,存储器里面的控制逻辑也会收到

    控制总线过来的控制信号,得知这次操作是读操作。

    4.存储器通过地址译码器对应地址0001存储单元内容,并将该存储单元内容送到MDR寄存器中。

    存储器的控制逻辑会通过控制总线向cpu反馈当前的传输已经主备好了。

    5.同时MDR里面内容也送到数据总线上,随后,cpu控制电路检测到来自控制总线准备好Ready信号,得知

    数据总线上准备好了数据。

    6.因此cpu中的MDR寄存器将当前数据总线上传送来的数值保存下来,这就获得了我们要取的指令。

    7.cpu中MDR寄存器的内容要传送到IR指令寄存器中,当指令进入IR中,取指这部分算是完成了吗?

    8.PC寄存器更新为下一条指令的地址。0001变为0010,取指阶段到此完成

    2.2译码

    ①控制器分析指令的操作性质

    ②控制器向有关部件发出指令所需控制信号

    上图具体步骤

    1.当前IR指令寄存器中的指令编码送到指令译码部件。

    2.指令译码部件根据指令编码很快会发现这是一条加法指令,而且是吧R0

    和存储器地址为6的单元内容相加,把结果存入R0中。控制电路据此产生控制信号发到相关部件中

    译码阶段到此完成。

    译码得到的指令:ADD R0,[6]

    2.3执行

    ①控制器从通用寄存器或存储器取出操作数

    ②控制器命令运算器对操作数进行指令规定的运算

    上图具体步骤

    1.根据这条指令需要去取操作数,其中一个操作数在存储器中地址为6的单元,因此在MAR寄存器中放入要取的操作数地址0110(十进制的6)。

    2.MAR寄存器将地址发送到地址总线,同时控制电路发送读取的信号到控制总线,存储器的控制逻辑和MRA寄存器会接收到相应的信号,然后

    查找到对应地址0110里面的内容00000010,送到MDR寄存器,存储器控制逻辑向cpu反馈当前数据已经准备好的信号,MDR内容会被放到

    地址总线上,cpu接收数据并放在MDR寄存器中。

    3.cpu里面MDR寄存器数据要参与加法运算,cpu控制器会将MDR寄存器数据通过内部总线传送到ALU的输入Y寄存器中,这一个操作数已经准备好了。另一个操作数存放在R0寄存器中,因此控制器会将R0里面数据通过内部总线传送到ALU另一个输入端X寄存器。

    4.现在两个操作数R0和6已经准备好了,在控制电路的控制下ALU就会进行运算将X和Y寄存器里面的内容进行加法运算。结果是00000101(十进制5)

    到此执行阶段就结束了。

    2.4回写

    ①将运算结果写入通用寄存器或存储器

    1.现在运算结果还在ALU的输出端Z寄存器,控制电路会给出相应控制信号,将z寄存器内容传送到

    R0寄存器中,R0里面原来的数据会被新的结果覆盖。这个加法运算的结果就保存到R0寄存器中

    回写阶段到此完成。

    3.CPU就会执行下一条指令

  • 相关阅读:
    HTML5标签的标准属性
    HTML页面莫名宽了一点
    HTTP通信基础HTTP协议数据结构分析
    JSONDecodeError: Expecting value: line 1 column 1 (char 0)
    linux 下安装redis报错解决
    单元测试unittest
    python嵌套循环练习
    python操作MySQL
    Open XML for Office developers
    在线处理页面内容
  • 原文地址:https://www.cnblogs.com/cui0x01/p/6348083.html
Copyright © 2020-2023  润新知