计算机探秘四(加法器)

上篇文章我们已经介绍了使用异或电路可实现一位的二进制加法,但是输出没有考虑到进位的情况,也就是说如果输入都是1,那么输出是0,同时需要进一位。考虑到只有输入都是1的时候才会进位,我们可以想到刚好与门符合这个特性,于是我们在异或电路的基础上再加一个与门电路,得到如下图:

 

 上图叫半加器,其中A,B是输入,S为输出,C是进位输出。之所以叫半加器,是因为输入没有考虑进位输入。如果考虑进位输入,其真值表如下:

ABCinSCout
00000
01010
10010
11001
00110
01101
10101
11111

上面的表格就是全加电路的真值表了,那么全加电路该怎么设计呢?

输出电路设计很简单,只要将A,B经过半加器后的输出S0和进位输入Cin作为另一个半加器的二个输入就能得到全加器的输出S,但进位输出就没那么一目了然了,这个时候我们可以观察一下上面的真值表,可以发现一个规律:

  1. 当A和B都是1的时候,Cout等于1
  2. 或当A和B一个是0,另一个是1的时候,Cout等于1

第一条很明显可以使用与门实现,第二条使用异或门可以实现,而最终的输出应该是这两条当中的任意一个等于1的时候,输出就是1。所以最终全加器的电路如下:

 到这一步我们才真正意义上实现了二进制一位的加法运算了,有了上面的全加器电路,那么实现8位的加法器就很简单了,只需要8个全加器,从最低位全加器开始,把它的进位输出Cout作为下一个全加器的Cin就可以了,最终的加法器电路像下面这样的:

 上面只画了4位,其余的类似。看完这个电路图你可能有疑问,第一位的进位输入呢,第一位的进位我没画出来,实际上第一位的进位输入是固定的0,另一个问题最后一个全加器输出的进位怎么处理?试想一下假如我们CPU的数据线是8位的,但是计算加法的时候发现结果是9位的,这个情况实际上就是计算结果溢出了,表现为最后一个全加器的进位输出是1,这个输出CPU中会用一个专门的寄存器保存。

到这里我们终于知道了CPU是如何实现计算的了,我们文章中用二级管举例的,实际上我们的计算机发展大致经历了4个阶段:

  • 电子管计算机
  • 晶体管计算机
  • 集成电路计算机
  • 大规模集成电路计算机

每个阶段所使用的电子元器件不太一样,但原理是相通的。关于CPU主要介绍到这里,后面文章大致介绍一下CPU与其他组件如内存,硬盘等如何交互的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

emeson_ch

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值