Chinapub.com 下载 第18章从算盘到芯片 纵观历史,人类发明了很多灵巧的工具和机器以满足广泛的需求,从而使数学运算变得 更容易了些。虽然人类天生就有使用数字的能力,但仍能经常需要帮助。人们常遇到一些自 己不能轻易解决的问题 数字可看成是早期帮助人类记录商品和财富的工具。许多文明,包括古希腊和美洲土著, 都借用石子或谷物来计数。在欧洲使用计数板,而在中国则对由框和珠子组成的算盘较为熟 88888 没有人真的喜欢乘法和除法,但却有人为它做过什么,苏格兰数学家 Join Napier(1550 1617)就是这少数人中的一个。他发明了对数来简化这些操作,两数之积简化为它们对数的和。 因此,如果你想使两数相乘,先在对数表中分别查出它们的值,然后相加,再用相反的方法查 对数表就可得到它们的积 对数表的建立,使得随后400年里一些最伟大的思想家一直为此忙碌,而另一些人却在设 计使用小装置来代替对数表。一种有对数标尺的滑尺已有很长的历史了,它由 Edmund gunter (1581-1626)发明并由 William Oughtred(1574-1660)修正。1976年,当 Keuffel& Esser公司 将其公司最后制造的滑尺捐赠给华盛顿特区的 Smithsonian学院时,滑尺的历史也就宣告结束 了,其中的原因是手持计算器的出现 多 Napier也发明了一种乘法辅助器,它由刻在骨头、号角、像牙上的数字条组成,因而这样 的辅助器称为 Napier骨架。1620年左右, Wilhelm schickard(1592-1635)制造出了最早的有 点儿自动功能的由 Napier骨架组成的机械计算器。几乎在同时出现了由互相连结的轮子、齿 轮和水平仪组成的另外一种计算器,这种机械计算器的两个最主要的制造者是数学家和哲学 家布莱兹·帕斯卡(1623-1662)和莱布尼兹(1646-1716) 你一定能记得最初的8位加法器和能自动进行多于8位数的加法计算的计算机中的进位是 多么令人讨厌。进位原先似乎只是加法运算中的一个小问题,但在加法机中却成了一个中心 问题。即使设计一个能进行除进位外的所有工作的加法机,也不能说工作就算完成了。 进位处理是否成功是评估老式计算机的关键。例如,帕斯卡设计的进位机制禁止减法运 算。为了进行减法,必须加上9的补码,这在第13章中已经讲到。直到19世纪后期,才出现了 真正可以为人们所使用的机械计算器
下载 第18章 从算盘到芯片 纵观历史,人类发明了很多灵巧的工具和机器以满足广泛的需求,从而使数学运算变得 更容易了些。虽然人类天生就有使用数字的能力,但仍能经常需要帮助。人们常遇到一些自 己不能轻易解决的问题。 数字可看成是早期帮助人类记录商品和财富的工具。许多文明,包括古希腊和美洲土著, 都借用石子或谷物来计数。在欧洲使用计数板,而在中国则对由框和珠子组成的算盘较为熟 悉: 没有人真的喜欢乘法和除法,但却有人为它做过什么,苏格兰数学家 Join Napier(1550- 1 6 1 7 )就是这少数人中的一个。他发明了对数来简化这些操作,两数之积简化为它们对数的和。 因此,如果你想使两数相乘,先在对数表中分别查出它们的值,然后相加,再用相反的方法查 对数表就可得到它们的积。 对数表的建立,使得随后 4 0 0年里一些最伟大的思想家一直为此忙碌,而另一些人却在设 计使用小装置来代替对数表。一种有对数标尺的滑尺已有很长的历史了,它由 Edmund Gunter (1 5 8 1-1 6 2 6)发明并由William Oughtred(1 5 7 4-1 6 6 0)修正。1 9 7 6年,当K e u ff e l & E s s e r公司 将其公司最后制造的滑尺捐赠给华盛顿特区的 Smithsonian 学院时,滑尺的历史也就宣告结束 了,其中的原因是手持计算器的出现。 N a p i e r也发明了一种乘法辅助器,它由刻在骨头、号角、像牙上的数字条组成,因而这样 的辅助器称为N a p i e r骨架。1 6 2 0年左右,Wilhelm Schickard(1 5 9 2-1 6 3 5)制造出了最早的有 点儿自动功能的由 N a p i e r骨架组成的机械计算器。几乎在同时出现了由互相连结的轮子、齿 轮和水平仪组成的另外一种计算器,这种机械计算器的两个最主要的制造者是数学家和哲学 家布莱兹·帕斯卡 ( 1 6 2 3-1 6 6 2 )和莱布尼兹( 1 6 4 6-1 7 1 6 )。 你一定能记得最初的 8位加法器和能自动进行多于 8位数的加法计算的计算机中的进位是 多么令人讨厌。进位原先似乎只是加法运算中的一个小问题,但在加法机中却成了一个中心 问题。即使设计一个能进行除进位外的所有工作的加法机,也不能说工作就算完成了。 进位处理是否成功是评估老式计算机的关键。例如,帕斯卡设计的进位机制禁止减法运 算。为了进行减法,必须加上 9的补码,这在第1 3章中已经讲到。直到1 9世纪后期,才出现了 真正可以为人们所使用的机械计算器
174的 Chinapub co M 下载 个奇特的发明对计算的历史产生了深远的影响,就像它对纺织所产生的深远影响一样, 这就是约瑟夫·玛丽·杰奎德(1752-1834)所发明的自动织布机。杰奎德织布机(大约产生于 1801年)使用上面已打孔的金属卡片(就像钢琴上的金属卡片)来控制编织物的图案。杰奎 德的一大杰作就是用黑白丝线织成的自画像,为此使用了大约1万张卡片。 在18世纪(甚至直到20世纪40年代),计算机就像一个以计算数字谋生的人。使用星星进 行航海导航经常需要对数表,并且三角函数表也是必需的。如果需要发布新表,则需要许多 计算机来工作,然后把结果汇总起来。当然,在这一过程的任何阶段,即从初始化计算到设 置类型来打印最后几页都可能会出现错误 从数学表中消除错误的愿望激发了查尔斯·巴贝芝(1791-1871)。巴贝芝是一位英国的 数学家和经济学家,他和摩尔斯差不多是同一时代的人。 在那时,数学表(以对数表为例)并不是通过计算表中每 项确切的对数值而建立的,因为这得花费很多时间。取而代 之的是选择一些数进行对数计算,而介于这些数中间的那些数 则采用插补,即称作差分的方法,通过相对简单的计算来得到 大约在1820年,巴贝芝认为可以设计并制造一台机器来自 动建立表,甚至可以到自动设置打印类型这一步,这样可以消 除错误。他构想了差分机,这是一个很大的机械加法机。通过 切换,可使位于10个不同位置的轮子来表示各位数的十进制数 字,负数用10的补码来计算。尽管一些早期的模型可以证明巴 贝芝的设计是可行的,并且也从英国政府获得了一些支持,但差分机却从未完成过。巴贝芝 于1833年放弃了这一工作 然而,就在那个时候,巴贝芝又有了一个更好的构想,这就是解析机(重复的设计和再设 计不断耗费着巴贝芝的生命,直到他死去),解析机是19世纪最接近计算机的发明。在巴贝芝 的设计中,有一个存储系统(类似于今天存储器的概念)和运算器(算术单元)。乘法由重复 加法来实现,除法由重复减法来实现。 解析机最精华的部分在于它可以用卡片来编程,这些卡片是由杰奎徳的按图案编织的织 布机上的卡片经过改造而制成的。正如艾达·奥古斯塔,即拉弗雷斯女伯爵(1815-1852)在 她翻译的由一个意大利数学家写的,关于巴贝芝解析机的文章的按语里写的:“我们可以说解 析机编织的是代数模型,正如杰奎德织布机编织的是花和叶一样”。 巴贝芝可能是第一个意识到计算机中条件转移的重要性的人。拉弗雷斯女伯爵关于此也 曾写道:“操作循环必须理解成一批操作,这些操作可以重复多次。无论是只重复两次还是无 穷次,都是一个循环,归根到底重复组成了循环的这些操作。许多情况下,还会出现一个或 多个循环的重复,即循环的循环或多个循环的循环”。 尽管差分机最终由 Georg和 Edvard Scheutz父子在1853年制成,但巴贝芝的机器那时己被 遗忘了很久,直到20世纪30年代人们开始追寻20世纪计算机的根源时才再次想起。巴贝芝曾 经做的东西已经被后来的技术所超越,除了他对自动化的超前认识外,他并没有为20世纪的 计算机工程留下什么东西 计算机历史上另一个里程碑来源于美国宪法第二部分的第一篇。这一部分里除其他事情 外还要求每10年进行一次人口普査。1880年人口普查的时候,人口信息按年龄、性别及祖籍
一个奇特的发明对计算的历史产生了深远的影响,就像它对纺织所产生的深远影响一样, 这就是约瑟夫·玛丽·杰奎德 ( 1 7 5 2-1 8 3 4 )所发明的自动织布机。杰奎德织布机(大约产生于 1 8 0 1年)使用上面已打孔的金属卡片(就像钢琴上的金属卡片)来控制编织物的图案。杰奎 德的一大杰作就是用黑白丝线织成的自画像,为此使用了大约 1万张卡片。 在1 8世纪(甚至直到2 0世纪4 0年代),计算机就像一个以计算数字谋生的人。使用星星进 行航海导航经常需要对数表,并且三角函数表也是必需的。如果需要发布新表,则需要许多 计算机来工作,然后把结果汇总起来。当然,在这一过程的任何阶段,即从初始化计算到设 置类型来打印最后几页都可能会出现错误。 从数学表中消除错误的愿望激发了查尔斯·巴贝芝( 1 7 9 1—1 8 7 1)。巴贝芝是一位英国的 数学家和经济学家,他和摩尔斯差不多是同一时代的人。 在那时,数学表(以对数表为例)并不是通过计算表中每 一项确切的对数值而建立的,因为这得花费很多时间。取而代 之的是选择一些数进行对数计算,而介于这些数中间的那些数 则采用插补,即称作差分的方法,通过相对简单的计算来得到。 大约在 1 8 2 0年,巴贝芝认为可以设计并制造一台机器来自 动建立表,甚至可以到自动设置打印类型这一步,这样可以消 除错误。他构想了差分机,这是一个很大的机械加法机。通过 切换,可使位于 1 0个不同位置的轮子来表示各位数的十进制数 字,负数用 1 0的补码来计算。尽管一些早期的模型可以证明巴 贝芝的设计是可行的,并且也从英国政府获得了一些支持,但差分机却从未完成过。巴贝芝 于1 8 3 3年放弃了这一工作。 然而,就在那个时候,巴贝芝又有了一个更好的构想,这就是解析机 (重复的设计和再设 计不断耗费着巴贝芝的生命,直到他死去 ),解析机是1 9世纪最接近计算机的发明。在巴贝芝 的设计中,有一个存储系统(类似于今天存储器的概念)和运算器(算术单元)。乘法由重复 加法来实现,除法由重复减法来实现。 解析机最精华的部分在于它可以用卡片来编程,这些卡片是由杰奎德的按图案编织的织 布机上的卡片经过改造而制成的。正如艾达·奥古斯塔,即拉弗雷斯女伯爵( 1 8 1 5-1 8 5 2)在 她翻译的由一个意大利数学家写的,关于巴贝芝解析机的文章的按语里写的:“我们可以说解 析机编织的是代数模型,正如杰奎德织布机编织的是花和叶一样”。 巴贝芝可能是第一个意识到计算机中条件转移的重要性的人。拉弗雷斯女伯爵关于此也 曾写道:“操作循环必须理解成一批操作,这些操作可以重复多次。无论是只重复两次还是无 穷次,都是一个循环,归根到底重复组成了循环的这些操作。许多情况下,还会出现一个或 多个循环的重复,即循环的循环或多个循环的循环”。 尽管差分机最终由G e o rg和Edvard Scheutz 父子在1 8 5 3年制成,但巴贝芝的机器那时已被 遗忘了很久,直到 2 0世纪3 0年代人们开始追寻 2 0世纪计算机的根源时才再次想起。巴贝芝曾 经做的东西已经被后来的技术所超越,除了他对自动化的超前认识外,他并没有为 2 0世纪的 计算机工程留下什么东西。 计算机历史上另一个里程碑来源于美国宪法第二部分的第一篇。这一部分里除其他事情 外还要求每1 0年进行一次人口普查。 1 8 8 0年人口普查的时候,人口信息按年龄、性别及祖籍 174 编码的奥秘 下载
Chinaopub.coM 第18章从算盘到芯片 175 下载 来收集,数据的收集差不多花了七年的时间来进行 由于担心1890年的人口普查可能需要超过10年的时间,人口普查局寻求使该系统工作自 动化的可能性并选用了赫曼·霍勒瑞斯(1860-1929)开发的机器,此人是1880年人口普查的 统计员 霍勒瑞斯的想法是采用马尼拉穿孔卡片,大小是6×34 虽然霍勒瑞斯不可能知道巴贝芝如何使用卡片在他的解析机上编 程,但他却很熟悉杰奎德织布机上卡片的使用。)卡片上的孔组成 24列,每列12个,这样共有288个位置,这些位置表示某个人在人 口普查记录中的某些特征。普查员通过在卡片的适当位置上打1 英寸的方孔来标识这些特征。 本书可能使得人们习惯于用二进制码的概念来思考问题,因 此,你可能马上会想到卡片上的288个穿孔点可以存储288位信息。 但是,这些卡片并不是这样用的 例如,在纯二进制系统中,人口普查卡片会有一个位置来表示性别,可以用打孔表示 性,未打孔表示女性(或者相反)。但是,霍勒瑞斯的卡片用两个位置表示性别,一个位置打 孔表示男性,另一个位置打孔表示女性。同样,用两个穿孔表示年龄,一个穿孔指明一个5年 的年龄范围:0~4、5~9、10~14等等,另一个孔用5个位置中的一个来表明在该范围内的确 切年龄。年龄编码需要卡片上总共28个位置。而纯二进制系统只需要η个位置就可编码0~127 的任何年龄。 我们应该原谅霍勒瑞斯在记录人口普查信息时没有采用二进制系统,对于1890年的人口 普查员来说,把年龄转换成二进制数要求太高了一些。还有一个实际原因来解释穿孔卡片系 统为什么不能全部是二进制的是因为二进制系统可能出现这样一种情形,即所有的孔都被打 孔,使得卡片很脆弱,结构不牢固。 人口普査的数据收集可进行统计或制成表格。你可能想知道每一个区域内有多少人生活, 当然,你也可能对人口的年龄分布统计信息感兴趣。正因为如此,霍勒瑞斯制造了一个制表 机,它能结合手工操作和自动操作。操作员把一个有288个弹簧针的板子压到每一个卡片上 对应于卡片上每一个穿孔的针接触水银池形成电路,电路触发电磁铁使十进制计数器计数 霍勒瑞斯在分类卡片的机器上也用了电磁铁。例如,如果需要统计所记录的每一个职业 的年龄资料,首先需要按职业对卡片分类,然后对每一个职业统计年龄资料。分类机与制表 机一样用手压,但分类机使用电磁铁打开一个开口,对应于26个分隔区域中的一个,操作员 把卡片放入分隔区域,然后用手工关上开口 这项实验在自动进行1890年的人口普查工作中取得了巨大成功,处理了超过6200万张的 卡片,包含的数据是1880年人口普查的2倍,而数据处理只花了大约1880年人口普查所花时间 的1/3。霍勒瑞斯和他的发明享誉全球。1895年,他甚至到了莫斯科并成功地卖出了他的设备, 该设备在1897年第一次用于俄罗斯的人口普查。 霍勒瑞斯开始进行各种活动。1896年,他创立了制表机公司,出租和出售穿孔卡片设备。 1911年,经过合并,该公司成为计算-制表-记录( computing- Tabulating- Recording)公司,即 C-TR公司。到1915年,C-T-R的主席是 Thomas j Watson(1874-1956),他在1924年把公司的 名字改为国际商用机器公司,即IBM
来收集,数据的收集差不多花了七年的时间来进行。 由于担心1 8 9 0年的人口普查可能需要超过 1 0年的时间,人口普查局寻求使该系统工作自 动化的可能性并选用了赫曼·霍勒瑞斯 ( 1 8 6 0—1 9 2 9 )开发的机器,此人是 1 8 8 0年人口普查的 统计员。 霍勒瑞斯的想法是采用马尼拉穿孔卡片,大小是 。 (虽然霍勒瑞斯不可能知道巴贝芝如何使用卡片在他的解析机上编 程,但他却很熟悉杰奎德织布机上卡片的使用。)卡片上的孔组成 2 4列,每列1 2个,这样共有2 8 8个位置,这些位置表示某个人在人 口普查记录中的某些特征。普查员通过在卡片的适当位置上打 1 / 4 英寸的方孔来标识这些特征。 本书可能使得人们习惯于用二进制码的概念来思考问题,因 此,你可能马上会想到卡片上的 2 8 8个穿孔点可以存储 2 8 8位信息。 但是,这些卡片并不是这样用的。 例如,在纯二进制系统中,人口普查卡片会有一个位置来表示性别,可以用打孔表示男 性,未打孔表示女性(或者相反)。但是,霍勒瑞斯的卡片用两个位置表示性别,一个位置打 孔表示男性,另一个位置打孔表示女性。同样,用两个穿孔表示年龄,一个穿孔指明一个 5年 的年龄范围:0~4、5~9、1 0~1 4等等,另一个孔用5个位置中的一个来表明在该范围内的确 切年龄。年龄编码需要卡片上总共 2 8个位置。而纯二进制系统只需要 7个位置就可编码0~1 2 7 的任何年龄。 我们应该原谅霍勒瑞斯在记录人口普查信息时没有采用二进制系统,对于 1 8 9 0年的人口 普查员来说,把年龄转换成二进制数要求太高了一些。还有一个实际原因来解释穿孔卡片系 统为什么不能全部是二进制的是因为二进制系统可能出现这样一种情形,即所有的孔都被打 孔,使得卡片很脆弱,结构不牢固。 人口普查的数据收集可进行统计或制成表格。你可能想知道每一个区域内有多少人生活, 当然,你也可能对人口的年龄分布统计信息感兴趣。正因为如此,霍勒瑞斯制造了一个制表 机,它能结合手工操作和自动操作。操作员把一个有 2 8 8个弹簧针的板子压到每一个卡片上, 对应于卡片上每一个穿孔的针接触水银池形成电路,电路触发电磁铁使十进制计数器计数。 霍勒瑞斯在分类卡片的机器上也用了电磁铁。例如,如果需要统计所记录的每一个职业 的年龄资料,首先需要按职业对卡片分类,然后对每一个职业统计年龄资料。分类机与制表 机一样用手压,但分类机使用电磁铁打开一个开口,对应于 2 6个分隔区域中的一个,操作员 把卡片放入分隔区域,然后用手工关上开口。 这项实验在自动进行 1 8 9 0年的人口普查工作中取得了巨大成功,处理了超过 6 2 0 0万张的 卡片,包含的数据是 1 8 8 0年人口普查的2倍,而数据处理只花了大约 1 8 8 0年人口普查所花时间 的1 / 3。霍勒瑞斯和他的发明享誉全球。1 8 9 5年,他甚至到了莫斯科并成功地卖出了他的设备, 该设备在1 8 9 7年第一次用于俄罗斯的人口普查。 霍勒瑞斯开始进行各种活动。 1 8 9 6年,他创立了制表机公司,出租和出售穿孔卡片设备。 1 9 11年,经过合并,该公司成为计算-制表-记录 ( c c o m p u t i n g - Ta b u l a t i n g - R e c o r d i n g )公司,即 C - T- R公司。到1 9 1 5年,C - T- R的主席是Thomas J.Wa t s o n ( 1 8 7 4-1 9 5 6 ),他在1 9 2 4年把公司的 名字改为国际商用机器公司,即 I B M。 6 5 8 ´ 3 1 4 第18章 从算盘到芯片 175 下载
176编的奥 Chinapub. coM 下载 1928年,原先的1890年的人口普查卡片已经演化成为著名的“不会卷曲、折叠’、翘页” 的IBM卡片,有80列12行。它们用了50多年,即使在最后几年也被称作霍勒瑞斯卡片。在第 20、21和24章将要讲到这些卡片的影响。 在把目光移到20世纪之前,不要对19世纪那个年代有太多的偏见。显然,本书主要着眼 于数字系统的发明,这些发明包括电报、布莱叶盲文、巴贝芝机器和霍勒瑞斯卡片。当与数 字概念和数字设备一起工作时,很容易会把整个世界都想像成数字世界。但是,19世纪的特 征更多体现在那些不是数字的发明及发现上。的确,我们感受到的自然世界只有很小一部分 是数字的,它更接近于是连续的而不那么容易被量化。 尽管霍勒瑞斯在他的卡片制表机和卡片分类机上用了继电器,但是直到20世纪30年代中 期,人们才真正开始用继电器来制造计算机(后来叫机电式计算机)。这些机器上用的继电器通 常不是电报继电器,而是那些用来在电话系统中控制呼叫路由的继电器。 早期的继电器计算机并不像我们在上一章中制造的继电器计算机(将会看到,后者计算 机的设计基础是基于从20世纪70年代开始的微处理器)。特别地,今天对我们来说计算机内采 用二进制数是显然的,但那时并不是这样 我们所设计的继电器计算机与早期的继电器计算机之间的另一个区别是在20世纪30年代, 没有人会狂热到用继电器构造524288位的存储器!所需的造价、空间及功耗使得这样大的存储 器不可能实现。可用的很小的存储器只是用来存储中间结果,而程序本身存储在像带有穿孔的 纸带这样的物理媒体上。的确,把代码和数据放入存储器的处理方式是一个很现代化的概念。 按年代排列,第一个继电器计算机似乎是由 Conrad zuse(1910-1995)建造的。1935年 当他还是一个工程系的学生的时候,他就开始在他父母位于柏林的住所里制造计算机。他采 用的是二进制数,但却是早期版本,且用的是机械存储器而不是继电器。Zuse在老式的35毫 米的电影胶片上穿孔来进行计算机编程 1937年,贝尔电话实验室的 George Stibitz(1904-1995)把一对电话继电器安装在家里, 并且又连接了一个1位加法器到餐桌上,后来他的夫人称它为“K机器”(K表示 kitchen,厨房) 该实验导致在1939年产生了贝尔实验室的复数计算机。 与此同时,哈佛大学的研究生 Howard aiken(1900-1973)因需要某种方法来做大量重 复计算,从而使得哈佛大学和IBM合作,制造出了最终称为 Harvard Mark I的自动顺序控制 计算机(AScC: automated sequence controlled calculator),此项工作在1943年完成。这是 第一台打制表格的数字计算机,它终于实现了巴贝芝的梦想。 Mark ll是以巨大的继电器为基 础的机器,使用了13000个继电器。由 Aiken领导的哈佛计算实验室讲授了计算机科学的第1 继电器并不是制造计算机的最好器件,因为它是机械的,工作时需弯曲一个金属簧片 如果超负荷工作,簧片就会折断:如果有一小片污垢或纸片粘在触点之间,继电器就会失效。 个著名的事件发生在1947年,从 Harvard mark I计算机的一个继电器中找到一只蛾子 Grace Murry Hopper(1906-1992)1944年加入 Aiken的小组,此人后来在计算机程序设计语 言领域非常有名。他在计算机日志中记录了这只蛾子,写道“第一次发现了真正的bug 继电器的一种可能的替代品是真空管,真空管由 John Ambrose fleming(1849-1945) 和 Lee de forest(1873-1961)发明用来同无线电设备连接。到20世纪40年代,真空管早已 用来放大电话信号。事实上,每一家的落地式收音机都装上了用来放大无线电信号的真空管
1 9 2 8年,原先的1 8 9 0年的人口普查卡片已经演化成为著名的“不会卷曲、折叠’、翘页” 的I B M卡片,有8 0列1 2行。它们用了5 0多年,即使在最后几年也被称作霍勒瑞斯卡片。在第 2 0、2 1和2 4章将要讲到这些卡片的影响。 在把目光移到 2 0世纪之前,不要对 1 9世纪那个年代有太多的偏见。显然,本书主要着眼 于数字系统的发明,这些发明包括电报、布莱叶盲文、巴贝芝机器和霍勒瑞斯卡片。当与数 字概念和数字设备一起工作时,很容易会把整个世界都想像成数字世界。但是, 1 9世纪的特 征更多体现在那些不是数字的发明及发现上。的确,我们感受到的自然世界只有很小一部分 是数字的,它更接近于是连续的而不那么容易被量化。 尽管霍勒瑞斯在他的卡片制表机和卡片分类机上用了继电器,但是直到 2 0世纪3 0年代中 期,人们才真正开始用继电器来制造计算机 (后来叫机电式计算机)。这些机器上用的继电器通 常不是电报继电器,而是那些用来在电话系统中控制呼叫路由的继电器。 早期的继电器计算机并不像我们在上一章中制造的继电器计算机(将会看到,后者计算 机的设计基础是基于从 2 0世纪7 0年代开始的微处理器)。特别地,今天对我们来说计算机内采 用二进制数是显然的,但那时并不是这样。 我们所设计的继电器计算机与早期的继电器计算机之间的另一个区别是在 2 0世纪3 0年代, 没有人会狂热到用继电器构造524 288位的存储器!所需的造价、空间及功耗使得这样大的存储 器不可能实现。可用的很小的存储器只是用来存储中间结果,而程序本身存储在像带有穿孔的 纸带这样的物理媒体上。的确,把代码和数据放入存储器的处理方式是一个很现代化的概念。 按年代排列,第一个继电器计算机似乎是由 Conrad Zuse(1 9 1 0-1 9 9 5)建造的。1 9 3 5年 当他还是一个工程系的学生的时候,他就开始在他父母位于柏林的住所里制造计算机。他采 用的是二进制数,但却是早期版本,且用的是机械存储器而不是继电器。 Z u s e在老式的3 5毫 米的电影胶片上穿孔来进行计算机编程。 1 9 3 7年,贝尔电话实验室的 G e o rge Stibitz(1 9 0 4-1 9 9 5)把一对电话继电器安装在家里, 并且又连接了一个1位加法器到餐桌上,后来他的夫人称它为“K机器”(K表示k i t c h e n,厨房)。 该实验导致在1 9 3 9年产生了贝尔实验室的复数计算机。 与此同时,哈佛大学的研究生 Howard Aiken(1 9 0 0-1 9 7 3)因需要某种方法来做大量重 复计算,从而使得哈佛大学和 I B M合作,制造出了最终称为 Harvard Mark I的自动顺序控制 计算机(A S C C:automated sequence controlled calculator),此项工作在1 9 4 3年完成。这是 第一台打制表格的数字计算机,它终于实现了巴贝芝的梦想。 Mark II是以巨大的继电器为基 础的机器,使用了 13 000个继电器。由 A i k e n领导的哈佛计算实验室讲授了计算机科学的第 1 课。 继电器并不是制造计算机的最好器件,因为它是机械的,工作时需弯曲一个金属簧片, 如果超负荷工作,簧片就会折断;如果有一小片污垢或纸片粘在触点之间,继电器就会失效。 一个著名的事件发生在 1 9 4 7年,从 Harvard Mark II计算机的一个继电器中找到一只蛾子。 Grace Murry Hopper (1 9 0 6—1 9 9 2)1 9 4 4年加入A i k e n的小组,此人后来在计算机程序设计语 言领域非常有名。他在计算机日志中记录了这只蛾子,写道“第一次发现了真正的 b u g”。 继电器的一种可能的替代品是真空管,真空管由 John Ambrose Fleming(1 8 4 9—1 9 4 5) 和Lee de Forest(1 8 7 3—1 9 6 1)发明用来同无线电设备连接。到 2 0世纪4 0年代,真空管早已 用来放大电话信号。事实上,每一家的落地式收音机都装上了用来放大无线电信号的真空管, 176 编码的奥秘 下载
第8章从算盘到片177 下载 以便人们能听见。真空管可以连接成与、或、与非和非门,这一点非常像继电器 逻辑门是由继电器还是由真空管来制造的并不重要。利用逻辑门可集成加法器、选择器 译码器、触发器和计数器。前面几章讲的基于继电器的器件在当继电器被换成真空管时仍然 用。 不过真空管也有问题,它们昂贵、耗电量大、散发的热量多。然而最大的问题在于它们 最终会被烧毁,这也就是它们的寿命问题。有真空管收音机的人就习惯于隔一段时间更换这 些管子。电话系统设计成有许多多余的管子,因此损失点儿管子也不是大的问题。(没有人能 指望电话系统不出一点儿问题。)然而计算机中的一个管子烧毁以后,并不能很快被检测到 而且,计算机中使用了如此多的真空管,可能每几分钟就会烧毁一个 使用真空管相对于继电器的最大好处在于它每百万分之一秒(即1微秒)就可以跳变一次 真空管改变状态(开关闭合或断开)的速度比继电器快1000倍,在最好的情况下,继电器状态 的变化大约需1毫秒,即千分之一秒。有趣的是,在早期计算机的研究中,速度问题并不是最 重要的,这是因为早期计算机总的计算速度与机器从纸带或电影胶片中读取程序的速度密切相 关。正是因为计算机是基于这种方式制造的,真空管比继电器速度快多少也就无关紧要了。 在20世纪40年代初,真空管开始在新的计算机中替换继电器。直到1945年,晶体管制成 正如继电器机器称为机电式计算机,真空管则是第一台电子计算机的基础。 在英国, Colossus计算机(1943年开始使用)用于破译德国的“ Enigma”代码生成器生 成的密码。为这个项目(和英国以后的一些计算机项目)做出贡献的人是艾伦·M·图灵 (1912-1954),他当时由于写了两篇很有影响的论文而闻名于世。第一篇论文发表于1937年 其中首先提出了“计算能力”的概念,用以分析计算机可以做到和不能做到的事。他构思出 了现在称为图灵机的计算机抽象模型。图灵写的第二篇著名论文的主题是人工智能,他介绍 了一个测试机器智能的方法,现在称作图灵测试法。 在摩尔电气工程学校, J Presper Eckert(1919-1995)和 John Mauchly(1907-1980)设计了 ENIAC( electronic numerical integrator and computer,电子数字积分器和计算机)。它采用了 18000个真空管,于1945年末完成。纯粹按吨位(大约30吨)计算, ENIAC是曾经制造出来 的(也许以后也是)最大的计算机。到1977年,你可以在电器行买到更快的计算机。然而 Eckert和 Mauchly的专利却被 John v Atanasoff(1903-1995)给阻挠了。 Atanasoff在早期曾设 计了一个电子计算机,但它从未很好地工作过。 ENIAC引起了数学家约翰·冯·诺依曼(1903-1957)的兴趣。从1930年开始,匈牙利出 生的冯·诺依曼就一直住在美国。他是一个令人瞩目的人物, 因能在脑子里构思复杂的算法而享有很高的声誉,他是普林斯 顿高级研究学院的一名数学教授,研究范围很广,从量子理论 到游戏理论的应用再到经济学。 冯·诺依曼帮助设计了 ENIAC的后继产品 EDVAO ( electronic discrete variable automatic computer)。特别是在 946年与 Arthur v. Burks和 Herman h goldstine合写的论文 <Preliminary Discussion of the logical Design of an Electroni Computing instrumert》中,他描述了有关计算机的几点功能 这些功能使得 EDVAC比 ENIAC更先进。 EDVAC的设计者感觉
以便人们能听见。真空管可以连接成与、或、与非和非门,这一点非常像继电器。 逻辑门是由继电器还是由真空管来制造的并不重要。利用逻辑门可集成加法器、选择器、 译码器、触发器和计数器。前面几章讲的基于继电器的器件在当继电器被换成真空管时仍然 可用。 不过真空管也有问题,它们昂贵、耗电量大、散发的热量多。然而最大的问题在于它们 最终会被烧毁,这也就是它们的寿命问题。有真空管收音机的人就习惯于隔一段时间更换这 些管子。电话系统设计成有许多多余的管子,因此损失点儿管子也不是大的问题。(没有人能 指望电话系统不出一点儿问题。)然而计算机中的一个管子烧毁以后,并不能很快被检测到, 而且,计算机中使用了如此多的真空管,可能每几分钟就会烧毁一个。 使用真空管相对于继电器的最大好处在于它每百万分之一秒(即 1微秒)就可以跳变一次。 真空管改变状态(开关闭合或断开)的速度比继电器快 1 0 0 0倍,在最好的情况下,继电器状态 的变化大约需1毫秒,即千分之一秒。有趣的是,在早期计算机的研究中,速度问题并不是最 重要的,这是因为早期计算机总的计算速度与机器从纸带或电影胶片中读取程序的速度密切相 关。正是因为计算机是基于这种方式制造的,真空管比继电器速度快多少也就无关紧要了。 在2 0世纪4 0年代初,真空管开始在新的计算机中替换继电器。直到 1 9 4 5年,晶体管制成。 正如继电器机器称为机电式计算机,真空管则是第一台电子计算机的基础。 在英国,C o l o s s u s计算机(1 9 4 3年开始使用)用于破译德国的“ E n i g m a”代码生成器生 成的密码。为这个项目(和英国以后的一些计算机项目)做出贡献的人是艾伦· M·图灵 ( 1 9 1 2—1 9 5 4 ),他当时由于写了两篇很有影响的论文而闻名于世。第一篇论文发表于 1 9 3 7年, 其中首先提出了“计算能力”的概念,用以分析计算机可以做到和不能做到的事。他构思出 了现在称为图灵机的计算机抽象模型。图灵写的第二篇著名论文的主题是人工智能,他介绍 了一个测试机器智能的方法,现在称作图灵测试法。 在摩尔电气工程学校, J.Presper Eckert(1919-1 9 9 5 )和John Mauchly(1907—1 9 8 0 )设计了 E N I A C(electronic numerical integrator and computer,电子数字积分器和计算机)。它采用了 18 000个真空管,于1 9 4 5年末完成。纯粹按吨位(大约 3 0吨)计算,E N I A C是曾经制造出来 的(也许以后也是)最大的计算机。到 1 9 7 7年,你可以在电器行买到更快的计算机。然而, E c k e r t和M a u c h l y的专利却被John V. A t a n a s o ff ( 1 9 0 3—1 9 9 5 )给阻挠了。A t a n a n s o ff在早期曾设 计了一个电子计算机,但它从未很好地工作过。 E N I A C引起了数学家约翰·冯·诺依曼 ( 1 9 0 3—1 9 5 7 )的兴趣。从1 9 3 0年开始,匈牙利出 生的冯·诺依曼就一直住在美国。他是一个令人瞩目的人物, 因能在脑子里构思复杂的算法而享有很高的声誉,他是普林斯 顿高级研究学院的一名数学教授,研究范围很广,从量子理论 到游戏理论的应用再到经济学。 冯·诺 依曼 帮助设 计了 E N I A C 的后 继产品 E D VA C (electronic discrete variable automatic computer)。特别是在 1 9 4 6年与 Arthur W. B u r k s和Herman H.Goldstine合写的论文 《Preliminary Discussion of the logical Design of an Electronic Computing instrumert》中,他描述了有关计算机的几点功能, 这些功能使得 E D VA C比E N I A C更先进。E D VA C的设计者感觉 第18章 从算盘到芯片 177 下载