计算机趣味科普(1)历史-电子计算机-布尔逻辑-逻辑门

376 阅读8分钟

计算机在当前社会各个行业,各个方面都有用,了解计算机的历史以及构成很有意思。 本文预计会写十篇

如果突然全世界断电, 可能的影响有 电网关闭,车辆相撞,飞机坠毁, 净水厂会关闭,证券市场会停止运作,这些背后都跟计算机有关,甚至是和计算机看似无关的物品,也有的是在计算机管理的工厂里面制造出来的, 那我们就更有必要了解什么是计算机。

这个系列将讲什么? bits bytes 晶体管 逻辑门 二进制 alu cpu register s算法简单介绍 数据结构简单介绍 图灵 冯诺伊曼 内存 文件系统 命令行 显示 网络 安全 等等知识点,点到线。构建一个系统的认识。

1. 历史

    1. 最早的计算机是算盘,发明于公元前2500年 的 美索不达米亚 是古希腊对两河流域的称谓 早期算盘统计个数。从下到上代表10的多少次方 ,一共四个横 ,最上面的 第四个,代表10的 3 次方 1000 就可以用算盘记录数据,并且对数据增减了 算盘以及后续各种各样的工具存在的意义是,让原本费力的事情,在借助这些工具后,变得更快 更简单 更准确 降低门槛,加强我们的能力。 Charles Babbbage 说过 随着知识的增长和新工具的诞生, 人力劳动会越来越少,现在看,这句话是越发正确。
    1. 步进计算器, 第一个可以做加减乘除的机器
    1. 炮弹为了精准,要计算弹道, 二战时期是查表来做。但是每次改设计了就需要做一张新表
    1. Charles Babbbage 提出了差分机,在构造差分机期间,想出了分析机,分析机是通用计算机。
    1. Ada Lovelace 给分析机写了假想程序, 因此成为了 第一个程序员
    1. 美国人口普查10年一次,讲究时效性,Herman Holerith的打孔卡片制表机大大提高了效率

2. 电子计算机

  • 人口数量翻倍,二战人数大概一个亿,全球贸易以及运输更加紧密。工程和科学的复杂度也到达了新高。甚至还有的国家考虑登录其他行星。复杂度的增高导致数据量暴增,所以人们需要更多自动化,更强的计算能力,很快柜子大小的计算机变成房间大小,维护费用高的同时也容易出错。有了这些痛点,就为后面的创新买下了伏笔。

  • 继电器 可以在通电的情况下控制线路是否闭合。但是本身有质量,无法做到快速开关, 1940年代,一个好的继电器1秒能翻转50次,看起来很快,但是不足以解决复杂的问题。 哈佛马克一号1秒能做3次加法或者减法运算,一次乘法要6秒,一次除法要15秒。更复杂的操作比如三角函数, 需要一分钟以上,时间慢不说,还有机械会随着时间的增加而磨损的情况,我们后来软件开发中的bug是从这里来的。 机器里面进了虫子,导致机器不能正常工作。这时候就需要一个设备代替继电器

  • 热电子管: 两个电极装在一个气密的玻璃灯泡里面。电流只能单向流动的电子部件叫二极管(diode) 只能是单向的,不太实用,1906年,美国发明家,Lee de Forest 为真空三极管的发明者[1],被誉为“无线电之父”、“电视始祖”、“电子管之父” 发明了真空三级管,通过控制向控制电极加正或者负电荷来决定电子是否流动,达到闭合或者断开电路的作用。 相比继电器,他可以每秒开闭数千次 而且没有机械上的磨损 🐂🍺 这标志着计算机从elecro-mechanical to electronic computing 但是它和灯泡类似,有时候会烧坏,所以需要新的组件来替代它。

  • 二战时间剖解纳粹的密码,建造的 colosus(巨人)计算机。有1600个真空管,而且被认为是第一个可以编程的电子计算机,可编程也需要查各种线来配置。 电子数值积分计算器ENIAC 在几年后的1946年,在宾夕法尼亚大学 完成建造,这是世上第一个真正的general purpose programmable electronic computer 通用,可编程,电子计算机。它可以每秒执行5000次十位数加减法,运算了十年,据说完成的运算比全人类加起来还多。因为用的是真空管(vacum tubes)会有烧坏的问题,所以故障很常见。 基本上运行半天左右就会出一次故障。1950年代, 真空管计算机到达了极限,是时候更新新的硬件了。

  • 1955年美国空军的AN/FSQ-7计算机完成。为了降低成本和大小,同时提高可靠性和速度,我们需要一种新的电子开关,1947年,贝尔实验室Bell_Labs的科学家们发明了 晶体管 它涉及到量子力学,太深入了。不展开, 它和之前的relay 和 vacuum tube 一样, 它是一个开关,可以用控制线 来控制开关,有两个电极, 电极之间有一种材料隔开,这种材料有时候导电,有时候不导电,叫 semiconductor 中文叫半导体, control wire control the gate to switch between open and colsed . 每秒可以开关一万次 比起玻璃制成,容易碎的真空管(vacumm tube), 晶体管是固态的,而且体积远远小于relay or vacuum tube, 硬件的实现,导致计算机成本以及体积的下降,出现了比如1957年IBM 608,第一个完全用晶体管,而且消费者也可以买到的计算机。它有3000个晶体管,每秒执行4500次加法,如今计算机里面的晶体管小于50纳米,而一张纸的厚度大概是10万纳米。 每秒可以切换上百万次,而且可以工作几十年。666!

  • 硅谷的由来 ,很多晶体管和半导体的开发在加州的圣克拉拉谷,位于 San Francisco 和 San Jose 之间。而且生产半导体的最常见的材料是硅, 所以这个地区被称为硅谷, 后来 wiliam shockley 也搬过去,创立了 shockley semiconductor,里面的员工后来成立了fairchild semiconductors, 这里面的员工后来创立了INEL 当今世界上最大的计算机芯片制造商

3. 晶体管是如何工作的? 抽象之旅

  • 人类使用十进制, 上面提到了开/闭两个状态, 电路闭合 代表真,断开代表假,二进制可以写成0 和1 而不是真和假,就是表示方式不同而已。

  • 为什么只有两个状态。而不是多个? 因为晶体管的速度很快,太多状态不容易区分, 那为什么只有两个?只有两个,可以减少状态过多出现混乱的情况(我现在的理解) ,另一个只有两个状态的原因是因为,数学上有一个学科 逻辑代数,只有真和假,已经解决了所有的法则和运算。叫做Boolean Algebra

  • Boolean_algebra 里面有三个基本操作 : NOT AND OR 非常有用。 NOT操作把布尔值取反, NOT true => false. NOT false => true 而且晶体管可以轻松的实现这个逻辑

  • 指定input ouout

  • 改造output的位置 实现NOT 就是实现输入和输出相反

  • build a and gate 同时为真才为真,因为硬件上是两个串联

  • 实现 OR Gate 所以要晶体管并联

进一步抽象

有了上面三个的实现, 就可以再次以某种方式组合,构建更加复杂的逻辑。

  • XOR
INPUT AINPOUT BOUTPUT
TTF
TFT
FTT
FFF
  • 但是有一个问题 A B 同时为true OR输出的和想要的XOR不一样,所以再加其他门

  • 但是还不够

  • 这样就可以验证了,先看第一行是否正确, 两个ture 应该输出false

  • 发现可以

  • 再验证下其他的几个 发现是可以的 ,这样就实现了XOR

现在我们的"工具箱"里面就有四个基础的组件了,我们后续就不用关心硬件层面如何实现的,只要使用就可以了。这些组合起来,作用就大了。

总结

    1. 本文了解了一下计算机的历史,有很多大牛的发明创造,让我们现在使用计算机越来越便捷
    1. 继电器 到 热电子管 到 晶体管 的硬件元件的进化,分析了每一个的优缺点
    1. 布尔代数在逻辑门上的应用,以及如何在硬件层面实现基本的 NOT AND OR
    1. 再次抽象,根据 NOT AND OR 组合成 XOR

到这里字数有点多,我们下篇再讲

  • 下篇标题预告计算机趣味科普(2)二进制-ALU-REGISTER-RAM-CPU

参考资料

  • wiki