# 【Blog.06.科普.技术】计算机的基本发展历史与工作原理

类翻译/搬运 作品

本文大部分内容参考并翻译了来自 Crash CourseCrash Course Computer Science

因此属于 类翻译/搬运 作品,作者的原文信息将会置顶此处

如果有版权纠纷,请前往此处获取邮件地址联系我

# 前言

计算机相信大家肯定都不会陌生,在我们的生活当中,无论是社交、娱乐、金融、交易;处处都可见计算机设备的影子。计算机可以说是我们当今世界和社会中的命脉,如果我们突然关闭全世界所有的计算机,那电网系统会被关闭、汽车会相撞、飞机会从天上坠落、金融市场会停摆各种社会系统会下线。即使那些看上去跟计算机没什么关系的东西,例如我们的衣服、鞋子等等都是计算机控制工厂流水线批量制造的产物。那这些运算速度比我们人脑快,随处可见的设备是如何工作的呢?

# 历史

# 乘法机

我们先来谈谈计算机的历史。在早期,我们还未进入到“电子计算机”的时代,但是我们人类对计算的需求早已有之。早期,Computer这个词实际上是一种职业的名称,这个词实际上是指专门负责计算工作的人。这个职位名在19世纪晚期才消失。这个时候,这个词开始代表着计算的机器。这种机器由德国的一位叫做戈特佛里德·莱布尼茨所发明,当时人们叫做乘法机,这种机器有点类似于汽车上的里程表。这个机器有一连串可以转动的齿轮,在每个齿轮上面有十个齿,代表着0-9的数字。当一个齿轮读数超过9的时候就会自动的跳回0,并且让临近齿轮的读数加上1。这个机器因为精密的设计让它可以具有完成乘法和除法的能力。

这种设计非常成功,在接下来的200-300年中,几乎所有的计算器都采用了这种解决方案。但是这种设计也带来了一个巨大的缺点,所有计算的操作方式都非常的繁琐,并且都要经过多次计算,而且这些人工制造的机器成本非常之高,绝大多数的人都是无法负担得起的。

# 差分机

后来又有一个叫做查尔斯·巴贝奇的人发明了一个叫做差分机的装置,这种装置可以计算更加复杂并且可以求取多项式近似值的这么一个机器,因为多项式的关系,这台机器可以描述几个变量之间的关系,当然了,也可以解决棘手的对数函数以及三角函数。当然了,到了后期,查尔斯·巴贝奇萌生了一个更加厉害的想法,他把这个新想出来的机器叫做“分析机”。这玩意更加厉害,甚至不同于前面所有的计算装置。这个装置,在当年可是没人听说过的,因为它是一种通用型计算机。

这种计算机有非常非常多的用途,已经不单单是某种特定的计算了。你可以给它数据,给它顺序进行操作,这个机器还带有内存以及一个内置的打印装置。这个想法太超前了,但是在当时这种“自动计算机”的概念是一个非常非常大的发现,为后来的电子计算机技术垫下了基础,也预示着“计算机程序”这个概念的诞生。这台机器,很成功的启迪了第一代的计算机科学家们,他们将巴贝奇的研究成果用于自己的机器中。所以为什么巴贝奇被称为计算机之父。

# 打孔卡与电力组件

在美国一次人口普查中,因为普查时间消耗过长,普查局向一位叫做赫尔曼·霍尔瑞斯的人进行求助,他制造了一种制表机。他的机器是用电的,也就是所谓的“机电试”,虽然使用传统的机械系统来记录数字但是这个机器却结合了电力驱动的组件来辅助运行。而这个机器最大的特点在于“打孔卡”就是带有一种定点网格的卡并使用打孔表示数据。机器的针脚会穿过这些孔,如果某个点被打了孔,针脚穿过卡片上的孔后就会导电,接通电路。这样,就能实现统计。

这些机器为后来的数字型计算机慢慢拉开了序幕。

# 近代

到了近代电子计算机,虽然从能占一整个房间巨大的机器变成可以携带在包里甚至拿在手上的装置,但是工作原理还是受到了几乎之前计算机的影响。如可编程,导电接通电路等等。电子计算机最重要的一个零件就是晶体管。我们都知道计算机是一个进行数字运算的机器,如果要实现在键盘上按一按就可以得出结果,当然不可能使用完全实体的机械进行操作。这时候在计算机内部就会将这些原本需要在实体机械上进行的操作,变成了电压。大部分的计算机都采用布尔数学体系或者布尔变量。

# 布尔变量与逻辑门

布尔变量只会反馈两个结果那就是“是或者不是”。

这里的是与不是是指这个是否是正确的逻辑条件并且利用1“是”与0“不是”来表示。那么问题来了,如何控制电压输出1“是”与0“不是”呢?我们使用高低电压来进行控制;标准为正5v和0v,而程序,则通过逻辑门运行。

通过逻辑门输出1和0来判断这个值是否符合逻辑描述。这些电路一般处理三种逻辑运算机制,他们分别是“与、和”“或者”与“不是” 又可以直接称为“与”“或”“非”逻辑运算机制。

通过这些运算机制就可以让计算机做简单的运算工作了,例如加法和减法。计算机在运行程序的时候往往需要一种非常可靠的并且精准的算法来控制电流以达到程序能正确运行。

在早期的计算机当中所采用的设备是真空管,就是在一个真空的玻璃里面放两个电极,用阴极电压上升温度来释放电子,如果在阳极处有一个正电位(被通电),那么电子就会被吸引过去;这样电路就联通了。后来的三极管也是同样的通电方式,只不过中间会有一个栅极,可以理解成可控的大网精准的控制着电子是否通过。但是真空管问题实在太多,而科技的进步使得我们的计算机慢慢的使用上了晶体管。

晶体管采用了半导体去代替电极,并且构建了由“电极”“基级”和“发射极”组成的复杂的电子沟通网络来精准控制电压并且正常输出1和0。

# RAM与CPU

接下来就是内存(RAM),内存类似人类的记忆中枢,它负责存储很多很多的东西。存储在里面的东西我们都用单位“比特”来表示,比特也就是所谓的二进制数字。就是前面提到过的1和0。数不尽的1和0组成了我们现在日常使用的各种各样的程序和文件。

内存用来记录这些东西,那么处理自然是CPU来处理这些1和0的二进制数据了。但是内存就像是人类面对应急事件处理一样,仅仅是短期记忆。例如你敲下键盘的任意一个按键的时候,CPU会向其中一个位置来搜索这些数据,并传送到CPU进行处理。

这个过程花费的时间我们称之为延时。因为这些操作需要被反复并且快速的调用读取,所以内存又有一个名字叫做随机存储器(RAM)。但是这些数据,不仅随机而且还是暂时的,当计算机关机的时候,你想留着的数据就必须要转移到一个长期的存储设备当中,所以唯读记忆体(ROM)的概念就出来了。目前市面上的ROM设备主要有硬盘(HDD)、固态存储(固态硬盘和U盘都是同样的工作原理)光存储的DVD,他们都负责存储你的数据。

这样,通过电压、内存、中央处理器和许多概念相同,但负责的工作却不同的硬件设备,譬如图形处理器(GPU或者显卡)DSP(数字信号处理)声卡等等设备构成了我们今天利用在各个行业各个场景的计算机设备。