cpu的主要组成部分和工作过程(小白必看的CPU基本组成原理以及基本运行过程)

基本介绍

cpu的主要组成部分和工作过程(小白必看的CPU基本组成原理以及基本运行过程)(1)

cpu基本构成

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

我们先看运算器。

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

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

接着我们再来看控制器。

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

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

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

实际运算过程

举个栗子:

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

cpu的主要组成部分和工作过程(小白必看的CPU基本组成原理以及基本运行过程)(2)

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

cpu的主要组成部分和工作过程(小白必看的CPU基本组成原理以及基本运行过程)(3)

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

cpu的主要组成部分和工作过程(小白必看的CPU基本组成原理以及基本运行过程)(4)

cpu的主要组成部分和工作过程(小白必看的CPU基本组成原理以及基本运行过程)(5)

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) 将其存储到存储体中
  • 第五步指令 前面取数也是一样的,取出的指令为停机指令
,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页