首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >模型机的构建和指令的执行流程

模型机的构建和指令的执行流程

原创
作者头像
阑梦清川
发布2025-05-22 18:28:42
发布2025-05-22 18:28:42
4210
举报
文章被收录于专栏:学习成长指南学习成长指南

1.计算机结构简化模型---模型机

1.1存储器

存储器的主要结构如下图所示,左边的四位的事我们的存储器里面的内存单元的地址,框框里面的8位是一个字节,是我们的指令的具体内容,默认情况下都是按照字节编址,也就是默认情况下8bit就是一个地址,也就是我们下面的这个图片的一行表示的就是一个具体的内存单元的地址;

fig:
fig:

1.2CPU组成

下面的这个就是我们的CPU里面的部分组成内容,包含了指令寄存器,存放的是我们的正在执行的这个指令的内容,程序计数器,简称就是PC寄存器,存放的是我们需要执行的下一个指令的地址;

存储器地址寄存器MAR存放的就是我们访问的单元的地址,也就是我们CPU发送给存储器的内容,我们需要访问的地址;

存储器数据寄存器就是存储器拿到这个对应的地址里面的指令之后返回给我们的这个CPU时候的内容,这个里面存放的是我们的存储器里面的某一个内存单元的内容,也就是指令;

fig:
fig:

下面的这个就是寄存器和加法器,ALU就是运算器,两个输入的数据XY,计算的数据的结果存放到我们的Z里面去,如果产生进位之类的,就需要保存到我们的F里面去,他存放的是我们的结果的状态,可以理解为是flag的含义;

fig:
fig:

下面的是我们的内部总线是如何进行数据的传输的过程的,右边的这个图片就是为了方便大家进行理解的,我们的数据要传输给这个x这个加数位置,就需要通过这个数据总线进行这个传输的过程;

fig:
fig:

2.模型机是如何执行指令的

2.1指令的执行过程

取指令--译码--执行---回写,这个就是我们的指令执行的四个步骤,下面我们会逐步进行展开介绍每一个步骤究竟是进行了什么操作

我们会通过下面的一个案例详细说明该过程

2.2取指令的阶段

首先就是我们的控制器发出控制信号,把我们的这个PC寄存器里面的地址传输到MAR里面去,这个PC里面存放的实际上是将要执行或者是正在执行的这个指令的地址;

fig:
fig:

我们的MAR拿到这个数据之后,会把这个内容通过数据总线进行传输,并且我们的控制电路会发出这个读命令,告诉我们的CPU,这个需要进行读操作;

fig:
fig:

存储器的MAR知道即将访问的这个内存里面的地址是0001,并且这个存储器里面的控制逻辑知道这个将要进行的操作是读操作;

fig:
fig:

找到这个具体的内存单元的数据之后,会把这个具体的数据从到MDR里面去

fig:
fig:

这个时候我们的存储器的控制逻辑会通过这个控制总线向我们的CPU进行反馈,也就是这个图上面写的ready,表示你想要的数据我们这边都已经准备好了:

fig:
fig:

我们的CPU处理器得到这个信号之后,知道了这个数据准备好了,这个时候就可以把这个数据拿到自己的这个MDR里面去

fig:
fig:

MAR拿到这个指令之后,我们的这个过程还是没有结束的,MAR里面的内容需要存放到我们的IR寄存器里面去,这个时候我们的PC寄存器里面的内容越是需要更新的,保存需要执行的下一个指令的地址;

fig:
fig:

以上这个历程,才刚刚结束了我们的取指令的阶段,你没有听错,我们刚刚结束指令的执行过程的第一步,是不是觉得这个过程还是有些许的复杂的,但是你需要深刻的理解这个过程,否则确实学起来非常的难受;

2.3译码阶段

接下来我们需要执行的这个是对于得到的指令进行翻译,这个工作主要是交给我们的这个指令译码器进行完成的,通过翻译我们知道了这个朱玲想要进行的就是ADD操作,其中两个加数来自于我们的RO寄存器和存储器里面的6这个地址的位置;

这个时候控制电路金就会发出控制信号,到此,这个译码的阶段就完成了;

fig:
fig:

2.4指令执行阶段

对于指令的执行的阶段,我们主要完成的工作就是先把需要add操作的两个操作数拿到,因为一个操作数来自于我们的寄存器,另外一个来自于存储器,因此这个需要我们取指令,这个过程和第一步取指令的过程完全一致,拿到这个6位置的数据之后,放到我们的这个MDR,MDR再把这个数据通过数据总线传输给我们的Y里面去,通过ALU进行相加的操作;

fig:
fig:

2.5回写阶段

因为我们使用这个ALU运算器 执行加法操作之后,这个运算的结果需要进行保存,这个保存的过程就是回写,因为我们的这个结果需要保存到这个寄存器里面去,相当于就是对于这个寄存器里面的结果进行了更新这个操作,因此我们把这个操作进行回写;

之后,我们的PC因为之前已经更新了,这个时候继续去执行下一条需要执行的指令,因为这个PC里面存放的是需要执行的下一个指令的地址,这个时候又回到了我们的取指令的阶段了,这个新的周期就开始了,和上面的这个的分析的过程就是一样的了;

fig:
fig:

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.计算机结构简化模型---模型机
    • 1.1存储器
    • 1.2CPU组成
  • 2.模型机是如何执行指令的
    • 2.1指令的执行过程
    • 2.2取指令的阶段
    • 2.3译码阶段
    • 2.4指令执行阶段
    • 2.5回写阶段
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档