《深入浅出计算机组成原理》学习笔记 Day8

1. 异或门与半加器

异或门就是实现一个最简单的整数加法所需要使用的基本门电路。

当输入两位都是 11 的时候,还需要向更左侧的一位进行进位。这个就对应一个与门,也就是当加数和被加数都是 1 的时候,进位才会是 1.

所以一个异或门算出个位,通过一个与门计算出是否进位,我们就通过电路算出了一个一位数的加法。

半加器的电路演示
于是我们将两个门电路打包,给它去一个名字,叫作 半加器(Half Adder)。

2. 全加器

半加器可以解决个位的加法问题,但是对于二位数,就不行了。两位用一个半加器之所以不能完成计算,是因为二位除了一个加数和被加数之外,还需要加上来自个位的进位信号,一个需要三个数进行相加,才能得到结果。

全加器就可以解决这个问题。我们用两个半加器和一个或门,就能组成一个全加器

全加器就是两个半加器加上一个或门
第一个半加器,用和个位的加法一样的方式,得到是否进位 X 和对应的二个数加和后的结果 Y,这样两个输出。然后,把这个加和后的结果 Y,和个位数相加后输出的进位信息 U,再连接到一个半加器上,就会再拿到一个是否进位的信号 V 和对应的加和后的结果 。W 就是在第二位的结果。把两个半加器的进位输出,用一个或门的输入连接起来,只要两次加法中任何一次需要进位,那么在第二位上,就会向左侧进一位。

我们将 8 个全加器串联起来,就实现了一个进行对应两个 8 bit 数的加法。16、32、64位依此类推。

8 位加法器可以由 8 个全加器串联而成
唯一需要注意的是,对于这个全加器,在个位,我们只需要用一个半加器,或者让全加器的进位输入始终是 0。因为个位没有来自更右侧的进位。而最左侧的一位输出的进位信号,表示的并不是再进一位,而是表示加法是否溢出了。

3. 总结

在这里插入图片描述

在硬件层面,通过门电路、半加器、全加器一层层搭出了加法器这样的功能组件。我们把这些用来做算术逻辑计算的组件叫作 ALU,也就是算术逻辑单元。当进一步打造强大的 CPU 时,我们不会再去关注最细颗粒的门电路,只需要把门电路组合而成的 ALU,当成一个能够完成基础计算的黑盒子就可以了。

这其实就是计算机中,无论软件还是硬件中一个很重要的设计思想,分层

参考

极客时间《深入浅出计算机组成原理》:http://gk.link/a/11UMi

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Balaaam

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

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

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

打赏作者

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

抵扣说明:

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

余额充值