基本门电路

  1. 基本门电路:输入都是两个单独的bit,输出是一个单独的bit
  2. 如果要对2个8bit的数字,计算与或非的简单逻辑(无进位),只需要连续摆放8个开关,来代表一个8bit数字
  3. 这样的两组开关,从左到右,上下单个的位开关之间,都统一用『与门』或者『或门』连起来
    • 就能实现两个8bit数的AND运算或者OR运算

异或门 + 半加器

一bit加法

  1. 个位
    • 输入的两位为0011,对应的输出为0
    • 输入的两位为1001,对应的输出为1
    • 上面两种关系都是异或门(XOR)的功能
    • 异或门是一个最简单的整数加法,所需要使用的基本门电路
  2. 进位
    • 输入的两位为11时,需要向更左侧的一位进行进位,对应一个与门
  3. 通过一个异或门计算出个位,通过一个与门计算出是否进位
    • 把这两个门电路打包,叫作半加器(Half Adder)

全加器

  1. 半加器只能解决一bit加法的问题,不能解决2bit或以上的加法(因为有进位信号)
  2. 二进制加法的竖式,从右往左,第二列称为二位,第三列称为四位,第四列称为八位
  3. 全加器:两个半加器一个或门
    • 把两个半加器的进位输出,作为一个或门的输入
      • 只要两次加法中任何一次需要进位,那么在二位上,就需要向左侧的四位进一位
      • 一共只有三个bit相加,即使都是1,也最多只会进一位

8bit加法

  1. 把8个全加器串联,个位全加器的进位信号作为二位全加器的输入信号,二位全加器的进位信号作为四位全加器的输入信号
  2. 个位全加器只需要用到一个半加器,或者让全加器的进位输入始终是0,因为个位没有来自更右侧的进位
  3. 最左侧的进位信号,表示的并不是再进一位,而是表示加法是否溢出
    • 该溢出信号可以输出到硬件中的其它标志位,让计算机知道计算结果是否溢出

分层思想

门电路 -> 半加器 -> 全加器 -> 加法器 -> ALU

参考资料

深入浅出计算机组成原理