我与AI侃大山:第一台电子计算机与存储程序

麦克

<p class="ql-block">第一台电子计算机ENICA:</p> <p class="ql-block"><b style="color:rgb(57, 181, 74);">今儿,我与“通义千问”进行了一场有关第一台电子计算机与其是否具备存储程序功能等相关问题的讨论,以下是我与“通义千问”这个AI工具的对话实录:</b></p> <p class="ql-block"><b style="color:rgb(57, 181, 74);"><i>我:</i></b></p><p class="ql-block"><b style="color:rgb(57, 181, 74);"><i>世界上第一台电子计算机ENIAC诞生于1946年,但是,据说它并不是一台具有存储逻辑或称为存储程序功能的计算机,而后来经过冯诺依曼参与改进后才在1952年研制出真正具备程序存储能力的电子计算机,是这样吗?这台具备存储程序功能的计算机叫什么名字?</i></b></p> <p class="ql-block"><b style="color:rgb(255, 138, 0);">通义千问:</b></p><p class="ql-block">确实,ENIAC虽然被认为是世界上第一台通用电子计算机,但它并没有内置存储程序的能力。ENIAC的程序是通过硬连线的方式设定的,这意味着为了运行不同的程序,需要手动重新连接面板上的插线和开关,这是一个既耗时又繁琐的过程。</p> <p class="ql-block">约翰·冯·诺依曼(John von Neumann)是一位杰出的数学家,他对现代计算机科学有着深远的影响。</p> <p class="ql-block">冯·诺依曼提出了存储程序的概念,这是计算机设计中的一个革命性想法。按照这个概念,计算机的指令集(即程序)应当被存储在计算机的内存中,与数据一样,这样就可以被快速地读取和修改。这种架构允许计算机在运行时动态地加载和执行不同的程序,极大地提高了计算机的灵活性和效率。</p> <p class="ql-block">冯诺依曼与EDVAC:</p> <p class="ql-block">基于冯·诺依曼的设计理念,EDVAC(Electronic Discrete Variable Automatic Computer)项目开始进行。EDVAC是第一个被设计成具有存储程序功能的计算机之一。然而,EDVAC的实际建造过程相当漫长,直到1952年才完成并投入使用。因此,虽然EDVAC在概念上体现了存储程序计算机的构想,但它并非最早实际运行的存储程序计算机。</p><p class="ql-block">实际上,第一台运行的存储程序计算机是英国的EDSAC(Electronic Delay Storage Automatic Calculator),它在1949年5月6日首次运行了一个存储在水银延迟线内存中的程序。EDSAC是由剑桥大学的莫里斯·威尔克斯(Maurice Wilkes)领导的团队开发的。</p> <p class="ql-block">因此,尽管EDVAC是按照冯·诺依曼架构设计的,EDSAC却先于EDVAC成为了第一台实际运行的存储程序计算机。不过,EDVAC的完成仍然标志着计算机发展史上的一个重要里程碑,因为它验证了冯·诺依曼架构的可行性,并且这种架构至今仍然是大多数计算机的基础。</p> <p class="ql-block"><b style="color:rgb(57, 181, 74);"><i>我:</i></b></p><p class="ql-block"><b style="color:rgb(57, 181, 74);"><i>请你用比较专业的描述说说冯诺依曼架构是怎么回事?</i></b></p> <p class="ql-block"><b style="color:rgb(255, 138, 0);"><i>通义千问:</i></b></p><p class="ql-block">冯·诺依曼架构(Von Neumann architecture)是现代计算机设计的基础,由匈牙利裔美国数学家约翰·冯·诺依曼(John von Neumann)在20世纪40年代末提出。这一架构描述了一种通用计算机的组织方式,其中程序指令和数据都存储在相同的存储器中,并且可以被处理器以同样的方式访问。以下是对冯·诺依曼架构的专业描述:</p><p class="ql-block">统一存储器(Uniform Memory):在冯·诺依曼架构中,程序指令和数据都被存储在相同的存储空间内,即主存储器(主存或RAM)。这意味着指令和数据没有区别对待,它们在存储器中占用相同的单元,可以通过地址来访问。这种存储器通常被称为“冯·诺依曼总线”(Von Neumann bus)或“统一地址空间”。</p><p class="ql-block">存储程序概念(Stored Program Concept):计算机可以存储一系列指令(程序),这些指令可以被处理器自动顺序执行。这意味着计算机能够根据存储的指令自动执行复杂的任务,无需外部干预。程序可以被修改和替换,提供高度的灵活性和可编程性。</p><p class="ql-block"><b>五大组件</b>(Five Essential Components):冯·诺依曼架构定义了计算机系统的五个基本组成部分:</p><p class="ql-block"><b>运算器</b>(Arithmetic Logic Unit, ALU):执行算术和逻辑操作。</p><p class="ql-block"><b>控制器</b>(Control Unit, CU):解释指令并控制计算机的其他部分按指令执行。</p><p class="ql-block">存储器(Memory):存储程序指令和数据。</p><p class="ql-block"><b>输入设备</b>(Input Devices):用于将外部数据输入到计算机中。</p><p class="ql-block"><b>输出设备</b>(Output Devices):用于展示计算结果或数据。</p><p class="ql-block"><b>二进制数制</b>(Binary Number System):冯·诺依曼架构采用二进制数制,所有的数据和指令都表示为二进制位(比特,bits)。这种简单而有效的数制使得电路设计更加容易,并且能够实现高速的电子开关。</p><p class="ql-block"><b>程序控制流</b>(Program Control Flow):控制器负责跟踪程序的执行流程,使用程序计数器(Program Counter, PC)来指示下一条要执行的指令的位置。分支和循环等控制结构允许程序执行路径的改变。</p><p class="ql-block"><b>数据流</b>(Data Flow):数据和指令通过总线在计算机的不同部分之间传输。总线是计算机内部的主要通信通道,允许数据和指令在运算器、控制器、存储器、输入和输出设备之间流动。</p><p class="ql-block">冯·诺依曼架构的这些特性定义了现代计算机的基本工作原理,尽管在硬件实现和技术细节上有所变化,但其核心理念至今仍然适用。</p> <p class="ql-block"><b style="color:rgb(57, 181, 74);"><i>我:</i></b></p><p class="ql-block"><b style="color:rgb(57, 181, 74);"><i>EDVAC与UNIVAC I,这两个名字是指同一台计算机吗?</i></b></p> <p class="ql-block"><b style="color:rgb(255, 138, 0);"><i>通义千问:</i></b></p><p class="ql-block">不,EDVAC和UNIVAC I并不是同一台计算机,它们分别代表了计算机发展史上的两个重要里程碑,且各自有着不同的背景和特点。</p><p class="ql-block">EDVAC (Electronic Discrete Variable Automatic Computer)</p><p class="ql-block">EDVAC 是在 ENIAC 之后设计的计算机,由 J. Presper Eckert 和 John Mauchly 在莫尔电机学院(Moore School of Electrical Engineering)带领团队开发。EDVAC 最初的设计工作始于1946年左右,而冯·诺依曼对该项目有重大贡献,他提出的存储程序概念被融入了 EDVAC 的设计中。EDVAC 被设计为使用二进制而非十进制,且具有存储程序的能力,这标志着计算机设计的一个重大进步。</p><p class="ql-block">然而,EDVAC 的实际构建过程遇到了诸多挑战,导致其完成时间大大延迟。尽管 EDVAC 是按照冯·诺依曼架构设计的,但它并不是第一台运行的存储程序计算机,这个荣誉属于英国的 EDSAC。</p><p class="ql-block">UNIVAC I (Universal Automatic Computer I)</p><p class="ql-block">UNIVAC I 是由 Eckert 和 Mauchly 在离开莫尔电机学院并创立自己的公司后开发的第一台商业计算机。UNIVAC I 在1951年交付给了美国人口普查局,成为第一台商业化的电子计算机。UNIVAC I 使用了磁鼓存储器,并且在商业应用中取得了成功,证明了电子计算机在处理大量数据方面的潜力。</p> <p class="ql-block">UNIVAC I 的设计中也体现了存储程序的概念,但它更进一步,成为了面向市场的、大规模生产的产品,标志着计算机从实验室走向商业应用的重要一步。</p><p class="ql-block">总之,EDVAC 和 UNIVAC I 都是计算机发展史上具有标志性意义的计算机,但它们在设计目标、完成时间和应用领域方面有着显著的区别。EDVAC 更多地被视为技术上的创新和实验,而 UNIVAC I 则是商业应用和大规模生产的开端。</p> <p class="ql-block"><b style="color:rgb(57, 181, 74);"><i>我:</i></b></p><p class="ql-block"><b style="color:rgb(57, 181, 74);"><i>请你帮我写一篇关于开创电子计算机先河的三台电子计算机ENIAC、EDVAC和UNIVAC I的科普文章,通俗易懂且生动有趣。</i></b></p> <p class="ql-block"><b style="color:rgb(255, 138, 0);"><i>通义千问:</i></b></p><p class="ql-block"><b>标题:</b>【科技时光机】揭秘电子计算机的三大开山鼻祖</p><p class="ql-block"><b>引言: </b>在数字世界的广阔海洋里,我们轻点鼠标,信息瞬间穿越万里。但你知道吗?这一切的背后,是一段关于创新、勇气和智慧的传奇故事。今天,让我们乘坐时光机,回到电子计算机诞生的年代,探访那些奠定现代科技基石的“元老们”——ENIAC、EDVAC和UNIVAC I。</p><p class="ql-block">一、ENIAC:巨无霸时代的数字怪兽</p><p class="ql-block">想象一下,1946年的某一天,宾夕法尼亚大学的莫尔电机学院里,一台占地1800平方英尺、重达30吨的“庞然大物”横空出世。这就是ENIAC(电子数字积分计算机),世界上第一台通用电子计算机。它的存在,就像是一位来自未来的使者,虽然体型庞大,能耗惊人(每小时消耗150千瓦),但它的计算速度却是当时任何机械计算器无法比拟的,能以闪电般的速度进行复杂的军事弹道计算。ENIAC没有存储功能,每一次改变任务都需要重新布线,就像玩巨型版的“接线板游戏”,但这丝毫没有掩盖它作为电子计算时代先锋的光芒。</p><p class="ql-block">二、EDVAC:冯·诺依曼的存储程序梦想</p><p class="ql-block">当ENIAC还在用它的电线和插头“跳舞”的时候,一个名叫约翰·冯·诺依曼的天才数学家提出了一个颠覆性的想法:如果计算机能够像人脑一样,存储并自动执行程序,那该有多好!于是,EDVAC(电子离散变量自动计算机)应运而生。EDVAC虽然在设计阶段受到了冯·诺依曼的深刻影响,但它的实际建造过程漫长且曲折,直到1952年才真正完成。EDVAC的创新在于,它将程序和数据存储在同一内存中,就像一本书里的文字和图片可以随意翻阅一样,这使得计算机拥有了前所未有的灵活性和智能。虽然EDVAC没有成为第一个实际运行的存储程序计算机(这个荣誉属于英国的EDSAC),但它确立了现代计算机的架构基础,被誉为“冯·诺依曼架构”。</p><p class="ql-block">三、UNIVAC I:从实验室到办公室的飞跃</p><p class="ql-block">就在EDVAC还在实验室里“磨刀霍霍”的时候,Eckert和Mauchly两位科学家已经带着他们的梦想,创立了自己的公司,准备将计算机推向商业市场。1951年,他们推出了UNIVAC I,这是第一台真正意义上的商用电子计算机。UNIVAC I不仅体积比ENIAC小得多,而且它能够处理各种商业和政府数据,包括美国人口普查的数据。它使用了磁鼓存储器,使得数据处理更为高效,同时也预示着计算机将从实验室走进千家万户的办公室。UNIVAC I的成功,标志着电子计算机正式进入了商业化应用的时代,开启了信息技术的黄金纪元。</p> <p class="ql-block">第一台商用电子计算机UNIVAC:</p> <p class="ql-block"><b>结语:</b> 从ENIAC的诞生到EDVAC的革新,再到UNIVAC I的商业化,这三台电子计算机不仅仅是技术上的里程碑,更是人类智慧和创造力的象征。它们的故事,如同一部精彩绝伦的科幻小说,讲述着人类如何一步步揭开数字世界的神秘面纱。而如今,当我们享受着计算机带来的便捷生活时,不应忘记这些开拓者们的伟大贡献,正是他们,让我们的世界变得更加精彩。</p><p class="ql-block">希望这篇文章能带你领略电子计算机早期历史的魅力,感受科技发展的无限可能。如果你对这段历史感兴趣,不妨深入研究,你会发现更多令人惊叹的故事和细节。</p> <p class="ql-block"><b style="color:rgb(57, 181, 74);"><i>以上是我与“通义千问”这个AI工具侃大山的聊天对话实录,很有趣……文中图片是特意从网上搜索下载后在编辑本文时添加的 ,“通义千问”并没有提供图片而只是以文字形式与我进行对话。</i></b></p> <p class="ql-block"><b style="color:rgb(57, 181, 74);">世界上第一台电子计算机ENIAC诞生于1946年,但是,它并不是一台具有存储逻辑或称为存储程序功能的计算机,而后来经过冯诺依曼参与改进后才在1952年研制出真正具备程序存储能力的电子计算机EDVAC。这样的资料信息在国内大多数计算机技术相关教材中很少涉及,而我是在近期研读中国科学院院士、著名物理学家郝柏林先生所著《物理学与计算机》的时候首次看到EDVAC与UNIVAC I的相关信息的。</b></p> <p class="ql-block"><b style="color:rgb(57, 181, 74);">说明:“通义千问”是阿里云开发的大型预训练语言模型,主要用于理解和生成人类语言,提供智能问答服务。</b></p>