炼数成金 门户 科学探索 数学 查看内容

计算工具发展小史

2018-1-19 15:40| 发布者: 炼数成金_小数| 查看: 17276| 评论: 0|原作者: 刘钢|来自: 科学网

摘要: 计算机(现在有人将其称为电脑),全称是“通用电子数字计算机”。特别强调的是,计算机就是机器,一种计算工具,与“脑”无任何关系!那么,“通用”(general-purpose)是指计算机可服务于多种用途,“电子”(ele ...

工具 存储 架构 计算机 数学

计算机(现在有人将其称为电脑),全称是“通用电子数字计算机”。特别强调的是,计算机就是机器,一种计算工具,与“脑”无任何关系!那么,“通用”(general-purpose)是指计算机可服务于多种用途,“电子”(electronic)是指计算机是一种电子设备,“数字”(digital)是指在计算机内部一切信息均用0和1的编码来表示。计算机的出现是20世纪最卓越的成就之一。电子计算机自从1945年以来,就采用的是冯·诺依曼架构。实际上,按冯·诺依曼架构制成的计算机,都是图灵机的外在形式。目前似乎还没有什么新的突破。所以,讲1945年以来的计算机,除了运算速度不断加快,花样不断翻新之外,没什么新的意义。但是,作为计算工具的发展历史,个人认为,倒是此前的计算工具更有些人文的意味。

人类自古以来就不断发明和改进计算工具,从古老的“结绳记事”,到算盘、计算尺、差分机,直到电子计算机诞生,计算工具经历了从简单到复杂、从低级到高级、从手动到自动,从自动到电子的发展过程,而且还在不断发展。回顾计算工具的发展历史,可以发现有四个阶段:

一、手动式计算工具
人类最初用手指进行计算。人有二手,二手十指,所以,自然而然地习惯用手指记数并采用十进制记数法。用手指计算虽然很方便,但计算范围有限,计算结果也无法存储。后来开始用绳子、石子等作为工具来延长手指的计算能力,如中国古书中记载的“上古结绳而治”,拉丁文中“Calculus”的本意是用于计算的小石子。 

最原始的人造计算工具是算筹,先人最先创造和使用了这种简单的计算工具。算筹最早出现在何时,现在已经无法考证,但在春秋战国时期,算筹使用的已经非常普遍了。根据史书的记载,算筹是一根根同样长短和粗细的小棍子,一般长为13~350px,径粗0.2~7.5px,多用竹子制成,也有用木头、兽骨、象牙、金属等材料制成的。算筹采用十进制记数法,有纵式和横式两种摆法,这两种摆法都可以表示1、2、3、4、5、6、7、8、9九个数字,数字0用空位表示,如图2所示。算筹的记数方法为:个位用纵式,十位用横式,百位用纵式,千位用横式,……,这样从右到左,纵横相间,就可以表示任意大的自然数了。



图1. 西汉年间的金属算筹


图2. 算筹的摆法

计算工具发展史上的第一次重大改革是算盘,也是我国先民首先创造和使用的。算盘由算筹演变而来,并且和算筹并存竞争了一个时期,终于在元代后期取代了算筹。算盘轻巧灵活、携带方便,应用极为广泛,先后流传到日本、朝鲜和东南亚等国家,后来又传入西方。算盘采用十进制记数法并有一整套计算口诀,例如“三下五除二”、“七上八下”等,这是最早的体系化算法。算盘能够进行基本的算术运算,是公认的最早使用的计算工具。


图3. 成都大邑鹤鸣香炉山道观的古老算盘 


图4. 成都大邑鹤鸣香炉山道观的古老算盘(细部)

1617年,英国数学家纳皮尔(John Napier)发明了乘除器,也称纳皮尔算筹。它由十根长条状的木棍组成,每根木棍的表面雕刻着一位数字的乘法表,右边第一根木棍是固定的,其余木棍可以根据计算的需要进行拼合和调换位置。纳皮尔算筹可以用加法和一位数乘法代替多位数乘法,也可以用除数为一位数的除法和减法代替多位数除法,从而大大简化了数值计算过程。


图5  1650年左右的象牙纳皮尔算筹


图6  西班牙考古博物馆纳皮尔算筹

1621年,英国数学家奥特雷德(William Oughtred)根据对数原理发明了圆形计算尺,也称对数计算尺。对数计算尺在两个圆盘的边缘标注对数刻度,然后让它们相对转动,就可以基于对数原理用加减运算来实现乘除运算。17世纪中期,对数计算尺改进为尺座和在尺座内部移动的滑尺。18世纪末,发明蒸汽机的瓦特独具匠心,在尺座上添置了一个滑标,用来存储计算的中间结果。对数计算尺不仅能进行加、减、乘、除、乘方、开方运算,甚至可以计算三角函数、指数函数和对数函数,它一直使用到袖珍电子计算器面世。即使在20世纪60年代,对数计算尺仍然是理工科大学生必须掌握的基本功,是工程师身份的一种象征。



图7.  日本东京Concise公司制作的单滑标圆盘对数尺

图8. 双滑标圆盘对数尺

二、机械式计算工具
17世纪,欧洲出现了利用齿轮技术的计算工具。1642年,法国数学家帕斯卡(Blaise Pascal)发明了帕斯卡加法器,这是人类历史上第一台机械式计算工具,其原理对后来的计算工具产生了持久的影响。帕斯卡加法器是由齿轮组成、以发条为动力、通过转动齿轮来实现加减运算、用连杆实现进位的计算装置。帕斯卡从加法器的成功中得出结论:人的某些思维过程与机械过程没有差别,因此可以设想用机械来模拟人的思维活动。


图9. 巴斯卡加法器


图10.巴黎工艺博物馆收藏的几款巴斯卡加法器

德国哲学家、数学家莱布尼茨(G .W. Leibnitz)发现了帕斯卡一篇关于“帕斯卡加法器”的论文,激发了他强烈的发明欲望,决心把这种机器的功能扩大为乘除运算。1673年,莱布尼茨研制了一台能进行四则运算的机械式计算器,称为莱布尼兹四则运算器。这台机器在进行乘法运算时采用进位-加(shift-add),即步进(stepped reckoning)的方法,后来演化为二进制,被现代计算机采用。



图11.去除外壳的莱布尼茨步进计数器


图12. 1897年《梅氏百科全书》步进计数器示意图


图13.莱布尼茨的步进计数器复制品(原件仅二件,一件现藏于下萨克森国家博物馆)

莱布尼茨四则运算器在计算工具的发展史上是一个小高潮,此后的一百多年中,虽有不少类似的计算工具出现,但除了在灵活性上有所改进外,都没有突破手动机械的框架,使用齿轮、连杆组装起来的计算设备限制了它的功能、速度以及可靠性。 

1804年,法国机械师雅各(Joseph Jacquard)发明了可编程提花机,通过读取穿孔卡片上的编码信息来自动控制织布机的编织图案,引起法国纺织工业革命。雅各提花机虽然不是计算工具,但是它第一次使用了穿孔卡片这种输入方式。如果找不到输入信息和控制操作的机械方法,那么真正意义上的机械式计算工具是不可能出现的。直到20世纪70年代,穿孔卡片这种输入方式还在普遍使用。

图14. 英国曼彻斯特科学与工业博物馆展出的雅各提花机

19世纪初,英国数学家巴贝奇(Charles Babbage)取得了突破性进展。巴贝奇在剑桥大学求学期间,正是英国工业革命兴起之时,为了解决航海、工业生产和科学研究中的复杂计算,许多数学表(如对数表、函数表)应运而生。这些数学表虽然带来了一定的方便,但由于采用人工计算,其中的错误很多。巴贝奇决心研制新的计算工具,用机器取代人工来计算这些实用价值很高的数学表。 

1822年,巴贝奇开始研制差分机,专门用于航海和天文计算,在英国政府的支持下,差分机历时10年研制成功,这是最早采用寄存器来存储数据的计算工具,体现了早期程序设计思想的萌芽,使计算工具从手动机械跃入自动机械的新时代。 

1832年,巴贝奇开始进行分析机的研究。在分析机的设计中,巴贝奇采用了三个具有现代意义的装置:

⑴存储装置:采用齿轮式装置的寄存器保存数据,既能存储运算数据,又能存储运算结果;

⑵运算装置:从寄存器取出数据进行加、减、乘、除运算,并且乘法是以累次加法来实现,还能根据运算结果的状态改变计算的进程,用现代术语来说,就是条件转移;

⑶控制装置:使用指令自动控制操作顺序、选择所需处理的数据以及输出结果。

巴贝奇的分析机是可编程计算机的设计蓝图,实际上,我们今天使用的每一台计算机都遵循着巴贝奇的基本设计方案。但是巴贝奇先进的设计思想超越了当时的客观现实,由于当时的机械加工技术还达不到所要求的精度,使得这部以齿轮为元件、以蒸汽为动力的分析机一直到巴贝奇去世也没有完成。

图15.  巴贝奇的差分机


图16. 巴贝奇的分析机复制品

三、机电式计算机
1886年,美国统计学家何乐礼(Herman Hollerith)借鉴了雅各织布机的穿孔卡原理,用穿孔卡片存储数据,采用机电技术取代了纯机械装置,制造了第一台可以自动进行加减四则运算、累计存档、制作报表的制表机,这台制表机参与了美国1890年的人口普查工作,使预计10年的统计工作仅用1年零7个月就完成了,是人类历史上第一次利用计算机进行大规模的数据处理。何乐礼于1896年创建了制表机公司TMC公司,1911年,TMC与另外两家公司合并,成立了CTR公司。1924年,CTR公司改名为国际商业机器公司(International Business Machines Corporation),这就是赫赫有名的IBM公司。


图17. 何乐礼的打孔卡


图18. 何乐礼制表机和分选盒

1938年,德国工程师楚泽(Konrad Zuse)研制出Z-1计算机,这是第一台采用二进制的计算机。在接下来的四年中,楚泽先后研制出采用继电器的计算机Z-2、Z-3、Z-4。Z-3是世界上第一台真正的通用程序控制计算机,不仅全部采用继电器,同时采用了浮点记数法、二进制运算、带存储地址的指令形式等。这些设计思想虽然在楚泽之前已经提出过,但楚泽第一次将这些设计思想具体实现。在一次空袭中,楚泽的住宅和包括Z-3在内的计算机统统被炸毁。德国战败后,楚泽流亡到瑞士一个偏僻的乡村,转向计算机软件理论的研究。


图19.  柏林德国技术博物馆Z-1计算机的复制品


图20. 楚泽的Z-3计算机复制品

二次世界大战期间,英军曾在英格兰米尔顿凯恩斯(Milton Keynes)的布莱切利园(Bletchley Park)成立了专门破解德军密码的军事机构。战时布莱切利园的解密工作一般都是由数学家和解密专家进行。其中,后世更为人所属悉的专家要算是图灵(Alan Turing),图灵曾对战时的解密工作提供重大贡献。在第二次世界大战期间,布莱切利园曾经是英国政府进行密码解读的主要地方,轴心国的密码与密码文件,一般都会送到那里进行解码。 

自1943年开始,布莱切利园曾引入一套数码电子电脑,以解读德国一套名为TUNNY的电传打字机密码系统。这套称为巨人(Colossus)的电脑由弗洛尔斯(Tommy Flowers)设计,并由英国邮政局的邮政局研究站提供器材和承建。该计算机不是完全意义上的图灵机,但在战时起到了决定性的作用。在二战结束时,布莱切利园内大部份器材与蓝图都被销毁。尽管曾有数以千计的人在那里参与解密工作,但他们在战后都一直保持沉默,一直迟至1970年代,布莱切利园在战时的解密基地身份才真正为外界所揭露。



图21. 工作中的布莱切利园的巨人计算机I号


图22. 巨人计算机复制品


图23. 布莱切利园国家计算博物馆布重建的巨人计算机正面图

1936年,美国哈佛大学应用数学教授艾肯(Howard Aiken)在读过巴贝奇和爱达的笔记后,发现了巴贝奇的设计,并被巴贝奇的远见卓识所震惊。艾肯提出用机电的方法,而不是纯机械的方法来实现巴贝奇的分析机。在IBM公司的资助下,1944年研制成功了机电式计算机Mark-I。Mark-I长15.5米,高2.4米,由75万个零部件组成,使用了大量的继电器作为开关元件,存储容量为72个23位十进制数,采用了穿孔纸带进行程序控制。它的计算速度很慢,执行一次加法操作需要0.3秒,并且噪声很大。尽管它的可靠性不高,仍然在哈佛大学使用了15年。Mark-I只是部分使用了继电器,1947年研制成功的计算机Mark-Ⅱ全部使用继电器。


图24. 哈佛大学-IBM公司Mark-I左半边


图25. 哈佛大学-IBM公司Mark-I右半边


图27. 哈佛大学-IBM公司Mark-I输入输出细部

艾肯等人制造的机电式计算机,其典型部件是普通的继电器,继电器的开关速度是1/100秒,使得机电式计算机的运算速度受到限制。20世纪30年代已经具备了制造电子计算机的技术能力,机电式计算机从一开始就注定要很快被电子计算机替代。事实上,电子计算机和机电式计算机的研制几乎是同时开始的。

四、电子计算机
1939年,美国爱荷华州立大学数学物理学教授阿塔纳索夫(John Atanasoff)和他的研究生贝利(Clifford Berry)一起研制了一台称为ABC(Atanasoff-Berry Computer)的电子计算机。由于经费的限制,他们只研制了一个能够求解包含30个未知数的线性代数方程组的样机。在阿塔纳索夫的设计方案中,第一次提出采用电子技术来提高计算机的运算速度。特别要指出的是,这台ABC计算机才是世界上第一台电子计算机,而不是后来ENIAC。所以,从计算工具的发展史上看,这个“公案”应该得到平反。阿塔纳索夫祖籍是保加利亚,保加利亚首都索菲亚为他矗立起这位真正的“计算机之父”的雕像。



图28. 美国爱荷华州立大学杜伦中心阿塔纳索夫-贝瑞计算机模型


图29.阿塔纳索夫-贝瑞计算机原理图


图30. 保加利亚首都索菲亚的阿塔纳索夫塑像

第二次世界大战中,美国宾夕法尼亚大学物理学教授莫克利(John Mauchly)和他的研究生埃克特(Presper Eckert)受军械部的委托,为计算弹道和射击表启动了研制ENIAC(Electronic Numerical Integrator and Computer)的计划,1946年2月15日,这台标志人类计算工具历史性变革的巨型机器宣告竣工。ENIAC是一个庞然大物,共使用了18000多个电子管、1500多个继电器、10000多个电容和7000多个电阻,占地167平方公尺,重达30吨。ENIAC的较大特点就是采用电子器件代替机械齿轮或电动机械来执行算术运算、逻辑运算和存储信息,因此,同以往的计算机相比,ENIAC最突出的优点就是高速度。ENIAC每秒能完成5000次加法,300多次乘法,比当时最快的计算工具快1000多倍。 

虽然ENIAC显示了电子元件在进行初等运算速度上的优越性,但没有较大限度地实现电子技术所提供的巨大潜力。ENIAC的主要缺点是:第一,存储容量小,至多存储20个10位的十进制数;第二,程序是“外插型”的,为了进行几分钟的计算,接通各种开关和线路的准备工作就要用几个小时。新生的电子计算机需要人们用千百年来制造计算工具的经验和智慧赋予更合理的结构,从而获得更强的生命力。



图31.美国宾夕法尼亚大学摩尔工程与应用科学学院展出的ENIAC

1945年6月,普林斯顿大学数学教授冯·诺依曼(Von Neumann)发表了《离散变量自动电子计算机》(EDVAC,Electronic Discrete Variable Computer)方案,确立了现代计算机的基本结构,提出计算机应具有五个基本组成成分:运算器、控制器、存储器、输入设备和输出设备,描述了这五大部分的功能和相互关系,并提出“采用二进制”和“存储程序”这两个重要的基本思想。迄今为止,大部分计算机仍基本上遵循冯·诺依曼结构。冯·诺依曼的伟大功绩在于他运用雄厚的数理知识和非凡的分析、综合能力,在EDVAC的总体配置和逻辑设计中起到了关键的作用。由于该机器是在普林斯顿高级研究院(Institute of Advanced Study)制作的,因此又叫IAS计算机。


图32. 美国历史国家博物馆的IAS计算机模型


图33. 冯·诺依曼与IAS计算机

总之,阿塔纳索夫-贝利计算机正好处于模拟计算与数字计算的门槛上;而ENIAC的问世则让计算机进入数字的时代;最终冯·诺依曼吸收了图灵机的理论成果开发出冯·诺依曼架构。从此,数字计算机的整体架构得以确立。

欢迎加入本站公开兴趣群
高性能计算群
兴趣范围包括:并行计算,GPU计算,CUDA,MPI,OpenMP等各种流行计算框架,超级计算机,超级计算在气象,军事,航空,汽车设计,科学探索,生物,医药等各个领域里的应用
QQ群:326600878

鲜花

握手

雷人

路过

鸡蛋

最新评论

热门频道

  • 大数据
  • 商业智能
  • 量化投资
  • 科学探索
  • 创业

即将开课

 

GMT+8, 2018-7-23 10:13 , Processed in 0.179514 second(s), 23 queries .