CPU的基本介绍及实际运算过程

处理器/DSP

891人已加入

描述

基本介绍

计算器

cpu基本构成

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

我们先看运算器。

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

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

接着我们再来看控制器。

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

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

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

实际运算过程

举个栗子:

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

计算器

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

计算器

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

计算器

计算器

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) 将其存储到存储体中。

第五步指令 前面取数也是一样的,取出的指令为停机指令。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分