只要你认真读这篇文章,我觉得你也能制作出一个用于计算加法的处理器。
今天,计算机已经完全融入了我们生活。前几篇文章介绍了计算机整体的工作原理,这篇文章来单独介绍一下处理器是怎么计算加法的。
首先,想要了解计算机,就必须了解二进制。
我们常用的是十进制。用十个数字来表示。
当然,还有各种例如六十进制啊、十六进制啊等等,但人们最常用的还是十进制。
直到有一天,人们开始开发计算机。开发者们发现,使用二进制来开发计算机要比使用十进制方便的多。这是因为二进制刚好对应电路的开和关。
你可不要小看二进制。五个手指,使用十进制可以数到五,使用二进制就可以数到三十一。
注:在这篇文章中,我们在二进制数字的前面添加B来防止混淆。
如果你不相信,可以用手指头去数。
我们回到主题。怎么用二进制做加法呢?
你可能会说:“让计算机数手指头”
……
我们用一个表格来表示。
这是一个最小的二进制计算单位,它只能计算B1+B1以内的加法。
(无非就是B0+B0、B0+B1和B1+B1)
你应该还记得,加法中,和就等于加数加加数。
输入进位可以用一个加法竖式来解释。
注意箭头指向的1,它就是十位上的输入进位。是个位上加出的。
其实个位也有输入进位,是0。因为没有人给它进位,它是最低位。
我们回到上面那一张表格。
我们给他几个数。
注意,结果是个位上的。进位才是十位上的。
我们将输入进位为1。
注意,进位到这一位只代表一,而不是十。
现在,我们只能计算1+1,我们来改进一下。
我们将这个二进制计算单位叫做One Bit Adder(一位加法器)。
这根本不够计算一般的加法。谁会制作一个计算机来用于计算1+1呢?
我们多搞几个。
把它们连起来并给一个放置加数以及结果的地方。
先是第一个。
C-Out连接C-In。
由于它是最低位所以没有输入进位。
他的num1连接加数1的最低位,num2连接加数2的最低位,将个位上的结果(sum)显示到结果上,最终进位(C-Out)显示到最终进位上。
屏住呼吸。3---2---1---睁眼!
千万别晕!我们一起来分析。
我们发现红色线段连接着最低位的C-Out。差不多是这个样子的。
我们继续用竖式。
个位上的One-Bit-Adder就将进位1塞给了十位上的One-Bit-Adder。
十位上的One-Bit-Adder没有将进的1看成10,而是看成了1。
现在我们将理论上的变成实际上的,就是把它做出来用。
我们使用三个基本的部件就可以表示各种逻辑。
这三个部件分别是与、或、非。
什么是与?
很明显,与的意思就是都,英文中是and。只有两个条件都满足时才通电。例如1+1 = 2与 2+2 = 4,它就会通电。
什么是或?
或的意思同样很明显。两个条件只要满足一个就通电。1+1=2或2+2=3,它同样会通电。
什么是非?
非的意思就更明显了。它只有一个条件并输出与之相反的情况。例如,非1+1,它会通电。
我们可以用这几个部件做出更加复杂的部件。
与非、或非、异或、同或。
与非是什么?
与非的英文是not and,就是与反义词。例如,1+1=2与1+1=2,这句话会通电,但是1+1=2与非1+1=2就不会通电了。
或非门的英文是not or,或的反义词。
异或这个名字听起来很复杂,但是很简单。当两个输入不相等的时候才会通电。
最后一个是同或,就是一个异或加上一个非,也就是相等的时候通电。
我们可以制作出一个One-Bit-Adder。
我们来分析一下。
假设A为0、B为1、C-In为0。
标黑的线路是通电的线路。
我们从A经过的路线分析。
A首先来到下图箭头处并开始判断。
与的意思是两边相等,A的值1和B的值0不相等,因此不通电。
线路继续。
A又来到下图箭头位。
异或在两边不相等的时候才通电,1和0不相等,因此继续通电。
A和Cin的值不相等,因此通过,Sum的值为1。因此结果为1。
为什么这样连接线路呢?
我们先抛弃一些线路,单独计算个位上的和。
我们先让A为1。
A通过第一个异或门时,如果A为1,B为1就无法通过这扇门。B1+B1=B10,个位上是0。非常正确。
A通过第二扇异或门。C-In其实相当于另一个加数,和上一次检查差不多。
我们再将图片补全。
前面求Sum的步骤不再讲解,我们讲求C-Out的步骤。
继续假设A为1,但C-In也为1。
还是从A的视角讲。
A通过一个异或门,得出Sum为0。向下图箭头位置通电。
发现A和B不相等,因此不通电。
C-In通过了一扇异或门,来到下面的与门。
它发现A的值1和C-In的值相等,于是通电。
来到或门,继续通电,得出C-Out等于1。
将Sum和C-Out连接起来,得到B10。
验算一遍。
太棒了!我们得出了正确的结果。
接下来,我们就可以制作多个加法器并将它们连接起来,我们就有了一个计算加法的计算器!
问题来了:怎么用它计算减法、乘法、除法、指令呢?
希望你看完这篇文章会明白处理器的工作原理!