花开花落,再灿烂的星光也会消失。 收藏本站
登陆 / 注册 搜索

阅读:2.3K   回复: 1

电脑原理:加法器

[复制链接]
空谷幽兰 踏破虚空 2023-10-31 23:00 |显示全部楼层

从前车马很慢,书信很远,一生只够爱一个人,但是可以纳很多妾啊!

精华达人 主题破百 以坛为家 论坛元老 五周年纪念
作者: dong

1 加法器

计算机这个东西‍‏,其实会的东西并没有我们想象中的多‌‏,目前的计算机,与看起来恰恰相反的是‏‍,会的东西非常的少‍,只会一个东西,就是算加法。不管我们是用来上网‍‏,还是看电影‍,甚至是Alpha Go下围棋‎‎,最后都是算加法。可能有人会问‏,减法‌‎,乘法‍‌,除法加起来才是四则运算‍‍,怎么可能只会加法呢?其实除了加法以外的四则运算‍,其它三个都是使用加法来模拟出来的。

🖐🌕🔪‼🐶‏


2 加法表

当我们在计算加法的时候‍‎,其实在心里是有一个加法表的‍‎,比如1+2=3这样的一个加法表。当我们在使用算盘的时候‏‍,也有一个珠算表‌,就是我们小学时候背诵的那种‍‌,一下五去四‎‌,二下五去三‍,三下五去二‌‎,四下五去一这种的,当我们背诵了这些口诀以后‍,就可以流畅的使用这些口诀进行算盘的操作了。我虽然学过算盘‍‏,但是我还是用计算器比较熟练‎‌,算盘只会用来算加法和减法。算算数的时候‎‎,我们有加法表;用算盘的时候‍‏,我们也有算盘口诀表。同样‌,用二进制的时候‏‏,也有一个加法表‎,而且二进制的加法表非常非常的简单‍‏,简直就是一目了然。
🧑‍💻‏✒😭🖕
当我们在算128+256的时候‍‌,我们其实分解了这两个数字‎‌,个位‏,十位和百位分别相加‌‌,然后‎‌,再有一个进位‏‌,超过10了就要进位。在二进制中也是这样‏,超过1了就要进位。总结一下二进制的加法口诀就是:0+0=0;0+1=1;1+0=1;1+1=0‌‏,进位是1。这个口诀比我们小学时候学的加法口诀简单多了‎‏,更别提乘法口诀了。二进制加法和十进制加法一样,就是将两个二进制数字从右向左依次逐渐相加‎,根据上面的口诀‌,该0就是0‍‍,该1就是1‎,该进位就进位‌,和十进制一样‍‏,但是比十进制的加法要简单很多。

重要的是‌‍,我们需要使用电路图将二进制的加法表示出来。如果是用继电器的话‎‎,电路图会非常的复杂‍‏,比如实现一个8位的二进制加法‌,用到的继电器是144个‌‍,画图会非常的繁琐‎‌,如果用逻辑门来表示‍,就会非常的简单明了。

先来看一下进位的情况‎‏,前面那四条‌‌,0+0=0‎‍,不进位;1+0=1‍‎,不进位;0+1=1‍‎,不进位;1+1=0‏‎,进1位。这个情况‎‌,就是逻辑门中的与门。因此‌‍,可以使用与门来计算两个二进制加法的进位。在解决了进位的问题以后‏‍,我们再来看看加法的问题。我画一个表出来‌‎,这个图我就放在我的微信公众号里‍,一图顶千言。可以看看加法的规则和哪个逻辑门类似。

👁🚂🍖📶🦖‌


电脑原理:加法器 1.jpg
下面这个图就是异或门‌‎,异或门的意思是如果想让输出结果是1‌‌,就得让输入端只能有一个1‍‌,如果两个都是1的话‌,输出就是0.这样的话‌‍,我们又解决了加法的问题。只需要把这个异或门和一个与门并联起来‍‎,就同时解决了加法的进位问题和加法的问题。我再画一个图表示一下。

电脑原理:加法器 2.jpg
🦷🚂🍌♏🦟‌这个东西也有个名字叫半加器‏‍,为什么叫半加器呢?因为这个只能算两个二进制数的加法‌,得到的结果是一个加法位‎‏,一个进位。半加器没有办法做到将上一次的进位(如果有进位的话)进行下一次的计算‏‎,因此只能算半加器。为了能将进位也能计算‎,还需要对这个电路进行改造‍‍,改造的结果叫全加器‏‌,工作原理就是将两个半加器和一个或门进行连接。

我们可以算一下到底需要使用多少个继电器。一个异或门需要6个继电器‎‌,因为每个与门‌‎,或门和与非门都需要2个继电器。因此一个半加器需要8个继电器。每个全加器需要两个半加器再加上一个或门组成,因此需要16+2=18个继电器。一个全加器只能代表一个二进制‏‎,如果需要8位二进制的话‍,需要8个全加器‍‍,因此需要的继电器数量就是18*8=144个继电器。如果算8位二进制加法的话‎,就是8个全加器‎,每个全加器的进位输出都是下一个全加器的进位输入‏,这样连接起来就行了‌‌,如果需要计算16位二进制‏‍,就连接16个全加器即可。图我就不画了‍,大家随便找一本微机原理的书‎‍,半加器全加器上面都有详细的介绍。

3 现在的计算机真的是这样算加法么?👦‏👞💿😷👎

首先‍,现在的计算机肯定不是用这样的加法器‍‌,因为现在的计算机已经不用继电器了。其次‍,现在的计算机使用的是晶体管‍‏,晶体管的工作方式和继电器基本上一样。我们来回顾一下‌,这个电路每一次进位输出要参加到下一次的加法运算中‍‌,因此加法器的速度和全加器的速度有关‌,而且计算的数字越长‍,速度越慢‌,是一个线性的关系,基本上等于全加器的速度乘以计算的位数。这种方法有个名字叫脉冲进位‍‍,速度不是很快‍‏,因此‏,还有一种替代脉冲进位的方法叫前置进位树‌‍,这个前置进位树需要的电路更复杂‍,效率也会更高‍‏,也是目前最流行的高速加法器结构‍,比较出名的有汉•卡尔森算法。在这里我就不说了‌‎,大家可以去自行搜索学习。

加法器完成一次操作所需要的时间‎,基本上决定了数字电路的主频‍‎,因此‏‍,提高加法器的运算速度对提高电路的性能有非常重要的意义。本次讲的是脉冲进位‏,也有个名字叫多米诺电路‎‎,因为这个进位确实有点儿像多米诺骨牌一样‏‏,一个一个的进位。至于现在Intel和AMD使用的哪种方法设计加法器‎‏,我是不清楚的‎,我如果清楚的话‌,我还用在这里做电台么‍‌,早就走向人生的羊癫疯了‏‎,还有空在这里写公众号‌‍,每篇文章打赏个10块20块的‏‌,所以,大家如果对Intel和AMD的CPU特别感兴趣‌,估计你也不知道‍,人家这是商业机密‌‌,不可能透露给一个爱好者。

✊🦼🥄🈷🐥‎4 Intel和AMD

既然说到了CPU‌‍,最近关于Intel和AMD这两家公司有个大新闻‏,非常传奇的两个公司。最近AMD发布了一款处理器叫锐龙处理器‎‍,导致公司的股票噌噌的上涨‍‎,也让Intel的牙膏快点挤出一些来。对大部分不是狂热的爱好者来说‎‏,现在的CPU其实已经不是那么重要了‏‎,毕竟看看网页聊个天‍‍,CPU快一些也感觉不出来。对消费者来说是好事‎‍,毕竟Intel的CPU太贵了‍‌,又贵又不肯把自己的好货拿出来卖‎‎,现在AMD发大招了以后‎‎,Intel应该马上把自己的牙膏多挤一些出来。你看Intel的i5和i7处理器卖了那么久‏‎,价格还死贵死贵的。我看了一下锐龙的CPU和i7 7700k的测评‍,如果测评没问题的话‏,这次AMD形成了对Intel的碾压‎,而且价格是Intel的一半。去年我在京东618的时候刚刚买了Intel的处理器‏‌,如果有钱的话‏‍,就换一台机器了。

5 减法

👦‌🧣🏮😤✍



我在一开始的时候就说了‏‍,计算机中只算加法‌,那减法是怎么实现的呢?减法也是用加法实现的。如果有人心里有疑问的话‏,说明不是一个好学生‏‌,作为一个好学生‎,在经历了这么多年的教育以后‍,还有疑问‎‌,说明教育的不太成功。一个成功的教育产品‍,应该不能有任何思考‎‍,如果你有思考‎‎,那也不能说出来;如果你又思考又勇敢还要说出来‏‏,那最起码不要写出来;即使以上的规则都违反了‏‌,又思考‏,又说又写‍,最后的底线是不要签名‏‎,不要按手印。如果非得作死‍,不遵守以上所有规则‏‏,发生什么事情都不要感到惊讶。以上的规则适用于超鲜‎‍,因为超鲜是个神器的国家。

和今天一样‎‌,在古代的时候‏‏,统治者也需要下层的人傻乎乎的‎,古代使用的方法是不让你学习‍,一个字都不认识‌‎,别人说啥你就信啥,老老实实种一辈子地‏‎,农夫‏‎,山泉‍‏,有点田‌‌,这辈子好好积德‏,下辈子再说。现在不行了‎,因为如果你是文盲的话‍‌,没法赚更多的钱养活上层阶级,比如说如果你是文盲的话‎‌,去血汗工厂都没法干活‏‏,说明书也不认识,所以‎,必须得让这些奴隶掌握一定的知识‏‎,但是‌,掌握知识是很危险的‎,万一你胡乱读书‍,一下子开窍了呢?这对统治阶级是个非常大的威胁。这个世界上有两件事情是最难的‏,一件事是把你的思想装进别人的脑袋‌‏,另一件事情是把别人的钱装进你的口袋。现在的统治阶级需要同时完成这两件事情。使用的方法是垄断教育‌‎,只能接受一种教育‏,古代的时候‍‏,不认字的人因为不认字‍‌,上别人的当‍,现在的人‏,因为受了教育‎,上文字的当。而且‍,垄断了教育以后‎‎,可以批量生产能干活的笨蛋。所以呢‍‏,要搞清楚自己是不是上了当‎‍,这个是很难的。反正我是搞不清楚‏,我每天看新闻联播‌,政府告诉我‍‍,只要听他的就不会上当,所以‍,我觉得我没有上当吧‌,呵呵。

👮‍♂️‎🦺📀👻🤝


6 继续说减法

在加法中‎,相对比较困难的是进位‌‌,在减法中‏‏,相对比较困难的是借位‍,就是被减数减去减数的时候‌‎,比如12-7‍‎,个位数不够‍‍,需要向十位数借位‏‎,这个逻辑用电路实现比较困难。因此为了防止出现借位的情况‎,使用了一个凑数的方法‏,其实也很好考虑‍‌,在十进制中‍,为了防止出现借位‍‍,可以凑一个最大的几位数‍,比如最大的一位数是9‌,最大的两位数是99‌,最大的三位数是999‎‌,使用这个最大的数当被减数‎‎,这样就不会产生借位的问题了‌‎,顶多减出来是0‎‏,不会出现不够减的情况。因此‏,在12-7这个减法可以这样来弄‍‎,12+(10-7)-10‌‍,再变化一下就是12+(9-7)+1-10,其中9-7=2‌,这个数字2被称为7的补数。

在二进制的减法里‏‍,也是使用了这样一个操作‍,先把减数的补数计算出来‌,然后在将补数和被减数相加‏‌,然后再加1‎‌,最后再减去一个整数。这个过程在计算机中更简单‍‍,在十进制中‍‎,如果求一个数的补数‎‌,还得用最大的几位数‌,比如9‍,99‌‎,999这种的做个减法‎‏,在计算机中完全不用‎‎,用一个反向器就搞定了。一个数的补数就是把1换成0‍‌,把0换成1‌‍,连算都不用算‏‌,就把补数算出来了。

🖐🌦🥣🆘🦮‍


就这样‎‌,减法就用加法实现出来了。如果听不懂‎‎,需要拿一本书自己研究一下。绝大部分人‏,知道个大概意思就行。特别的爱好者呢‍‌,自然早就自己去翻书了。
上一篇
下一篇
帖子热度 2322 ℃
空谷幽兰发帖时在路边捡到 2 个 金币,偷偷放进了口袋.

風見飞驰 「初入古黑」 2023-10-31 23:05 |显示全部楼层

这个用户很懒,还没有填写自我介绍呢~

一楼祭天‍。👻
您需要登录后才可以回帖 登录 | 免费注册  

本版积分规则

快速回复 返回列表