分享

世界上第一台可编程二进制机械计算机 09

 科学羊 2023-09-12 发布于广东

本系列文章预计会有10个章节,这套文献会系统讲述计算机科学本身,这里是第一季第09篇

本文预计阅读8min


好,这一节我们进入电动机械时代

我们知道,巴贝奇所遭遇的窘境,在于设计要求零件误差达到千分级,而当时的加工能力很难做到。

这一切其实很大程度上应当归因于其使用了十进制运算,还得达到高精度,那就需要齿轮足够精细,足够多。他不懂得对于复杂的计算来讲,不是要把机器做得更复杂,而是要用简单的计算单元来实现复杂的计算。俗话说:复杂的食材往往只需要简单的烹饪方式
而到了后辈这里,为了解决计算问题,二进制自然而然地落入了人们的思维框架当中。所有部件的状态不是0就是1,不是开就是断,就算是铁器时代的工艺,也能达到这个要求。

这时候就有一个人比较幸运了,他确实最后设计出了二进制的机械计算机,而且获得了商业的成功。值得一提的是这个人并没有任何头衔,而且是个很普通的民间工程师。

他对香农的开关电路,以及图灵关于图灵机的理论一无所知,他甚至没有听说过巴贝奇这个名字。

因此要想研制计算机,他所面临的巨大困难可想而知。所幸的是,他知道布尔的理论,这让他没有重复巴贝奇失败的老路,而是想到了用二进制来实现计算。

遗憾的是,他不是理论专家,更像一个工匠,即使做出了实物,却不能像香农那样提出一整套理论。但这不是重点,对于他来说,自己的发明已经让他名垂千史!

他就是世界上第一个发明可编程机械式计算机的是德国工程师康拉德·楚泽

康拉德·楚泽

01 发明驱动

我们看看楚泽为什么要去发明一个这样的东西?

1935 年,楚泽毕业时,正赶上德国积极备战,并大规模地研发和生产各种新式武器。

毕业后,楚泽就在一家飞机制造厂参与飞机的设计,不过很快他觉得这份工作太过无聊,为什么呢?因为前几个世纪出现的问题一再出现,随着科技水平的发展,越来越复杂的计算呈现在工程人员面前。

他和同事成天都要进行大量的繁琐计算,而且当时的工具只有计算尺。而计算尺也是手持的那种机械手摇式,很多时候还不如人手计算呢。

楚泽还发现,绝大多数计算其实使用的公式都是相同的,只是需要代入不同的数据而已。

他认为,这种重复而枯燥的工作应该交给机器去完成,而不是由人来完成

自从有了这个想法后,楚泽就在父母的公寓里开始设计能够进行计算的机器。不久,他觉得实在无法兼顾工作和自己的发明创造,就干脆辞了职专心研究这个可计算的机器。

幸运的是,他没有走巴贝奇的老路,他之前看过莱布尼茨的著作,所以对二进制的思想很认同。

于是,他用齿轮和其他机械装置搭建了一个二进制的浮点运算器。

这个能进行很多位数运算的大家伙,其实是由很多相同的能进行一位数二进制计算的基本单元组合而成的,这有点儿像用简单的乐高积木搭出复杂的房子一样。

为了控制运算器工作,楚泽又用机械搭建了一个控制器。

接下来的问题是如何才能将控制指令输入计算器。当时既没有磁存储器,也没有存储卡片或者存储纸带,不过这件事根本就难不倒楚泽。他首先把控制指令变成二进制,然后在 35 毫米的胶片上打孔,以此来记录控制指令。


有孔的地方是 1,没有孔的地方是0。

之后他通过马达转动,将指令输入那台运算器。

楚泽的这种想法后来被发扬光大,成了早期计算机的一种输人输出设备一一纸带输人输出设备。

当时楚泽设计整个计算机的架构用了仅仅1年时间,而建造这台计算机也只用了2年时间。

到了1938年,他制造的第一台二进制机械计算机出炉了,命名为Z1。这是他人生中的第一台计算机,也是全人类第一个可编程二进制机械计算机,还是全人类第一台完全靠自费、独自设计制造的,并且可编程、支持浮点数运算的二进制机械计算机。

02 Z1的性能

Z1的架构(图片来源于《大话计算机》)

结构:有存储单元、运算单元、控制单元、输入和输出设备,采用微指令方式,支持浮点运算;

动力:采用电机带动传统装置来当作时钟触发信号,频率为1Hz;

程序:纸带输入输出设备,具体是采用穿孔电影胶片存储和输入,22位宽,支持乘除法,采用累加和累减实现。支持9条指令,最快1个周期执行一条指令,最慢的指令则需要20个周期。

电路:逻辑门采用薄铁片搭建,楚泽自己用手锯加工了其中的很大一部分薄铁片。

重量:Z1包含大约2万个部件,重约1吨;

楚泽的Z1计算机(图片来源于《信息论》)

看得出其实在当时做运算已经很牛了,但是有个问题是Z1 经常出故障,原因是机械的东西,和精度和配合有关,几万个零件中的每一个都加工得十分精密,而且它们在机器运转时还会磨损。这肯定会导致各种各样的问题。

所以这也促使楚泽开始继续思考这个问题,不过好在当时人们已经广泛开始使用继电器控制开关。虽然楚泽并不是电学工程师,但是想到这一点对他来讲并不困难。于是他用继电器取代机械部件,把 Z-1 又重新做了一遍,这就是 Z-2 计算机。

继电器(工业最广泛的电气部件)

由于没有钱,楚泽大量地使用了从废旧电话上拆下来的旧的继电器。就是靠这些旧的元器件,楚泽居然在 1939 年搭建出来了当时世界上最先进的计算机。

Z-2 运行的可靠性远超 Z-1,而且由于继电器的机械延时要比单纯的机械部件小,它可以做到每秒钟进行 5 次运算,这在当时是非常了不起的计算速度。

当时这项发明引起了德国飞机实验室的重视,他成功获得一笔资助。当然在这之后,楚泽继续升级自己的计算机从Z2一直到Z22...后来被西门子收购。

03 二进制机械计算机的原理(选读)

Z1计算机的一角(图片来源于《大话计算机》)

楚泽设计的薄片专利图(图片来源于《大话计算机》)

如下图所示,利用4片薄铁片组成了一个非门,中间正方形铁片位置固定,其上带有按照一定方向走向的镂空槽,上方铁片可以上下滑动,作为输入值,左边铁片可以左右滑动作为输出值。

非的逻辑关系,就体现在中间铁片的镂空槽的走向上,输入值会通过槽的走向来推动铁片输出到对应的位置。

右侧铁片则为一种Enable信号,或者说触发信号,在触发信号为0时,输出值归0,不受输入值影响。

当触发信号为1时,输出值便会跟随输入值的改变而改变。这相当于一个电平型锁存器了,只不过是单个门级别的锁存。


原理部分今天大家先了解下,有个概念即可,后期我们谈数学电路的时候会详细谈这部分,这也是计算机最核心最重要的知识。

总结:
  1. 楚泽的故事告诉我们,你遇到的问题也许是别人都会遇到的,但不同的是,你有方案有魄力去动手解决这个问题。机会不是等来的,是真正做出来的;
  2. 做一件事之前最好先去了解前人铺的路,有句话说“不要重复造轮子”,轮子是前人做好的东西,直接拿来用即可。其实如果楚泽能更早知道图灵博士的理论,或许他在发明计算机的道路会走的更快;

好,今天就先这样啦!

Masir - 2023/01/18
于 东莞
祝幸福~

参考文献
[1].《大话计算机》·冬瓜哥——进化的开关
[2].《信息论》·吴军 —— 德国工匠的奇迹
[3]. 内容图片来源于《大话计算机》

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多