-
作为一个程序员,
CPU
的这些硬
核知识你必须会!
CPU
对每个程序员来说,是个既熟悉又陌生的东西?
如果你只知道
CPU(
central
processing unit
)
是中央处理器的话,那可能
对你并没有
什么用,
那么作为程序员的我们,
< br>必须要搞懂的就是
CPU
这家伙是如何运行的,
尤其要搞懂它里面的寄存器是怎么一回事,
因为这将让你从底层明白程序
的运行
机制。
随我一起,来好好认识
下
CPU
这货吧
把
CPU
掰开来看
对于
CPU
来说,我们首先就要搞明白它是怎么回事
,也就是它的内部构造,当
然,
CPU
那么牛的一个东西,构造一定是极其复杂的,毕竟是超高科技玩意,
所以啊,我们今天说
的组成什么的,都是指的主要的,对我们程序员有用的,需
要了解的那一部分,切莫抬杠
哦
首先嘞,我希望你先记住这句话:
CPU
所负责的就是解释和运行最终转换成机器语言的程序内容
另外啊,
说起
CPU
,
一定离不开内存,
在今天的
介绍中,
也会简单的说说内存,
因为后期也会单独出一篇讲解下
内存,
毕竟了解这些对我们程序员来说很重要的,
所以
CPU
和内存经常在一块来讲,他们其实是有很多的晶体管组成的,一般
称
他们为
IC(
integrated
circuit
)
,也就是集成电路的意思。
< br>
接下来我们就来看看
CPU
的
组成,注意我之前说的,这里说的组成一般是指的
主要部分,毕竟
CPU
结构复杂。
我们需要知道的
< br>CPU
结构
重点需要关注寄存器
运算器
字面意思理解就是跟运算有关
的,
简单说就是负责运算从内存读取到寄存器中的
数据,
可以看作一个数据加工厂,
就是对寄存器中的数据做运算,
这些运算包含
基本的算术和逻辑运算。
然后对于运算器来说,我们要了解其中的几个重要角色,接下来我会挨个介绍:
< br>
算术逻辑单元(
ALU
)
p>
Arithmetic logic unit
< br>这个是运算器中重要的一个组成,
主要负责的就是对数据的处理,
从而实现对数
据的算术和逻辑运算
< br>累计寄存器(
AC
)
通常叫做累计器,是一个通用寄存器,这个有啥用呢?上面说的
ALU<
/p>
,当
ALU
处理完算术运算或者逻辑运算
之后,会得到一个结果,这个结果就会保存在
AC
中
数据缓冲寄存器(
DR
)
这个
DR
也是存放数据的,
存放的主要是从内存读取过来的数据,
会暂时
存放在
这个
DR
中,这里就相当于内存
和
CPU
之间做数据传送的一个中转站,为啥会
有这个,大家都是到
CPU
和内存的速度是有很大差别
的,中间引入一个
DR
,
一定程度上起
到了速度上的缓冲作用,不至于速度相差太猛
状态条件寄存器
(
PSW
)
这个貌似有点不好理解,首先寄存器还是保存数据的,所以
PSW
自然也是保存
某一类数据的,
它保存的主要是由算术指令和逻
辑指令运行或者测试的结果建立
的各种条件码内容,一般分为状态标志和控制标志,知道
就行
我们需要了解以上的这几个组成部分,
< br>这都是运算器的核心,
另外需要特别说一
下的就是它们每
一个其实都有一个英文缩写,比如
ALU
就是算术逻辑单元的意
思,
为啥要说这个嘞,
因为英文缩写毕
竟简便而且有逼格,
所以我们一般交流的
时候会说
ALU
而不是算术逻辑单元,因此,记住他们的缩写也很重要哦。
不然跟别人交流起来的话,别人一出口就是
AL
U
,
DR
啥的,你很容易跟不上节
p>
奏啊。
对
CPU
中的运算器有个基本认识以后,我们再来看看另外一个重要组成
控制
器
控制器
控制控制,
< br>也就是起到一个控制作用,
上面介绍的运算器只是起到了运算的功能,
但是控制器就比较牛,它是控制整个
CPU
的工作
,对于控制器,一般要能够保
证程序的正确执行以及能够处理异常事件
< br>
同样的,对于控制器来说,我们需要重点关注如下几个:
p>
指令寄存器(
IR
)
寄存器是保存东西的,指令寄存器自然就是保存指令的,也就是说
< br>CPU
要执行
一条指令的话,
需
要先把指令从内存上读取,
然后放到我们上面说的数据缓冲寄
存
器中,之后再从
DR
放到
IR
中,接着嘞,会有一个叫做指令译码器的东西根
据
IR
的内容生成很多的微操作指令,从而去控制其他部件已完成相应的功能
程序计数器(
PC
)<
/p>
这个学过
Java
内存结构的应该了解,它保存着下一条要执行的指令,也就是说
当一个程序要执行的
时候,
会把这个程序的起始地址存到这个
PC
< br>中,
如果这个
指令被执行的话也不用担心,
CPU
会自动修改,使得
PC
存放下一条要执行的
指令
地址寄存
器(
AR
)
这个就是保存着
CPU
访问内存上的那一块内存的内存地址,为
啥要保存这个,
因为
CPU
和内存速度
相差比较大,所以
CPU
要保存着正在访问的那块内存的
地址,
直到内存的读写操作完成,
不然,
p>
找不到之前访问的是哪个内存单元了啊
指令译码器(
ID
简单点就是对指令做分析的,看看你这个指令要干啥
不知道你有没有发现,
我们上面无论再介绍运算器还是控制器的时候,<
/p>
都大量提
及寄存器,这足以说明寄存器的重要性,不是有句话说其
实
CPU
就是寄存器的
集合体,不过在
说寄存器之前,我们还是很有必要先来简单的看看内存。
简单说下内存(以后会单独说)
CP
U
和内存总是分不开的,这里简单对内存坐下介绍,方便对
CP
U
的理解,内
存自然而然是存储部件,
存储的是啥呢?一般来说,
就是数据和指令,
而且我们
常说的内存指的就是电脑中的内存条,
就是用来存储程序啊,
数据啊,
指令啊这
些东西。
形象点说,其实内存可以看作一个个的小格子,每个格子都是用来存储数据的,
p>
而且每个格子还有编号,
也就是内存地址,
根据它可与拿到对应内存存储的数据,
还需要知道的就是,如果断电的话,内存中的数据
会被清除的。
CPU
的大部分都是寄存器
上面说了
CPU
其实由运算器和控制器两大部分
组成,其实无论是运算器还是控
制器,都离不开寄存器,可以说,
CPU
就是寄存器的天下,因此,对于
CPU
,
一定要掌握好寄存器,
CPU
做的一些运算其实就是通过寄存器来实现的,可以
看看这篇文章:一个程序在计算机中
是怎么运行的?
先记住一句话:
<
/p>
我们使用的
Java
,
< br>python
这些都是高级语言,
编写的程序最终会转成
机器语言,
之后就会进入
CPU
运算,
实质就是通过
CPU
内部的寄存器来做相应的处理的
-
-
-
-
-
-
-
-
-
上一篇:怎么写英文简历(精华啊)
下一篇:请假条怎么写评语