计算思维与计算机导论
上QQ阅读APP看书,第一时间看更新

1.3 计算工具的发展史

人们在进行计算和自动计算时需要考虑以下4个问题。

(1)数据的表示。例如,整数、浮点数、字符等如何表示。

(2)数据的存储及自动存储。例如,计算的数据、中间结果、最终结果如何存储。

(3)计算规则的表示。例如,如何表示加、减、乘、除等算术运算规则。

(4)计算规则的执行与自动执行。例如,如何自动运行【例1.3】中的各个步骤。

提示

计算工具的发展过程就是人们不断追求计算的机械化、自动化和智能化,尝试各种计算工具,实现数据的表示、存储和自动存储数据、计算规则的表示、执行和自动执行计算规则的过程。

1.3.1 计算工具的发展

计算工具的发展包括手动计算器、机械式计算器和电子计算机3个阶段。

1. 手动计算器

在有史料记载之前,人类就开始使用小石块和有刻痕的小棍作为计数工具。随着人类的生产和生活日益复杂,简单的计数已经不能满足需要,很多交易不仅需要计数而且还需要计算。

计算需要基于算法,算法是处理数字所依据的一步步操作过程,而手动计算器就是利用算法进行辅助数字计算过程的设备。

在西周时期出现的算珠和春秋早期出现的算筹是最早将算法和专用实物结合起来的运算工具。到了宋元年间,杨辉等著名数学家创建的珠算歌诀是将算法理论化、系统化的初步表现。到了明代,珠算取代了算筹,算盘的应用空前成熟和广泛,如图1-1所示。

图1-1 算盘

算盘利用算珠表示和存储数字,计算规则是一套口诀,由人按照口诀手工拨动算珠完成四则运算。自动计算需要由机器自动存储数据执行规则,而算盘的计算过程由手工完成,所以算盘不是自动计算工具。

纳皮尔筹,也称为纳皮尔计算尺,如图1-2所示,是17世纪由英国数学家纳皮尔(John Napier)发明的。它由10根木条组成,每根木条上都刻有数码,右边第一根木条是固定的,其余的木条都可以根据计算的需要进行拼合或调换位置。纳皮尔筹也曾传到过中国,北京故宫博物院里至今还保留有珍藏品。

图1-2 纳皮尔计算尺

在17世纪中期,英国数学家奥特雷德(William Oughtred)在刻度尺的基础上发明了滑动刻度尺,一直被学生、工程师和科学家所利用,如图1-3所示。

图1-3 滑动刻度尺

2. 计算机的雏形——机械式计算器

手动计算器需要操作者使用算法来进行计算,而机械式计算器可以自动完成计算,操作者不需要了解算法。使用机械式计算器时,操作者只需输入计算所需的数字,然后拉动控制杆或转动转轮来进行计算,操作者无须思考,且计算的速度更快。

1642年,法国物理学家和思想家帕斯卡(Blaise Pascal)发明了加法器(Pascaline),如图1-4所示,是人类历史上第一台机械式计算器,它自动存储计算过程中的数字、自动执行规则。机器通过齿轮表示和存储十进制的各个数位的数字。它通过齿轮比解决进位问题。在两数相加时,先在加法机的轮子上拨出一个数,再按照第二个数在相应的轮子上转动对应的数字,最后就会得到这两数的和。

图1-4 帕斯卡加法器

1673年,莱布尼茨(Gottfried Wilhelm Leibniz)发明了乘法器。这是第一台可以运行完整的四则运算的计算器。他还在巴黎科学院表演了经他改进的采用十字轮结构的计算器(见图1-5),完成了数字的不连续传输,奠定了早期机械式计算器的雏形。据记载,莱布尼茨曾把自己的乘法机复制品送给康熙皇帝。

图1-5 莱布尼茨改进的计算器

1822年,英国数学家巴贝奇(Charles Babbage)发明了差分机。它以蒸汽作为动力,可以快速而准确地计算天文学和大型工程中的数据表。差分机中使用了类似于存储器的设计方式,甚至包含了很多现代计算机的概念,体现了早期程序设计思想的萌芽,如图1-6所示。

图1-6 差分机

库塔(Curta)是能够用一只手拿着的机械式的精确计算器,如图1-7所示,可以进行加减乘除运算,而且能够帮助计算平方根,其计算结果至少可以精确到11位。发明者库特·赫兹斯塔克(Curt Herzstark)在第二次世界大战被关押在布痕瓦尔德集中营期间完成该设计。在20世纪50~60年代,“库塔”广泛应用于科学家、工程师、测量员和会计师等人群,当电子袖珍计算器于20世纪70年代进入市场后,“库塔”才逐渐不再使用。

图1-7 库塔计算器

3. 电子计算机

在借鉴了手工计算器、机械式计算工具发展中的机械化、自动化的思想后,电子计算机实现了自动存储数据,能够理解和自动执行任意的复杂规则,能进行任意形式的计算,计算能力显著提高。

在1937—1942年,爱荷华州立大学的约翰·文森特·阿塔纳索夫(John Vincent Atanasoff)和他的研究生克利福特·贝瑞(Clifford Berry)共同设计了阿塔纳索夫-贝瑞计算机(Atanasoff-Berry Computer,ABC),如图1-8所示。它采用真空电子管代替机械式开关作为处理电路,结合了基于二进制数字系统的理念。ABC本身不可编程,仅仅用于求解线性方程组。

图1-8 ABC

ENIAC(Electronic Numerical Intergrator And Calculator,电子数字积分机和计算机)于1946年2月诞生在美国宾夕法尼亚大学,它是美国为计算弹道表而研制的第一台军用电子计算机,如图1-9所示。它使用18 000个电子管,耗电量150kW,总重量达30t,每秒可以执行5 000次加法运算,是手工计算的20万倍,其造价为48万美元。ENIAC是世界公认的第一台电子计算机。

图1-9 ENIAC

1.3.2 元器件的发展

计算机发展的过程中,人们需要寻找和发明能够进行数据自动存储、自动执行规则的元器件,元器件的发展与演变是计算工具发展的重要基础。元器件发展中经历了电子管、晶体管、集成电路3个阶段。

1. 电子管

1895年,英国电器工程师弗莱明(John Fleming)博士发明了第一只电子管(真空二极管),它是使电子单向流动的元器件。1907年,美国人德福雷斯(Lee de Forest)发明了真空三极管,这一发明使他赢得了“无线电之父”的称号。德福雷斯在二极管的灯丝和板级间加了一块栅板,使得电子流动可以控制。从而使得电子管进入普及和应用阶段,并使电子管成为可以用于存储和控制二进制数的电子元器件。世界上公认的第一台电子计算机ENIAC就是使用的电子管。

电子管比机械式继电器反应快,计算速度快,但缺点是体积大、可靠性低、能耗大、易损坏,如图1-10(a)所示。

2. 晶体管

1947年,贝尔(Bell)实验室发明了晶体管,可以控制电流和电压,还可以作为电子信号的开关,如图1-10(b)所示。20世纪50年代末,晶体管风靡世界。与电子管相比,晶体管的体积更小、价格更便宜,并且能耗低、可靠。以晶体管为主要器件的计算机体积更小,速度可提升到百万次/秒,此时还出现了操作系统,并且开始采用高级语言进行程序设计。晶体管计算机需要使用电线将数万个晶体管连接起来,其电路结构复杂,使得计算机的可靠性变低。

3. 集成电路

1958年,德州仪器公司的基尔比(Jack Kilby)提出了集成电路的构想:通过在同一材料(硅)块上集成所有元件,并通过上方的金属化层连接各个部分,自动实现复杂的变换。这样,就不再需要分立的独立元件,避免了手工组装元件、导线的步骤。

集成电路使得在单个小型芯片上集成数千个元件成为可能,大大减少了设备的体积、重量和能耗。由于集成的元件个数多,使得运算速度更快,如图1-10(c)所示。

大规模集成电路可以在一个芯片上集成几百个元件,20世纪80年代的超大规模集成电路(Very Large Scale Integrated Circuit,VLSI)可以在芯片上集成几十万个元件,90年代的特大规模集成电路(Ultra Large Scale Integrated Circuit,ULSI)将数量扩充到百万级,如图1-10(d)所示。到了2012年,在一块采用超大规模集成电路技术的硅片上可以集成14亿个元件。

图1-10 电子器件

关于集成电路的发展,Intel创始人戈登·摩尔(Gordon Moore)提出了摩尔定律:当价格不变时,集成电路上可容纳的晶体管数目约每18个月会增加1倍,其性能也提升1倍。

提示

元器件的发展规律是:元件的尺寸越来越小,芯片体积越来越小,芯片上集成的器件越来越多,可靠性越来越高,运行速度越来越快,价格却越来越便宜。计算机的计算速度越来越快,功能越来越强大,能够完成的任务也越来越复杂。