什么是cpu可以直接访问的存储器(什么是cpu有什么功能)

基本介绍

什么是cpu可以直接访问的存储器(什么是cpu有什么功能)

cpu基本构成

这是一个CPU的基本构成,它主要分为两个部分一个是运算器,一个是控制器,下面的主要做一个简单的了解。

我们先看运算器。

这个是计算器用于实现计算的(废话)

这其中有4个部分组成分别是ACC(放数的),MQ(放数的和用来乘除的),X(放数的),ALU(用来计算的)。

接着我们再来看控制器。

这相当于CPU的大脑(好像怪怪的)

CPU的控制器有三个部分组成,CU(控制单元用来分析指令的),IR(存放当前要执行的指令),pc(计数器,用来读取下一条指令)

上面干巴巴的介绍说完了,实际上也很难记住,下面会有一个实际的例子,这样会更加方面理解。

实际运算过程

举个栗子:

当前C语言执行了这样一段代码,那么CPU在运行过程中是怎样的一个过程呢?

什么是cpu可以直接访问的存储器(什么是cpu有什么功能)

一、首先整段代码会被加载到内存(主存储器中)也就是下图那样

什么是cpu可以直接访问的存储器(什么是cpu有什么功能)

二、此时CPU会通过控制器中的PC读取存放在内存中的指令,进行分析和执行(此时PC初始为0)

什么是cpu可以直接访问的存储器(什么是cpu有什么功能)

什么是cpu可以直接访问的存储器(什么是cpu有什么功能)

cpu基本运行原理

  • 首先指令的存储字长为16bit也就是16个2进制数,但是在执行的时候 系统会自动拆解成操作码和地址码
  • 第一步指令 从上面两个操作来看,1-5的步骤都是一样的就是通过pc这样的计数器的顺序的取指,唯一不同的就是从6开始的步骤,不仅是步骤和次数都不一样这取决于指令本身。
  • 来捋一下很简单从最基本的逻辑来看就是PC(计数器)从零开始,将这个0传给MAR也就是地址寄存器 说我们想要第0行的数据
  • MAR则把存储体中的第0行的数据找到通过MDR 柜台给到指令寄存器IR
  • 此时IR中就存放着我们已经取出来的还没有执行的数据 这个数据也就是我们的指令
  • 此时IR会将指令中的操作码发送给CU 分析后得知这是一个取数的指令,然后IR将0行指令的地址码发送给MAR (0000000101)也就是第5行的数据 a=2 将这个值放在acc中
  • 第二步指令 上面这一些操作完成之后PC计数器就会自动加一,去除我们的第一行指令进行执行,而我们要计算的a*b的前面部分都是一样的,直接从执行操作码开始
  • CU分析之后发现是一个乘法指令,则将第1行的地址码的数据也就是b=3放到MQ乘商寄存器中
  • 现在cpu已经满足了乘数和被乘数,cpu开始进行乘法操作了,先将acc的a=2 被乘数放在x通用寄存器 通过ALU算术逻辑单元进行乘法操作 并将结果放在ACC中
  • (如果乘数太大则需要MQ的辅助)
  • 接着是第三步 算加法 前面取数阶段都是一样的 不同的就是取出的c=1的值是放在通用寄存器x中的 然后控制单元CU 给ALU 发送消息 需要计算加法吧ACC和X中的值相加 再放到ACC中
  • 第四步指令 前面的取数也是一样的,只是取得的操作码通过CU分析为存数指令 将地址码发送给MAR(地址为十进制8) 将值发送给MDR(a*b+c) 将其存储到存储体中
  • 第五步指令 前面取数也是一样的,取出的指令为停机指令

创业项目群,学习操作 18个小项目,添加 微信:80709525  备注:小项目

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 sumchina520@foxmail.com 举报,一经查实,本站将立刻删除。
如若转载,请注明出处:https://www.sumrw.com/5130.html