Menu Close

逻辑门是如何工作的? 逻辑门如何构建 CPU、存储器和计算机

计算机如何仅仅使用 0 和 1 来作出判断?

答案要从逻辑门说起。


第一章——引言

逻辑门如何构建 CPU、存储器和计算机

地球上的每一台计算机,从智能手机到超级计算机,都是建立在一个简单得令人惊讶的基础之上。

这个基础就是:

逻辑门。

这些微小的电子电路负责作出判断。

它们回答的问题包括:

这个信号是否开启?

两个信号是否都开启?

是否至少有一个信号开启?

通过组合数百万甚至数十亿个这样的简单判断,计算机就能够进行计算、运行操作系统、播放视频,甚至驱动人工智能

逻辑门如何构建 CPU、存储器和计算机

在这个视频中,我们将了解:

什么是逻辑门;

逻辑门如何工作;

逻辑门的主要类型;

逻辑门如何组成更大的电路;

以及为什么逻辑门是现代计算技术的基础。

让我们开始吧。


第二章——从电信号到二进制

在理解逻辑门之前,我们必须先理解二进制。

在计算机内部,电信号通常只有两种状态:

低电压状态,对应二进制数值 0。

高电压状态,对应二进制数值 1。

计算机使用这两种状态来表示信息。

这种系统被称为:

二进制系统。

计算机中的一切信息,最终都会变成由 0 和 1 组成的序列。

例如:


逻辑门直接处理这些二进制数值。

它们接收二进制输入。

然后产生二进制输出。


第三章——逻辑门是电子决策器

逻辑门是电子决策器

你可以把逻辑门想象成一台微小的电子决策机器。

一个逻辑门会接收一个或多个输入。

它会检查这些输入。

然后按照特定的规则产生一个输出。

例如:

输入 A 进入逻辑门。

输入 B 也进入逻辑门。

逻辑门处理这两个输入,然后产生一个输出。

每一种逻辑门都遵循一条固定的规则。

无论它运行多少次,这条规则都不会改变。

正是这种可预测的行为,使计算机能够每秒进行数十亿次稳定而可靠的计算。


第四章——非门

最简单的逻辑门是非门。非门

英文称为:

NOT Gate。

一个非门具有:

一个输入;

一个输出。

它的任务非常简单:

将输入信号取反。

如果输入是 1:


如果输入是 0:


下面是非门的真值表:


非门真值表
当输入为 0 时,输出变成 1。

当输入为 1 时,输出变成 0。

换句话说,非门总是产生与输入相反的值。

无论什么信号进入非门,出来的信号都会被翻转。

你可以把非门想象成一台电子“反向机器”。

它只有两种可能的输入。

输入 0,输出 1。

输入 1,输出 0。


第五章——与门

与门

与门的英文名称是:

AND Gate。

与门需要两个输入。

它的规则是:

只有当两个输入都为 1 时,输出才会变成 1。

下面是与门的真值表。

与门真值表

当 A 为 0,B 为 0 时,输出为 0。

当 A 为 0,B 为 1 时,输出为 0。

当 A 为 1,B 为 0 时,输出为 0。

只有当 A 为 1,B 也为 1 时,输出才为 1。

你可以想象有两个开关共同控制一盏灯。

两个开关都必须开启,灯才会亮。

只要其中一个开关没有开启,灯就不会亮。

这正是与门的工作方式。


第六章——或门

或门

或门的英文名称是:

OR Gate。

与与门相比,或门的条件没有那么严格。

它的规则是:

只要两个输入中至少有一个是 1,输出就会变成 1。

下面是或门的真值表。

或门的真值表

当 A 为 0,B 为 0 时,输出为 0。

当 A 为 0,B 为 1 时,输出为 1。

当 A 为 1,B 为 0 时,输出为 1。

当 A 为 1,B 为 1 时,输出也为 1。

你可以想象有两个按钮控制一个警报器。

按下其中任何一个按钮,警报器都会启动。

这就是或门的工作方式。


第七章——异或门

异或门

XOR 是 Exclusive OR 的缩写。

中文称为:

异或门。
异或门

异或门的规则是:

只有当两个输入不同时,输出才为 1。

下面是异或门的真值表。

异或门真值表
当 A 为 0,B 为 0 时,输出为 0。

当 A 为 0,B 为 1 时,输出为 1。

当 A 为 1,B 为 0 时,输出为 1。

当 A 为 1,B 为 1 时,输出为 0。

请注意:

两个输入不同,输出为 1。

两个输入相同,输出为 0。

异或门非常重要。

它是二进制加法的基础之一。

每一颗 CPU 的算术电路中,都会使用异或门。


第八章——与非门

与非门

与非门的英文名称是:

NAND Gate。

与非门实际上比许多人想象的更加重要。

NAND 可以理解为:


也就是先执行与运算,然后再将结果取反。

下面是与非门的真值表。

与非门真值表

当 A 为 0,B 为 0 时,输出为 1。

当 A 为 0,B 为 1 时,输出为 1。

当 A 为 1,B 为 0 时,输出为 1。

当 A 为 1,B 为 1 时,输出为 0。

只有一种输入组合会产生 0:

两个输入都是 1。

其他所有输入组合都会产生 1。

与非门非常特殊,因为只使用与非门,就能够构建其他类型的逻辑门。

理论上,甚至可以只使用与非门来构建一台完整的计算机。

因此,与非门也被称为一种通用逻辑门。


第九章——或非门

或非门

或非门的英文名称是:

NOR Gate。

NOR 可以理解为:


也就是先执行或运算,然后再将结果取反。

下面是或非门的真值表。

或非门真值表

当 A 为 0,B 为 0 时,输出为 1。

当 A 为 0,B 为 1 时,输出为 0。

当 A 为 1,B 为 0 时,输出为 0。

当 A 为 1,B 为 1 时,输出为 0。

只有当两个输入都为 0 时,输出才为 1。

其他所有输入组合都会产生 0。

或非门同样是一种通用逻辑门。

和与非门一样,或非门也可以组合起来,构建其他所有类型的逻辑门。


第十章—逻辑门如何由晶体管构成逻辑门如何由晶体管构成

逻辑门并不是凭空出现的。

它们是由晶体管构成的。

晶体管就像一个微小的电子开关。

当开关开启时:

电流可以流过。

当开关关闭时:

电流停止流动。

通过以不同方式连接多个晶体管,工程师可以构建:

非门;

与门;

或门;

异或门;

与非门;

或非门。

现代处理器包含数十亿个晶体管

这些晶体管相互连接,构成数量庞大的逻辑门和数字电路。


第十一章——将逻辑门组合成更大的电路

将逻辑门组合成更大的电路

单独一个逻辑门的作用非常有限。

逻辑门真正强大的地方,在于可以将大量逻辑门组合起来。

例如:


大量逻辑门可以组成:

加法器;

比较器;

多路选择器;

译码器。

更多的逻辑门和数字电路可以组成:

寄存器;

高速缓存;

控制单元。

最终,这些电路共同组成:

现代 CPU

GPU

人工智能加速器;

以及完整的计算机系统。


第十二章——逻辑门与二进制加法

逻辑门与二进制加法

现在让我们计算:


在十进制中,答案是 2。

但是在二进制中:


这个结果可以分成两个部分:


一个被称为半加法器的简单电路,可以完成这个运算。

半加法器使用两个逻辑门:


半加法器

输入 A 和输入 B 同时进入异或门,产生和值 S。

输入 A 和输入 B 也同时进入与门,产生进位值 C。

也就是说:


这个电路被称为:

半加法器。

半加法器是数字电路和计算机科学中最重要的基础电路之一。

更复杂的加法器,就是从这个简单结构发展而来的。

CPU 中的算术运算,也建立在类似的基本思想之上。


第十三章——逻辑门构建算术逻辑单元逻辑门构建算术逻辑单元

算术逻辑单元的英文是:

Arithmetic Logic Unit。

简称:

ALU。

ALU 可以看作 CPU 内部的计算器。

它负责执行:

加法;

减法;

比较;

逻辑运算。

在 ALU 内部,存在着由大量逻辑门组成的复杂电路网络。

它们之间的关系可以表示为:


每当 CPU 进行下面这些计算时:


真正完成底层工作的,都是逻辑门组成的数字电路。


第十四章——逻辑门构建存储电路逻辑门构建存储电路

逻辑门不仅可以用于计算。

它们还可以用来保存信息。

通过特殊方式组合逻辑门,可以构建:

锁存器;

触发器;

寄存器。

例如:


触发器可以保存一个二进制位,也就是一个 0 或一个 1。

多个触发器组合起来,就可以形成寄存器。

寄存器是 CPU 内部速度最快的存储位置之一。

需要注意的是,现代计算机中的所有存储器并不都直接由传统逻辑门构成。

例如,SRAMDRAM闪存使用不同的晶体管结构来保存数据。

但逻辑门和晶体管电路仍然是寄存器、控制电路以及数字存储系统的重要基础。


第十五章——总结逻辑门是数字电子技术最基本的构建模块。

逻辑门是数字电子技术最基本的构建模块。

它们接收简单的二进制输入。

按照固定的规则处理这些输入。

然后产生简单的二进制输出。

但是,当工程师将大量逻辑门和晶体管电路组合在一起时,就可以构建:

寄存器;

存储器

算术逻辑单元;

CPU

GPU

以及完整的计算机。

下一次当你使用计算机时,请记住:

操作系统的下面,

在各种应用程序的下面,

CPU 的内部,

有无数微小的逻辑门和晶体管电路,正在以极高的速度不断作出判断。

正是这些简单的二进制判断,共同创造出了现代计算世界。

除教程外,本网站大部分文章来自互联网,如果有内容冒犯到你,请联系我们删除!
Posted in 计算机科学 (编程语言)