计算机在当前社会各个行业,各个方面都有用,了解计算机的历史以及构成很有意思。 本文预计会写十篇
如果突然全世界断电, 可能的影响有 电网关闭,车辆相撞,飞机坠毁, 净水厂会关闭,证券市场会停止运作,这些背后都跟计算机有关,甚至是和计算机看似无关的物品,也有的是在计算机管理的工厂里面制造出来的, 那我们就更有必要了解什么是计算机。
这个系列将讲什么? bits bytes 晶体管 逻辑门 二进制 alu cpu register s算法简单介绍 数据结构简单介绍 图灵 冯诺伊曼 内存 文件系统 命令行 显示 网络 安全 等等知识点,点到线。构建一个系统的认识。
1. 历史
-
- 最早的计算机是算盘,发明于公元前2500年 的 美索不达米亚 是古希腊对两河流域的称谓
早期算盘统计个数。从下到上代表10的多少次方 ,一共四个横 ,最上面的 第四个,代表10的 3 次方 1000 就可以用算盘记录数据,并且对数据增减了
算盘以及后续各种各样的工具存在的意义是,让原本费力的事情,在借助这些工具后,变得更快 更简单 更准确 降低门槛,加强我们的能力。 Charles Babbbage 说过 随着知识的增长和新工具的诞生, 人力劳动会越来越少,现在看,这句话是越发正确。
- 最早的计算机是算盘,发明于公元前2500年 的 美索不达米亚 是古希腊对两河流域的称谓
早期算盘统计个数。从下到上代表10的多少次方 ,一共四个横 ,最上面的 第四个,代表10的 3 次方 1000 就可以用算盘记录数据,并且对数据增减了
-
- 步进计算器, 第一个可以做加减乘除的机器
-
- 炮弹为了精准,要计算弹道, 二战时期是查表来做。但是每次改设计了就需要做一张新表
-
- Charles Babbbage 提出了差分机,在构造差分机期间,想出了分析机,分析机是通用计算机。
-
- Ada Lovelace 给分析机写了假想程序, 因此成为了 第一个程序员
-
- 美国人口普查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 A | INPOUT B | OUTPUT |
|---|---|---|
| T | T | F |
| T | F | T |
| F | T | T |
| F | F | F |
-
-
但是有一个问题 A B 同时为true OR输出的和想要的XOR不一样,所以再加其他门
-
-
但是还不够
-
-
这样就可以验证了,先看第一行是否正确, 两个ture 应该输出false
-
发现可以
-
再验证下其他的几个
发现是可以的 ,这样就实现了XOR
现在我们的"工具箱"里面就有四个基础的组件了,我们后续就不用关心硬件层面如何实现的,只要使用就可以了。这些组合起来,作用就大了。
总结
-
- 本文了解了一下计算机的历史,有很多大牛的发明创造,让我们现在使用计算机越来越便捷
-
- 继电器 到 热电子管 到 晶体管 的硬件元件的进化,分析了每一个的优缺点
-
- 布尔代数在逻辑门上的应用,以及如何在硬件层面实现基本的 NOT AND OR
-
- 再次抽象,根据 NOT AND OR 组合成 XOR
到这里字数有点多,我们下篇再讲
- 下篇标题预告计算机趣味科普(2)二进制-ALU-REGISTER-RAM-CPU
参考资料
- wiki