个人理解的计算机以及指令的执行过程

  • 计算机CPU主要构成部分

    计算、控制、存储、总线四部分。计算单元一般叫ALU,负责执行运算。

    控制部分主要是指令控制器,负责指令的翻译和产生控信号。

    存储主要分为内存以及各种寄存器,内存用来存储指令和数据,寄存器则主要分程序计数、地址、指令、标志、求和等

              所有部件之前的通过总线连接来读写数据,同一时刻仅有一个部件能输出数据到总线。

  • 计算机的本质

    读取指令并执行、可以保存信息,具备条件跳转指令。(图灵完备)

  •  一条指令(机器码)执行的过程

    预置条件: 指令被放置到内存的某个地址中,程序计数器设置为改内存地址。

              一条的执行实质上是被分成一定数量微指令执行的,一个微指令对应一个时钟周期。

              指令控制器获取到指令后,根据指令以及微指令的序列产生特定的控制信号,微指令执行到一定步数后,一条指令也就结束了。

    比如一条机器码为 1001 0015,其内存地址为0001,如果我们定义为该指令为将内存0010地址中的数据加载到A寄存器。假设程序计数器当前计数为0001,微指令的数量限制为5条,整个过程如下。

              微指令计数为0时,指令控制器需要产生让程序计数器网总线输出0001,地址寄存器从总线读入的控制信号。(这样到下一步时,地址寄存器读入了地址0001)

              微指令计数为1时,指令控制器需要产生让内存输出,指令寄存器读入的的信号,同时允许程序计数+1。(这样到下一步时,内存地址0001中的数据被读入到指令寄存器)

    前两步为取指操作,到第三步时,指令控制才获取到要执行的指令为1001 0015。

    微指令计数为2时,指令控制器需要产生让指令寄存器输出地址 0015,地址寄存器从总线读入的控制信号。(这样到下一步时,地址寄存器读入了地址0015)

    微指令计数为3时,指令控制器需要产生让指内存输出,A寄存器从总线读入的控制信号。(这样到下一步时,完成了将0015地址的数据读入到A寄存器的整个过程)

    此时虽然动作已经完成,但微指令数量限制为5,因此当微指令计数为4时,不需要产生任何控制信号,也就是不允许任何动作。

              再往下时,微指令计数重置为0,由于之前程序计数器已经+1。这时将开始下一条指令的取值过程,一直继续下去直到执行停止指令。

 8位计算组成(参考自benblue 自制8位计算机)

原文地址:https://www.cnblogs.com/wp2ypy/p/13912481.html