你好,我是 shengjk1,多年大厂经验,努力构建 通俗易懂的、好玩的编程语言教程。 欢迎关注!你会有如下收益:
- 了解大厂经验
- 拥有和大厂相匹配的技术等
希望看什么,评论或者私信告诉我!
文章目录
- 一、 前言
- 二、 CPU 全称 Central Processing Unit,中文翻译为中央处理器。
- 三、CPU组成
- 四、门电路
- 五、CPU计算原理
- 六、总结
一、 前言
CPU 想必我们每个人都听过,但它是既熟悉又陌生,今天呢,我们就来解开 CPU 的面纱。
注意:文章是之前发头条的,但头条有个问题就是时间一长文章就没有办法编辑了,所以后续会再这个平台上汇总
二、 CPU 全称 Central Processing Unit,中文翻译为中央处理器。
你知道CPU吗?其实我们身边好多东西都用到了它,比如智能手表、手机、电脑。如果这些设备想要正常运行,就必须得有CPU。比如,华为手机的麒麟990处理器,其实就是CPU的一种。
三、CPU组成
接下来我们先了解一下CPU是由哪几部分组成的:
CPU组成
控制单元(Control Unit,CU):控制单元是CPU的重要组成部分,它负责控制计算机的操作。控制单元从内存中读取指令,解码指令并控制计算机的各个部件执行指令。
算术逻辑单元(Arithmetic Logic Unit,ALU):算术逻辑单元是CPU的另一个重要组成部分,它负责执行算术和逻辑运算。算术逻辑单元可以执行加、减、乘、除等算术运算,也可以执行与、或、非等逻辑运算。
寄存器(Register):寄存器是CPU内部的一组高速存储器件,用于存储指令和数据。CPU可以从寄存器中读取数据,也可以将数据写入寄存器中。
时钟,负责发出CPU开始计时的时钟信号。
缓存(Cache):缓存是CPU内部的一种高速缓存存储器,用于存储最近使用的指令和数据。缓存可以提高CPU的运行速度,减少对内存的访问次数。
由上述可知,ALU是负责计算的,所以我们本文的重点也是ALU。其实不管是ALU还是其他部分,甚至整个CPU都是由门电路组成的。那么基本的门电路都有哪些呢?
四、门电路
And门:
Or门
Not门
这么门可以随意组合,比如:
And3门
Xor门
16位加法器
多路复用器
等等,这些门电路一点点的由最初的And门、Or门、Not门,一步步组装成成Xor门、多路复用门等等,就这样一路组装下去,最终就可以组装成一个简单的ALU。需要注意的是ALU本质与Xor门或者多路复用门并没有本质上的区别,只不过ALU比他们更复杂了一下、输入的参数比他们的更多了,仅此而已!
五、CPU计算原理
最终我们组装出来了,稍微复杂一点的ALU:
其中zx、nx、zy、ny、f、no 都是控制指令的输入
zr、zg是标识位,zr用来标识out是否为0,为零时,zr被设置为1
zg用来标识out是否为负数,为负数时,zg为设置为1
这是ALU对应的真值表
也就是说当zx=0 nx=0 zy=0 ny=1 f=1 no=1时ALU计算是 y-x
(如果想要让 zx=0 nx=0 zy=0 ny=1 f=1 no=1时ALU计算是 y+x 可以不?当然可以,取决于你怎么组装ALU,不同的组装方式,同样控制指令表达的意义是不一样的。
本文这种组装方式,使得 当zx=0 nx=0 zy=0 ny=1 f=1 no=1时ALU计算是 y-x)
至此的话,如果我们通过编程语言或者计算器计算
2-1
经过层层转化后,达到ALU的指令为
x=1
y=2
zx=0
nx=0
zy=0
ny=1
f=1
no=1
然后经过ALU的计算后,其输出的结果为
out=1
zr=0
zg=0
拿到ALU的输出数据后,经过层层转化,最后在屏幕或者显示器上显示结果
1
即如图:
计算机计算2-1的结果
六、总结
本文通过简单易懂的方式介绍了CPU的组成和计算原理,重点介绍了ALU的门电路组成和控制指令的输入输出,以及如何通过ALU计算两个数的差或和,并最终在屏幕或显示器上显示结果。本文的重点在于ALU的门电路组成和控制指令的输入输出,对于想要深入了解计算机原理的读者来说,是一篇不错的文章。