1.2 计算机执行指令的过程

Introduction

  • 计算机执行指令的过程:取指、译码、执行、回写
  • 本文以 ADD R0, [6] 为例演示计算机执行指令的过程
    ADD R0, [6] 含义为通用寄存器 R0与存储器 0110 中的数据求和,并存入寄存器 R0 (已知 R0中已存入data 0000011) (十进制 6等于二进制 0110
  • 计算机结构中术语 (详细见1.1 计算机简化模型):
术语 全称 注释
MAR memory address register
MDR memory data register
IR instruction register 存放正在或即将执行的指令
PC program counter 程序计数器 (存下一条指令的地址)
指令译码 确定IR中存放的是哪一条指令
控制电路 通过电路产生控制信号
GPR general purpose register R1 ~ Rn-1 (通用寄存器)
ALU 完成算术运算和逻辑运算

取指 (获取二进制形式的指令)

  • 将PC(program counter)中的将要执行的指令地址存入MAR中
  • 通过地址总线将MAR中的目标地址传入存储器,同时通过控制总线向存储器说明希望执行READ操作
  • 存储器收到指令后,通过地址译码器从0001地址中获得data,存入MDR并通过数据总线传给CPU中的MDA
  • CPU再将MDA中的data传给IR (instruction register)
  • 最后,将PC中的指令地址进行更新换为下一个循环中所需的地址(0010)

译码 (解读二进制的指令)

  • 将IR中的data通过指令译码解读出指令的意义,通过控制电路进行下一步执行操作
    1.2 计算机执行指令的过程_第1张图片

执行 (执行指令)

  • 将从译码中得出的地址 0110 传入MAR,类似于取指阶段,获得 0110中的data存入MDR
  • 将 MDR 与 R0 中的数分别赋给运算器的 X 和 Y 中通过 ALU 得出结果 Z

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GZVkbDPj-1592481085015)(https://upload-images.jianshu.io/upload_images/23796944-0385657c7465d6e6.gif?imageMogr2/auto-orient/strip)]

回写 (将结果进行存储)

  • 将 Z 的指存入 R0, 该进程结束
    (下一进程又由PC将地址传给MAR开始)
    1.2 计算机执行指令的过程_第2张图片

Reference

Coursera: 计算机组成 Computer Organization

你可能感兴趣的:(1.2 计算机执行指令的过程)