阿塔纳索夫-贝瑞计算机(Atanasoff–Berry Computer,通常简称ABC计算机)是世界上第一台电子数字计算设备。

本文主要是介绍阿塔纳索夫-贝瑞计算机(Atanasoff–Berry Computer,通常简称ABC计算机)是世界上第一台电子数字计算设备。,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

阿塔纳索夫-贝瑞计算机

阿塔纳索夫-贝瑞计算机Atanasoff–Berry Computer,通常简称ABC计算机)是世界上第一台电子数字计算设备。这台计算机在1937年设计,不可编程,仅仅设计用于求解线性方程组,并在1942年成功进行了测试。然而,这台计算机用纸卡片读写器实现的中间结果存储机制是不可靠的。而且,在发明者约翰·文森特·阿塔纳索夫因为二战任务而离开爱荷华州立大学之后,这台计算机的工作就没有继续进行下去。ABC计算机开创了现代计算机的重要元素,包括二进制算术和电子开关。但是因为缺乏通用性、可变性与存储程序的机制,将其与现代计算机区分开来。这台计算机在1990年被认定为IEEE里程碑之一。

阿塔纳索夫-贝瑞计算机的复制品,位于爱荷华州立大学达勒姆中心1层。

阿塔纳索夫和克利福德·贝瑞的计算机工作直到1960年才被发现和广为人知,并且陷入了谁才是第一台计算机的冲突中。那时候,ENIAC普遍被认为是第一台现代意义上的计算机,但是在1973年,美国联邦地方法院注销了ENIAC的专利,并得出结论:ENIAC的发明者从阿塔纳索夫那里继承了电子数字计算机的主要构件思想。因此,ABC被认定为世界上第一台電子计算机。

设计与构造

ABC计算机构造部件图

根据阿塔纳索夫的讲述,ABC计算机的几个关键概念是在1937-1938年的一次长时间的夜间行驶中突然构想出来的。ABC的创新包括了电子计算、二进制算术、并行处理、蓄热式电容内存,还有存储和计算功能的分离。其机械和逻辑设计都是阿塔纳索夫博士在后面的一年中完成的。一个建立概念验证原型的资金申请在1939年3月提交到了农学部门,农学部门也对提高用于经济和研究分析的计算速度深感兴趣。纽约的非营利研究组织RCSA给予5000美金作为进一步资金支持。

ABC计算机是由阿塔纳索夫博士和研究生克利福德·贝瑞于1939到1942年,在艾奥瓦州立大学的物理楼地下室裡建造的。9月获得了初始资金之后,1939年10月完成了11个管件的演示原型。12月的演示为建造一个完整的机器带来了资金支持。接下来的两年里,ABC计算机完成了建设和测试。《得梅因纪事报》(Des Moines Register)在1941年1月15日声称,ABC计算机是由300多个真空管组成的“电子计算机器”,可以“计算复杂的代数方程”(但没有给出精确的计算机技术说明)。计算机系统的重量超过320千克(700磅),包含了大约1.6公里(1英里)的电线、280个双三极真空管、31个闸流管,大小相当于一个书桌。

ABC不是图灵完全的计算机。图灵完全将其与很多通用计算机区分开来,比如康拉德·楚泽的Z3计算机,或者更晚的计算机,如1946年的ENIAC、1949年的EDVAC、曼彻斯特大学的设计,以及艾伦·图灵于战后在英国国家物理实验室和其他地方的设计。而且,ABC也没有实现存储程序结构。如果实现的话,它将成为真正的全通用、可重新编程的计算机。

然而,这台计算机实现了三个关键思想,这些思想在现代计算机中仍然是一个组成部分:

  1. 使用二进制数表示所有的数值和数据
  2. 使用电子器件进行所有计算操作,而不是滚轮、棘轮或者机械开关
  3. 计算和存储在系统中分离成两部分

另外,这套系统开创了对蓄热式电容内存的使用,今天它仍在DRAM中广泛使用。

ABC计算机的存储体是一对转鼓,每个转鼓包含1600个电容器,它们围绕着共同的轴旋转,每秒一圈。每个转鼓上的电容器被分为32个“带”(“band”)(30个是活跃的,另外两个是在有电容器坏掉的时候备用的),每个带上有50个电容器,从而使机器每秒种可完成30次加减操作。数据表示成50位定点二进制数。存储体和运算单元的电子器件能同时存储和操作60个这样的数(3000位)。

60赫兹的交流电频率是最低级别操作的主时钟速率。

算术逻辑单元是用真空管实现的全电子器件。逻辑门系列由不同器件组成,低到变频器,高到两到三个输入门。输入输出水平和工作电压在不同的门之间是兼容的。每个门由一个反向真空管放大器组成,由它前面的电阻分压器输入网络定义逻辑功能。控制逻辑功能是用中继器实现的机电器件,因为带每旋转一圈才需完成一次操作,不需要电子器件那样高的速度。

虽然ABC计算机是早期计算机器发展的重要一步,但是它在解决一整个问题的时候并不能完全自动地运行。需要有一个操作员操作控制开关来设置各种功能,很像当时的机电计算器和单元计算设备。选择要进行的操作、读取、写出、二进制和十进制数的相互转换,或者化简方程组,这些操作都要通过前面面板上的开关来完成,有些情况下需要操作跳线。

输入和输出的形式有两种:主要的用户输入输出和中间结果的输入输出。中间结果的存储机制允许大问题整个存储在存储体中。如果不使用中间结果的输入输出功能,可以解决的最大问题就是求解由两个方程式联立成的方程组。

中间结果是以二进制数的形式写到纸上的,实现方式是用静电修改1500个位置的电阻器来表示50位数(一个方程)中的30位。每张纸可以在一秒钟内完成读或写。这套系统的可靠性限制在了每100000次计算出现一个错误,这主要归因于对纸张的材料性质缺乏控制。根据回忆,解决方案是在写出的每个数上加上一个校验位。这个问题直到阿塔纳索夫离开大学进入战争相关工作的时候都没有得到解决。

主要的用户输入是十进制的,通过标准的IBM80列打孔卡完成;输出也是十进制的,通过前面的一个面板显示出来。

功能

ABC计算机是为特定目的而设计的,就是求解线性方程组。它能求解多达29个方程组成的方程组,而这是当时的一个难题。这种规模的问题在约翰·阿塔纳索夫工作的物理学机构中已经很常见了。这台机器能够利用两个具有29个变量和一个常数项的方程,消掉其中一个变量。这个过程中需要重复地手动操作每个方程,最终得出消掉一个变量的方程组,然后再重复这个过程来消掉另一个变量,依此向下进行。

爱荷华州统计部门的负责人George W. Snedecor很可能是使用这台电子数字计算机解决现实世界数学问题的第一个人。他曾经向阿塔纳索夫提交过很多这种问题。

专利纠纷

参见:电子数值积分计算机 § 专利

約翰·皮斯普·埃克特(John Adam Presper "Pres" Eckert)和约翰·莫齐利(John Mauchly)发明ENIAC,是第一个电子计算设备专利的获得者。约翰·莫齐利曾经在1941年测试过ABC计算机,并且莫齐利以前的学生艾萨克·奥尔巴赫指控说,这影响了莫齐利之后关于ENIAC的工作,虽然莫齐利拒绝承认。1967年,霍尼韦尔起诉斯佩里·兰特,试图推翻他们对于ENIAC的专利,声称ABC计算机是在先技术。1973年10月19日,美国明尼苏达地区地方法院宣布裁决,在霍尼韦尔对斯佩里·兰特的诉讼中发现,ENIAC专利是由约翰·阿塔纳索夫的发明所衍生的。这个判决没有人提出上诉。

坎贝尔·凯利和Aspray总结说:

莫齐利对阿塔纳索夫的思想吸取到什么程度仍然是未知的,而且证据非常冗杂且相互矛盾。ABC计算机的技术相当温和,并且没有全部实现。至少我们能推断出,莫齐利看到了ABC计算机的潜在意义,导致他提出了一个类似的电子解决方案。

1973年10月19日,案件在法律上得到了解决,美国地方法院法官厄尔·拉尔森认为ENIAC的专利无效,判决说ENIAC从阿塔纳索夫-贝瑞计算机上继承了很多基础思想。法官拉尔森明确表示:“埃克特和莫齐利并非他们自己首先发明了自动电子数字计算机,而是继承了约翰·文森特·阿塔纳索夫的发明。”

复制品

当学校将地下室改造成教室的时候,原始的ABC计算机最终被拆掉了,而且所有的零部件(除了一个存储器转鼓)都被丢弃了。1997年,由埃姆斯实验室(位于爱荷华州校园)的约翰·古斯塔夫森领导的研究团队花费了35万美元,建造了一台能工作的ABC计算机复制品。现在,这台ABC计算机复制品永久展览于爱荷华州立大学达勒姆计算和通信中心一楼大厅。

参见

  • 计算机硬件历史

参考资料

  1. ^  Ralston, Anthony; Meek, Christopher (编), second: 488–489, 1976, ISBN 0-88405-321-0
  2. ^  Copeland, Jack, , Oxford: Oxford University Press: 101–115, 2006, ISBN 0-19-284055-X
  3. ^  Campbell-Kelly, Martin; Aspray, William, , New York, NY: Basic Books: 84, 1996, ISBN 0-465-02989-2
  4. ^  . IEEE Global History Network. IEEE. [3 August 2011]. (原始内容存档于2011-09-13).
  5. ^  Mollenhoff, Clark R., , Ames: Iowa State University Press: 47, 48, 1988, ISBN 0-8138-0032-3
  6. ^  Oral history interview with Isaac Levin Auerbach 的存檔,存档日期2002-08-04., Charles Babbage Institute
  7. ^  Shurkin, pg. 280-299
  • Ralston, Anthony; Reilly, Edwin D. (编), 3rd, New York: Van Nostrand Reinhold, 1993, ISBN 0-442-27679-6
  • Mackintosh, Allan R., , Scientific American, Aug 1988: 90, (原始内容存档于2009-10-31)

外部链接

  • ABC计算机的诞生 (页面存档备份,存于)
  • 重建ABC计算机
  • 约翰·古斯塔夫森,ABC计算机的重建 (页面存档备份,存于)
  • ENIAC专利的审判
  • 霍尼韦尔起诉斯佩里·兰特的记录, 1846-1973 (页面存档备份,存于),美国明尼苏达大学查尔斯·巴贝奇研究所。

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.

这篇关于阿塔纳索夫-贝瑞计算机(Atanasoff–Berry Computer,通常简称ABC计算机)是世界上第一台电子数字计算设备。的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/415821

相关文章

Python并行处理实战之如何使用ProcessPoolExecutor加速计算

《Python并行处理实战之如何使用ProcessPoolExecutor加速计算》Python提供了多种并行处理的方式,其中concurrent.futures模块的ProcessPoolExecu... 目录简介完整代码示例代码解释1. 导入必要的模块2. 定义处理函数3. 主函数4. 生成数字列表5.

Python实现pdf电子发票信息提取到excel表格

《Python实现pdf电子发票信息提取到excel表格》这篇文章主要为大家详细介绍了如何使用Python实现pdf电子发票信息提取并保存到excel表格,文中的示例代码讲解详细,感兴趣的小伙伴可以跟... 目录应用场景详细代码步骤总结优化应用场景电子发票信息提取系统主要应用于以下场景:企业财务部门:需

无法启动此程序因为计算机丢失api-ms-win-core-path-l1-1-0.dll修复方案

《无法启动此程序因为计算机丢失api-ms-win-core-path-l1-1-0.dll修复方案》:本文主要介绍了无法启动此程序,详细内容请阅读本文,希望能对你有所帮助... 在计算机使用过程中,我们经常会遇到一些错误提示,其中之一就是"api-ms-win-core-path-l1-1-0.dll丢失

Java计算经纬度距离的示例代码

《Java计算经纬度距离的示例代码》在Java中计算两个经纬度之间的距离,可以使用多种方法(代码示例均返回米为单位),文中整理了常用的5种方法,感兴趣的小伙伴可以了解一下... 目录1. Haversine公式(中等精度,推荐通用场景)2. 球面余弦定理(简单但精度较低)3. Vincenty公式(高精度,

Android与iOS设备MAC地址生成原理及Java实现详解

《Android与iOS设备MAC地址生成原理及Java实现详解》在无线网络通信中,MAC(MediaAccessControl)地址是设备的唯一网络标识符,本文主要介绍了Android与iOS设备M... 目录引言1. MAC地址基础1.1 MAC地址的组成1.2 MAC地址的分类2. android与I

嵌入式Linux之使用设备树驱动GPIO的实现方式

《嵌入式Linux之使用设备树驱动GPIO的实现方式》:本文主要介绍嵌入式Linux之使用设备树驱动GPIO的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、设备树配置1.1 添加 pinctrl 节点1.2 添加 LED 设备节点二、编写驱动程序2.1

windows和Linux使用命令行计算文件的MD5值

《windows和Linux使用命令行计算文件的MD5值》在Windows和Linux系统中,您可以使用命令行(终端或命令提示符)来计算文件的MD5值,文章介绍了在Windows和Linux/macO... 目录在Windows上:在linux或MACOS上:总结在Windows上:可以使用certuti

Python实现特殊字符判断并去掉非字母和数字的特殊字符

《Python实现特殊字符判断并去掉非字母和数字的特殊字符》在Python中,可以通过多种方法来判断字符串中是否包含非字母、数字的特殊字符,并将这些特殊字符去掉,本文为大家整理了一些常用的,希望对大家... 目录1. 使用正则表达式判断字符串中是否包含特殊字符去掉字符串中的特殊字符2. 使用 str.isa

使用PyTorch实现手写数字识别功能

《使用PyTorch实现手写数字识别功能》在人工智能的世界里,计算机视觉是最具魅力的领域之一,通过PyTorch这一强大的深度学习框架,我们将在经典的MNIST数据集上,见证一个神经网络从零开始学会识... 目录当计算机学会“看”数字搭建开发环境MNIST数据集解析1. 认识手写数字数据库2. 数据预处理的

java字符串数字补齐位数详解

《java字符串数字补齐位数详解》:本文主要介绍java字符串数字补齐位数,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java字符串数字补齐位数一、使用String.format()方法二、Apache Commons Lang库方法三、Java 11+的St