计算机组成原理:程序执行过程

引言

学习《计算机组成原理》中”程序执行过程“时,对这部分的理解不够清晰,自己查阅了一些资料,现整理一下。


书籍内容

原先不理解的是下图,它高度抽象了指令在CPU中的执行过程,经资料查阅,现重新整理一下对这张图的理解。
计算机组成原理:程序执行过程_第1张图片
首先需要理解,Memory是储存器,存储需要运行的程序(虽然图中是LOAD X,但实际存放的是对应的机器码01串)和数据;Interpreter,Control signal generator,Adder和Register都是CPU中的部件;Clock时钟,用来保证整个系统稳定和谐地运行。下面单独分析上述指令。

LOAD X

  1. 从存储器读取指令LOAD X,保存到Interpreter
  2. Interpreter分析指令,识别其中的操作码(LOAD)和地址码(X,指向数据所在的内存单元地址)
  3. 在Control signals控制下,X指向的数据被存放到Register中

Z = X + Y

  1. 从存储器读取指令Z = X + Y,保存到Interpreter
  2. Interpreter分析指令,识别其中的操作码(=,+)和地址码(Z,X,Y,都是地址)
  3. 在控制信号下,X和Y寄存器中的值相加,结果放在Z寄存器

STORE Z

  1. 从存储器读取指令STORE Z,保存到Interpreter
  2. Interpreter分析指令,识别其中的操作码(SOTRE)和地址码(Z)
  3. 在控制信号下,Z寄存器中的值被保存到对应存储单元中

更加细节的程序执行过程讲解

主要参考的资料为计算机组成原理指令与程序在主机上执行过程,下面是自己对这篇博客内容的重新总结。
计算机组成原理:程序执行过程_第2张图片

  • PC(Program Counter)程序指针:存放当前欲执行指令的地址
  • IR(Instruction Register)指令寄存器:存放当前欲执行的指令
  • CU(Control Unit)控制单元:分析指令并发出各种命令控制指令的执行
  • ALU(Arithmetic and logical unit)算数逻辑单元
  • ACC(Accumulator):累加器
  • MQ(Multiplier Quotient):乘商寄存器
  • MAR(Memory Address Register):存储器地址寄存器
  • MDR(Memory Address Register):存储器数据寄存器
  • R/X :操作数寄存器

拿指令LOAD X为例,整个过程可以概括为:

  1. 取指令 PC — MAR — M — MDR — IR
  2. 分析指令 IR — CU
  3. 执行指令 CU — MAR — M — MDR — ACC

取指令

  1. PC将指向的指令地址发送给MAR
  2. MAR将指令的地址发送给M
  3. 在控制器的控制下,M将对应存储单元的指令存入MDR
  4. 将MDR中的指令存入IR

分析指令

IR中的操作码OP(IR)存入CU,CU分析指令,并控制部件执行指令

执行指令

  1. 在控制器控制下,IR中的地址码Ad(IR)发送到MAR
  2. MAR将地址发给M
  3. M将对应地址的数据发给MDR
  4. MDR的数据发送到ACC寄存器中

你可能感兴趣的:(计算机组成原理,单片机,嵌入式硬件,硬件工程)