CPU的内部构造

CPU执行流程
通俗描述

1,从内存中读取数据,然后放到寄存器中
2,把寄存器中的数据写入到内存
3,进行数学运算和逻辑运算(加减乘除,AND,OR)
4,依据相应的条件进行跳转,执行其他指令(一条指令跳转到另外一条指令)

专业描述:

第一:取指令

字面意思很好理解啊,不就是拿到需要的指令嘛,那么指令在哪嘞,必须是在内存啊,也就是需要从内存中取出我们需要的指令,然后干嘛,不就是把指令放到CPU中的寄存器嘛,这个取指令就是这么一个过程。

第二:指令译码

这个是不是很快想到我们上面说的指令译码器,这个不就是对上一步拿到的指令做分析嘛,干嘛要分析,我得看看你这个指令到底要干啥啊,不然CPU怎么干活嘞

第三:执行指令

这个不就更好理解了,就是开始干活啦,实现相应的功能了

第四:访问取数

直观上好像没有那么好理解,其实啊,说的就是,我们根据上面的操作,有可能需要从内存中去拿数据,啥意思嘞,要知道,内存存放的是数据和指令,比如执行a+b的操作,我们得到相加的指令,对于a和b都是操作数,它们也是存放在内存中的,是不是也需要去内存中去拿到它们

CPU执行流程之内存

CPU和内存总是分不开的,这里简单对内存坐下介绍,方便对CPU的理解,内存自然而然是存储部件,存储的是啥呢?一般来说,就是数据和指令,而且我们常说的内存指的就是电脑中的内存条,就是用来存储程序啊,数据啊,指令啊这些东西。

形象点说,其实内存可以看作一个个的小格子,每个格子都是用来存储数据的,而且每个格子还有编号,也就是内存地址,根据它可与拿到对应内存存储的数据,还需要知道的就是,如果断电的话,内存中的数据会被清除的

CPU内部构造运算器与控制器

运算器

算术逻辑单元(ALU)

这个是运算器中重要的一个组成,主要负责的就是对数据的处理,从而实现对数据的算术和逻辑运算

累计寄存器(AC)

通常叫做累计器,是一个通用寄存器,这个有啥用呢?上面说的ALU,当ALU处理完算术运算或者逻辑运算之后,会得到一个结果,这个结果就会保存在AC中

数据缓冲寄存器(DR)

这个DR也是存放数据的,存放的主要是从内存读取过来的数据,会暂时存放在这个DR中,这里就相当于内存和CPU之间做数据传送的一个中转站,为啥会有这个,大家都是到CPU和内存的速度是有很大差别的,中间引入一个DR,一定程度上起到了速度上的缓冲作用,不至于速度相差太猛

状态条件寄存器(PSW)

这个貌似有点不好理解,首先寄存器还是保存数据的,所以PSW自然也是保存某一类数据的,它保存的主要是由算术指令和逻辑指令运行或者测试的结果建立的各种条件码内容,一般分为状态标志和控制标志,知道就行

控制器

指令寄存器(IR)

寄存器是保存东西的,指令寄存器自然就是保存指令的,也就是说CPU要执行一条指令的话,需要先把指令从内存上读取,然后放到我们上面说的数据缓冲寄存器中,之后再从DR放到IR中,接着嘞,会有一个叫做指令译码器的东西根据IR的内容生成很多的微操作指令,从而去控制其他部件已完成相应的功能

程序计数器(PC)

这个学过Java内存结构的应该了解,它保存着下一条要执行的指令,也就是说当一个程序要执行的时候,会把这个程序的起始地址存到这个PC中,如果这个指令被执行的话也不用担心,CPU会自动修改,使得PC存放下一条要执行的指令

地址寄存器(AR)

这个就是保存着CPU访问内存上的那一块内存的内存地址,为啥要保存这个,因为CPU和内存速度相差比较大,所以CPU要保存着正在访问的那块内存的地址,直到内存的读写操作完成,不然,找不到之前访问的是哪个内存单元了啊

指令译码器(ID

简单点就是对指令做分析的,看看你这个指令要干啥

关注博客,分享实用技术

发布了337 篇原创文章 · 获赞 105 · 访问量 44万+

猜你喜欢

转载自blog.csdn.net/qq_37022150/article/details/104777145