计算机简史第三章 机电时代之数字电路

news/2025/1/19 17:18:27/文章来源:https://www.cnblogs.com/PeterJXL/p/18239399

电路的发明,使得计算机的速度大幅提高

布尔代数、二进制与电路的关系

20 世纪,随着继电器电路的发展,许多科学家开始将二进制、布尔代数和电路联系到一起,最终,由美国一位名为克劳德·香农(Claude Shannon)的数学家做出了完整阐释。

1938 年,就读于麻省理工学院的香农发表了他那篇著名的硕士论文《继电器与开关电路的符号分析》( A Symbolic Analysis of Relay and Switching Circuits),奠定了数字电路的理论基础,这篇论文至今仍占据着重要的地位。

克劳德·艾尔伍德·香农(Claude Elwood Shannon),美国数学家、电气工程师、信息论创始人

布尔代数和电路的关系

布尔代数里有真和假两个值;而开关电路也有两种状态:接通和断开。如果我们将真表示为接通,假表示为断开,我们就可以用电路实现布尔运算了!

继电器电路就是一种典型的开关电路。当我们用 A、B 等字母表示开关电路,将两者串联就可以表示逻辑与,将两者并联就可以表示逻辑或,逻辑非的实现也容易表示。

我们看一个简单的例子,如下图:

  • 图(a)电路中,只有两个开关都闭合的时候,指示灯才会亮;
  • 图(b)电路中,只要有任何一个开关闭合,指示灯都会亮
  • 图(c)电路中,开关断开时灯泡才亮,开关闭合时灯泡反而不亮

有了与、或、非 3 种基础逻辑电路,异或等复杂逻辑电路也就不难搭建了。

如此一来,电路就彻底数字化了,原本物理的连接可以用数学来表示,是为数字电路。

香农认为,基于布尔代数,再复杂的电路都可以用表达式条理清晰地设计出来,更重要的是可以等效化简。

香农的研究成为后来二进制机电计算机和电子计算机强大的理论支柱。

逻辑门

我们将布尔运算中常用的电路,作为一个基础的器件使用,称为元器件(也就是最基础的器件了)。例如实现与运算的就是与门,实现或运算的就是或门。

工程师们不关心这些元器件的内部实现,更关注当代表 0 或 1 的信号从它们的输入端进去,从输出端出来的是 0 还是 1。这种通过逻辑电路实现二进制信号转换的元器件称为逻辑门(logic gate)。

门的概念很形象,二进制数据可以从门通过,也可能被门挡住。下图为 IEEE 和 IEC 标准中规定的逻辑门符号,统一的矩形表示更有利于绘制复杂的集成电路,信号从矩形左侧进入,从矩形右侧输出:

图片来自《数字电子技术基础》阎石.第5版,下同。

逻辑门和二进制运算的关系

我们知道,二进制只有 0 和 1 两种数字;而用逻辑门,可以很好的实现二进制的加减乘除。

例如,我们将二进制数中的 0 代表布尔代数中的 false, 二进制数的 1 代表布尔代数的 true。

我们来看看二进制的加减乘除:

假设我们要实现加法(加法最简单),如何用逻辑门实现呢?我们先实现只有一位二进制数的两两相加。我们假设两个加数为 A,B,本位和为 S,进位为 CO,那么我们可以得到电路的真值表(真值表列出了输入和输出的关系。用于设计电路用的,数字电路中会讲到):

然后,我们就可以用几个逻辑门,实现这个加法的逻辑(更多细节后续会在《数字电路》专栏里展开讲):

我们可以把上述电路,作为一个新的逻辑门,称之为半加器:

有了半加器,我们可以将多个半加器组合起来,就可以实现多位二进制数的加法了。

我们继续来看看减法、乘法和除法:

我们可以看到二进制算术运算的两个特点:

  • 二进制数的乘法运算,可以通过若干次的“被乘数(或零)左移 1 位”和“被乘数(或零)与部分积相加”这两种操作完成
  • 二进制数的除法运算能通过若干次的“除数右移 1 位”和“从被除数或余数中减去除数”这两种操作完成

原理:

在二进制下,(0001)2 左移一位,就是 (0010)2, 从 1 变成了 2,放大了 2 倍。相当于小数点往右移动。

就好比十进制下,100.00 的小数点往右移一位,就变成了 1000.0,放大了十倍。

所以,如果我们能完成减法的电路实现,那么加、减、乘、除运算就全部可以用“移位”和“相加”两种操作实现了。还记得我们学过的补码吗?它可以将减法转化为加法。

所以,我们只用加法器,就可以完成二进制的加减乘除,这使运算电路的结构大为简化。这也是数字电路中普遍采用二进制算术运算的重要原因之一。

组合逻辑电路

逻辑门像一块块标准化的积木,我们可以用这些积木灵活地搭建出实现各种功能的组合逻辑电路。例如,我们可以实现加法器,乘法器,减法器,除法器;

然后,如果我们要解决数学问题,例如解方程,就可以先设计电路,然后实现电路。庞杂的计算机电路正是靠着一扇扇这样的门组合而成的。

开关电路仅仅是逻辑电路的实现途径之一,其实不论任何材料,所组成的基础元件只要能表达出两种状态、能在两种状态之间切换,并能将状态传递给其他基础元件,都可以用来实现逻辑电路以及逻辑门

  • 我们可以用齿轮和按钮等材料组成的,纯机械的继电器来制作逻辑门
  • 在小说《三体》中,有提到用士兵实现逻辑门的例子
  • 到后期我们会讲到真空管,它开关起来比继电器更快
  • 最后我们会讲到晶体管,也是我们现在用的计算机内部采用的技术。

逻辑门一旦实现,二进制计算机的建造就像搭积木一样简单了。这种基础元件的等效性,是可以用不同材料来建造计算机的本质原因。

小结

由于布尔代数 跟二进制非常类似,例如可以用 true 代表 1, false 代表 0, 很多运算也可以用电路来实现,因此也将布尔代数成为逻辑代数或者开关代数。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/722168.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机简史第三章 机电时代之布尔代数

布尔运算,使得计算机开始有了处理逻辑的能力。布尔运算,使得计算机开始有了处理逻辑的能力。 ‍ 莱布尼茨坚信,人类的思想和数字一样可以化繁为简——所有思想都可以分解为数量不多的简单思想。这些简单思想通过一些既定规律,可以组成任意的复杂思想,就像数学运算一样。当…

计算机简史第三章 机电时代之机电式计算机

电、电路形成了机电式计算机电、电路形成了机电式计算机 ‍ 制表机:穿孔时代的到来 从 1790 年开始,美国每十年进行一次人口普查。百年间,随着人口繁衍和移民的增多,从 1790 年的 400 万不到,到 1880 年的 5000 多万,人口总数呈爆炸式地增长。 1880 年开始的第 10 次人口…

实验6 C语言结构体、枚举应用编程

//task4.c#include <stdio.h>#include <stdlib.h>#include <string.h>#define N 10typedef struct { char isbn[20]; // isbn号 char name[80]; // 书名 char author[80]; // 作者 double sales_price; // 售价 …

如何在markdown中换行?

📜 背景 学习markdown的语法格式进行博客写作。有时候需要排版,在不同行之间增加空白以美化观感。 ❓ 问题 Markdown的换行语法是什么? 💡 方案 💫 知识 🌟 HTML换行语法 <br></br>是HTML中的一个标签,用于在文本中插入换行符。<br>标签本身是一个…

Fortinet FortiOS 6.4.15 (FortiGate For ESXi, Hyper-V, KVM, Xen) 下载

Fortinet FortiOS 6.4.15 (FortiGate For ESXi, Hyper-V, KVM, Xen) 下载Fortinet FortiOS 6.4.15 (FortiGate For ESXi, Hyper-V, KVM, Xen) 下载 下一代防火墙 (NGFW)、虚拟化 NGFW 和云原生防火墙 请访问原文链接:https://sysin.org/blog/fortios-6/,查看最新版。原创作品…

中国移动魔百盒-九联UNT413A刷机教程

家里最近单独安装了一条宽带,移动赠送了路由器和电视盒子,路由器挺好上网不卡,但电视盒子看啥都要开会员,也不能装第三方app,故从网上找了教程,试试刷一个无限制的安卓系统,最后刷成功了,体验不赖下面说一下刷机流程吧(刷机有风险,刷前要认真看流程) 一、准备工作 移…

立创 eda 标号相关

编号起始 嘉立创EDA的原理图的元件编号是全局的,即使你创建了多页原理图也可以保持编号连续性。当你放置元件在原理图时,编辑器会帮你自动增序编号,不需你进行手动编号。当然你也可以进行手动修改指定。 双击编号,或者点击它,在右边属性面板修改。 编号冲突 若你的原理图和…

设计模式-推荐文章

设计模式推荐文章 (1)《深入设计模式》截取部分内容 https://refactoringguru.cn/design-patterns(2)图说设计模式 https://design-patterns.readthedocs.io/zh-cn/latest/

数据并非都是正态分布:三种常见的统计分布及其应用

你有没有过这样的经历?使用一款减肥app,通过它的图表来监控自己的体重变化,并预测何时能达到理想体重。这款app预测我需要八年时间才能恢复到大学时的体重,这种不切实际的预测是因为应用使用了简单的线性模型来进行体重预测。这个模型将我所有过去的体重数据进行平均处理,…

ChatTTS 开源文本转语音模型本地部署、API使用和搭建WebUI界面(建议收藏)

ChatTTS是一款专为对话场景设计的支持中英文的文本转语音(TTS)模型,能够生成高质量、自然流畅的对话语音,同时还支持笑声、停顿等韵律特征,超越了大部分TTS开源模型。本文手把手部署、AIP使用、搭建可视化WebUI界面体验ChatTTS能力……ChatTTS(Chat Text To Speech)是专…

定时任务之PowerJob讲解

目录1 PowerJob1.1 简介1.2 特性1.3 安装1.3.1 docker安装1.3.2 jar安装1.3.2.1 下载源码1.3.2.2 创建数据及修改配置文件1.3.2.3 启动1.3.2.4 注册执行器1.3.2.5 登录执行器1.3.2.6 登录1.3.2.7 发布到服务器1.4 使用1.4.1 创建项目1.4.1.1 pom.xml1.4.1.2 配置文件1.4.1.3 启…