极简计算机结构介绍
  • 0. 极简计算机结构介绍
  • 1. 布尔代数
  • 2. 逻辑门(Logic Gates)
  • 3. 计算单元
    • 3.1 二进制加法
    • 3.2 补码
    • 3.3 ALU
  • 4. 存储单元
    • 4.1. SR Latch:如何存储 1 Bit
    • 4.2. 时钟:计算机中的时间模型
    • 4.3. D Flip-Flop:以时钟为脉搏的存储器
    • 4.4. 地址:可寻址的存储单元
    • 4.5. 内存:大容量的存储芯片
    • 4.6. 寄存器:CPU 的存储单元
  • 5. 计算模型与机器语言
  • 6. 指令与汇编
由 GitBook 提供支持
在本页

这有帮助吗?

  1. 3. 计算单元

3.1 二进制加法

上一页2. 逻辑门(Logic Gates)下一页3.2 补码

最后更新于3年前

这有帮助吗?

逻辑门可以用来作为电路的控制单元,例如上文中提到的卧室开关,那么我们能将其作为计算单元吗?

由于布尔代数只能表示两种状态,我们考虑用逻辑门来完成二进制的算术运算的可能性。而加法是算术运算的基础,所以我们先考虑二进制加法。二进制的加法与十进制一样,都可以从右至左逐位进行,如果相加的结果大于等于2,则向高位进位,参考下例:

 10011
 11001
---------
101100

我们先考虑最简单的场景,即两个一位数的加法,情况如下:

A

B

Sum Bit

Carry Bit

0

0

0

0

0

1

1

0

1

0

1

0

1

1

0

1

查看结果位(Sum Bit)与进位(Carry Bit)的情况,可以发现结果位相当于 A XOR B, 而进位相当于 A AND B. 这个结果非常重要,这意味着我们可以基于逻辑运算来构建算术运算。此处我们可以通过一个与门和异或门构建一个能够完成一位二进制加法的电路组件,其构建方式如下:

该电子组件叫着半加器(Half Adder),它只接收两个输入。而在多位的加法运算中,由于可能存在进位,因此每一位相当于在做三位的加法运算。如果我们将进位展现出来的话,上述加法等式表示如下:

 10011
 11001
100110 Carry Bit
----------------
101100

为了展示方便,我们将最低位的进位设置为0. 只通过半加器无法构建出多位的加法器,因为半加器只接收两个输入而无法接收和处理由低位产生的进位,能够接收进位的加法器叫着全加器(Full Adder),下图是全加器的一种电路设计:

有了全加器,就可以组装出任意位数的加法器了,例如下图是一个4位的加法器:

该加法器能够完成4位的二进制加法运算:

   B3 B2 B1 B0
   A3 A2 A1 A0
--------------
C4 S3 S2 S1 S0

在现实系统中,由于存储空间始终是有限的,所以最高位通常会被丢弃,这种情况叫着溢出(Overflow)。溢出会导致系统的计算结果不正确,但这是系统需要处理的一种现实情况。

Half Adder
Full Adder
4 Bit Adder