计算机组成原理10——建立数据通路

建立数据通路

指令周期(Instruction Cycle)

计算机执行一条指令的过程,可以分解为一下这样及步骤。

  • 取得指令(Fetch),也就是从PC寄存器里找到对应的指令地址,根据指令地址从内存中把具体的指令加载到指令寄存器中,然后把PC寄存器自增。
  • 指令译码(Decode),也就是根据指令寄存器里面的指令,解析成要进行什么样的操作。具体要操作哪些寄存器,数据或者内存地址。
  • 指令执行(Execute),对应具体的指令,进行算术逻辑操作、数据跳转或者直接的地址跳转。
  • 重复以上三步骤。

“Fetch-Decode-Execute”这样的循环,我们称之为指令周期

指令存放在存储器里,取指阶段,通过PC寄存器和指令寄存器取指令的过程,由控制器操作。指令的解码过程,也是由控制器进行。到了执行阶段,就是由算术逻辑单元,也就是运算器处理。如果是一个简单的无条件地址跳转,直接在控制器里完成。

除了指令周期,还有另外两个常见的周期。

机器周期或者CPU周期。我们一般把从内存里读取一条指令的对短时间,称为CPU周期。

时钟周期。就是我们机器的主频。一个CPU周期,通常由几个时钟周期累积起来。

在这里插入图片描述

所以,一个指令周期,包含多个CPU周期,而一个CPU周期包含多个时钟周期。

建立数据通路

数据通路就是我们的处理器单元。它通常由两类原件组成。

  • 操作元件,也是组合逻辑元件,ALU。他的功能是在特定的输入下,生成特定的输出。
  • 存储元件,也是状态元件。

我们通过总线的方式,把他们连接起来,就可以完成数据的存储、处理和传输了,这就建立了数据通路了。

控制器,他的逻辑就是循环取指和译码,然后把生成的控制信号,交给ALU去处理。不过它可以解析CPU支持的指令。

如何搭建CPU

第一,需要ALU,根据输入计算输出结果。

第二,我们需要能够进行状态读写的元件。能够存储上一次计算结果,在需要的时候拿出来用。如锁存器、D触发器。

第三,我们需要一个自动的电路,不停的实现PC寄存器自增,自动执行指令周期的步骤。

第四,我们需要一个译码的电路。

把这四类电路,通过各种方式组合在一起,就能实现CPU了。

自动电路的实现

也就是实现时序逻辑电路。

一开始下图的开关A打开,开关B闭合。一旦合上A,磁性线圈通电,产生磁性,B从闭合变成断开。一旦断开,电路中断,磁性线圈失去磁性。于是B又反弹回去成了闭合的状态。这样我们的电路就会来回不断地在开启、关闭两个状态切换。

在这里插入图片描述

在这里插入图片描述

存储电路的实现

我们先来看下面的RS触发器

在这里插入图片描述

以上电路

  • 接通开关R,输出为1,断开开关输出还是1。
  • 接通开关S,输出变为0,断开开关输出还是0。
  • 当两个开关都断开时,输出结果取决于之前的输出结果

下图是该电路的真值表

在这里插入图片描述

此时我们在这个电路里加一个时钟信号和反相器如下图,就形成了D触发器。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YtUyD3ag-1645862180996)(C:\Users\张小瑄\Desktop\图片\Snipaste_2022-02-26_10-20-54.jpg)]

  • 当CLK信号是1的话,R和S就可设置输出Q
  • 当CLK信号是0的话,无论R和S如何设置,输出Q都是不变的

通过数据信号D写入操作,一个D触发器,只能控制1比特的读写。拿N个触发器,就可以同时控制N位的读写。CPU里面的寄存器就可以通过D触发器来构造。

译码电路的实现

译码器,就是从输入的多个位的信号中,根据一定的开关和电路的组合,选出自己想要的信号。

比如3-8译码器,通过三条输入信号来选择8个不同的地址。

PC寄存器的实现

在这里插入图片描述

加法器的两个输入,一个始终设置成1,另外一个来自D触发器。我们把加法器的输出结果,写入到D触发器里。D触发器里面的数据在时钟信号为1的时候更新。这样我们每过一个时钟周期,就能固定的增加1了。

建立数据通路,构造CPU

在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一直饿着肚子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值