专栏首页腾讯技术工程官方号的专栏最强大脑,计算机中1+1=2的实现逻辑

最强大脑,计算机中1+1=2的实现逻辑

在计算机硬件层面上,你知道1+1是如何实现的吗?本文先介绍了继电器的基本原理,然后从分析与或非等逻辑门电路入手,推导出异或门的实现,借助异或门从而实现1+1,并得出全加器的基本原理。

前言

计算机中处理的都是二进制,1+1=2转成二进制表示为 1 + 1 = 10, 10表示相加结果为0, 并且有进位。如图所示,该运算可以拆分成求和和求进位。

求和的特点是0 + 0 = 0, 1 + 1 = 0, 0 + 1 = 1, 1 + 0 = 1. 可以看到,相同的数相加为0, 相反为1, 其实就是作异或。

求进位的特点是 0 + 0 = 0, 1 + 1 = 1, 0 + 1 = 0, 1 + 0 = 0,就是有0的话,结果就为0, 其实就是作与。

所以,该加法运算就可以拆分成一个异或运算和一个与运算。那么异或和与运算又是如何实现的呢?下面我们先从最简单的讲起。

0.接地

下图大家都很熟悉,一个电池接上一个灯泡,合上开关后,灯泡就亮了。它的基本原理是电子从电池的负极进过灯泡后到达正极,和正极的质子结合达到稳定状态。灯泡中有个金属片和钨丝,电子进过灯泡的金属片后,由于有电阻所以会发热,如果达到了钨丝的燃点后,钨丝在真空就会发亮。

上图有个问题就是如果电池和灯泡相距很远的话(比如广州到北京), 铺线的成本很高,来回都要一根线,有没有什么更节约成本的方法呢?肯定有, 我们知道地球本身就是一个巨大的导体,里面有无穷无尽的电子,灯泡可以直接接地,从地球上吸收电子,而电池将负极的电子接入到地球。这样的话,可以节约一半的铺线成本,如下图所示。

此处灯泡和电池接地是个示意图,只是为了说明这么个原理。真正这样做的话,灯泡肯定不亮,因为电池的电压相对地球来说太小了,地球的电阻相对电池来说太大了。

工程实践上,将上图简化为下图的方式来表示,将接地的电池用V来表示。

1.继电器

如果要长距离的传输,由于长导线的电阻越大,电流越小,功率就越小,为了使得灯泡一样亮,就需要增加电压。但是导线的长度可以近似无限增大,但是电压没法无限增大,所以需要一套中继系统,通过这套系统将比较弱的输入电流“放大”成较强的输出电流。这套中继系统就叫继电器。它的结构如下。

电流通过缠绕在铁棒的导线,会产生磁场。继而将上面的那个开关拉下来,从而接通该电路。以前的电报就是类似的原理,如下图所示,发送方按下开关,铁棒那里产生磁场,将另外一个开关合上,从而收端将电磁铁上面的活动杆拉下; 发送端松下开关,活动杆就弹回去了,从而能够听到“滴-答”的声音。“滴-答”声的长短代表了不同的含义,从而用来传递各种信息。

2. 与门

什么是门?继电器的组合就叫门,多个继电器可以并联或串联在电路中以执行各种基本功能。 将各种门组合起来可以实现复杂的功能。

将两个继电器串联起来叫与门。如下图所示,红色表示通电。只有当两个继电器都通电后,灯泡才亮,其它三种情况灯泡都不亮。当然,继电器的可以再接继电器、各种门,不一定是灯泡。

电气工程师用下图来表示一个与门。可以把按下开关当作1,断开开关为0。只有当两个输入都为1时,输出才为1,其它情况均为0。 同编程语言中的与(&)操作。 0 & 0 = 0, 0 & 1 = 0, 1 & 0 = 0, 1 & 1 = 1。

输入和输出的关系可以用下表来表示。

3.或门

当两个继电器并联在一起时称为或门。这种情况下,只要有一个继电器通电,灯泡就亮。只有当两个继电器同时断开时,灯泡才不亮。

可以用以下符号来表示或门。同编程语言中的或(|)操作符。 0 | 0 = 0, 0 | 1= 1, 1 | 0 = 1, 1 | 1 = 1。

或门的输入和输出的关系可以用下表表示。

4. 反向器

反向器就是将高电平转为低电平。断开开关时,灯泡亮。闭上开关时,灯泡反而不亮。反向器通常不会叫做一个门,主要是门通常是由两个或多个继电器组合而成的, 而反向器只需要一个继电器。

反向器用以下符号来表示。类似于编程语言中的取反操作符。 ~0 = 1, ~1 = 0.

5.与非门

与非门就是两个反向器并联在一起。只有当两个反向器都合上开关时,灯泡才不亮。刚好和与门相反。

用以下符号来表示一个与非门。在与门的基础上加上一个小圆圈,表示在与门结果上取反。

与非门的输入和输出之间的关系入下表, 只有当两个输入端为高电平(合上开关)时,输出才为低电平。

6. 或非门

两个反向器串联在一起称为或非门。只有当两个反向器的开关都打开时,灯泡才亮,刚好和或门完全相反。和与非门的区别是第2,3种情况,打开任意一个反向器,或非门不亮,而与非门亮。

用以下符号来表示或非门, 在或门的基础上加上个小圆圈,表示在或门的结果上取反。

或非门的输入和输出的关系如下。只有当两个输入端都是低电平(断开开关)时候,输出才为高电平。

7.异或门

异或门是如何实现的呢?异或门可以通过一个或门和一个与非门来实现。如下图所示,或的结果和与非的结果再作与后,得到的就是异或的结果。两个输入端,相同为0,相反为1.

或门和与非门通过一个与门连接起来就是异或门。各个继电器的连接关系入下图。与门、或门、与非门、或非门各需要两个继电器,一个异或门需要6个继电器。

异或门用下图来表示,在或门的基础上增加一根曲线。

异或门的输入和输出的关系入下表,用XOR表示异或, 输入相同为0, 相反为1。 同编程语言中的异或(^)操作符。0 ^ 0 = 0, 1 ^ 1 = 0, 1^0 = 1, 0 ^ 1= 1.

8. 1+1= 2?

分析完与门和异或门后,现在再回过头来看下开头说到的如何实现1 + 1 =2 的功能。一位的加法就相当于一个异或门求和, 一个与门求进位。如下图所示。

该电路图用以下这种较简单的方式来表示,该符号表示为半加器,原因是因为它没有将之前的进位加上。

通过半加器可以处理1 + 1 = 2 的运算,但是如果操作数位数大于1位,则还需要能够处理进位的功能。

为了能够处理之前的进位,在半加器的基础上改进下,通过两个半加器和一个或门组合起来就可以组成一个全加器(FA)。一个半加器需要8个继电器, 一个全加器需要18个继电器来实现。如下图所示。

全加器用以下符号表示, Carry In (CI)表示低位的进位,Carry Out (CO)表示当前位的进位。如果是最低位相加,则CI位设置为0,表示没有进位。

如果要实现两个8位数的相加,则需要8个全加器(总共需要144个继电器),通过下图所示的方式连接起来。低位的CO接到高位的CI上,A,B分别表示两个操作数。

下图是对上图的简化描述,表示一个8位的加法器, 其中A7...A0表示操作数A的二进制表示中的第0位到第7位,B表示另外一个操作数, S表示A和B相加后的结果。

如果要实现一个16位的加法器,只需要将两个8位的加法器串联起来即可。第一个8位加法器的CO接入到第二个8位加法器的CI位。如下图所示。

结语

现在的计算机真的是像现在这样实现加法的吗?原理类似,但是有两方面的改进。

一个是运算效率方面的提升,从上面看到的8位全加器,都是需要等待低位运算完后,高位再将低位的进位拿来参与运算,这样运算的速度就取决于操作数的位数,如果位数较多的话,速度会比较慢,这种实现方法叫作行波进位。目前计算中普遍采用的是前置进位,该方法可以提高运算速度。

另外一个是制作工艺的改进,继电器用在上世纪四五十年代的数字计算机中,现在的计算机都是用晶体管。晶体管相对继电器的优势是体积小、速度快、能耗低、噪声小、而且还更便宜。如果搭建一个8位全加器,也需要用到144个晶体管(如果采用前置进位,则需要更多的晶体管),但是体积小很多。

本文分享自微信公众号 - 腾讯技术工程官方号(Tencent_TEG),作者:loki

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-04-11

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 走近 VR

    本文作者:陈国宁,2008年加入腾讯,先后从事支付portal、渠道、云账户、云支付、midas等系统的研发工作,2014年成为部门架构师,承担整体付费流程和系...

    腾讯技术工程官方号
  • 如何存储 Git 大文件?

    ? 作者:terryshchen,腾讯 IEG 应用开发工程师 本文主要讲解在 Git 仓库中如何管理大的二进制文件,详细介绍了什么是 Git LFS,Git...

    腾讯技术工程官方号
  • Techo 大会:AI 会替代 DBA 么?

    ? 本文作者:林晓斌,网名丁奇,腾讯云数据库负责人。林晓斌,网名丁奇,腾讯云数据库负责人 ? 今天给大家分享上周在 Techo 开发者大会上做的一个演讲主题:...

    腾讯技术工程官方号
  • 3.10 VR扫描:解放你的双手!手势识别初创公司完成1000万Pre-A融资

    VRPinea
  • 硅谷之声第二期:当人工智能遇到虚拟现实

    数据猿导读 4月27日下午,由数据猿、BitTiger、微软加速器·北京联合主办的硅谷之声论坛第二期在微软亚太研发总部召开。本次论坛的主题为AI in VR,数...

    数据猿
  • 10.24VR圈大事件:Finch将于12月发售,天猫双11狂欢VR购物面世+AR互动游戏,PSVR携《最终幻想15》国内巡展

    VRPinea
  • 10.19 VR扫描:Oculus Rift推出好友购买优惠活动;iOS手机版《模拟人生》上线AR模式

    近日,英国政府的数字健康技术催化剂计划(DHTC)向切斯特的一家NHS医院,提供了一笔超过40万英镑的资助。该笔资金将帮助医院探索利用VR来帮助中风患者的可能性...

    VRPinea
  • 10.15 VR扫描:Varjo推VR-2/VR-2 Pro头显;英剧院推LBS AR歌剧体验《A Vixen's Tale》

    近日,法国3D VR可视化方案供应商MeshroomVR宣布获得150万欧元新融资,本轮融资来自Aquiti、IRDI和Fa Diese资本。该融资资金将用于扩...

    VRPinea
  • 6.21 VR扫描:三星被爆料:正在研发次世代独立VR设备,像素密度可达2000 PPI

    VRPinea
  • 8.27 VR扫描:京东、高通、KSI投资奥本未来;惠普修复Reverb VR屏幕问题重新发售

    近日,恒信东方发布公告:预计向不超过5名符合条件的特定投资者,非公开发行股票不超过1.06亿股,募集资金总额不超过10亿人民币。据悉,该项目募集资金将用于VR开...

    VRPinea

扫码关注云+社区

领取腾讯云代金券