热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

现存最古老计算机手册重见天日,比ENIAC要先进!

点击上方“AI遇见机器学习”,选择“星标”公众号重磅干货,第一时间送达来源:Google编辑:QJP【导读】据外媒报道&#x

点击上方“AI遇见机器学习”,选择“星标”公众号

重磅干货,第一时间送达

来源:Google

编辑:QJP

【导读】据外媒报道,近日苏黎世联邦理工学院的档案管理员发现了世界上最古老的Z4数字计算机的使用手册,这使得后人可以更好的理解Z4的工作方式。

世界上现存最古老的数字计算机「Zuse Z4」一直被放置在苏黎世联邦理工学院,该校的档案管理员Evelyn Boesch的父亲Rene Boesch自1956年以来一直在该校的飞机建造学院工作,他在父亲的文件中找了「Zuse Z4」的使用手册。

现存最古老计算机Z4的使用手册被发现

 

Rauscher是P-16飞机的顾问,而Boesch则有收集历史文献的本领,Z4手册正好就在他的收藏中。

        

研究人员在Z4丢失已久的手册被找到后,将能够更深入地了解这台被认为是世界上现存最古老的(数字)计算机。

这台建造于1945年的 Z4,运行在磁带上,占据了一个房间的大部分空间来摆放,并且需要几个人来操作。这台机器现在在慕尼黑的德意志博物馆安家落户,但是它已经很久没有使用了。

               

在 Boesch 的文件中有关于Z4解决的数学问题的记录,这些问题与「P-16喷气式战斗机」的研制有关。

布鲁德尔在计算机协会(Association of Computing Machinery)的一篇博客文章中写道: 「这些计算包括火箭弹道、飞机机翼、振动和俯冲的计算」。

               

这台古老的计算机本身有相当传奇的背景故事。

据布鲁德勒说,德国土木工程师Konrad Zuse在纳粹政权时期发明了Z4,而且很可能就是手册的作者。有一次,纳粹希望祖斯把电脑转移到集中营,在那里,政府强迫劳工制造火箭弹和飞行炸弹。但他拒绝了,并且把 Z4搬到了一个偏远小镇的谷仓里等待二战结束。

 

数学家 Eduard Stiefel 后来收购了苏黎世联邦理工学院应用数学研究所的 Z4。在1960年 Z4被转移到德意志博物馆之前,它在法德圣路易斯研究所呆了几年。

 

比Z4还早的计算机--Zuse Z1

 

Zuse计算机最早系列的「Z1」是德国发明家康拉德·祖思(Konrad Zuse)1936~1938年期间在柏林建造的机械式计算机。Raul Rojas在一篇论文中对对该计算机的主要结构零件、高层架构,及其组件之间的数据交互进行了描述。

               

Z1能用浮点数进行四则运算。从穿孔带读入指令。一段程序由一系列算术运算、内存读写、输入输出的指令构成。使用机械式内存存储数据。其指令集没有实现条件分支。

        图为Z1的复制品

 

Z1的架构与祖思在1941年实现的继电器计算机Z3十分相似,它们之间仍然存在着明显的差异。

Z1和Z3都通过一系列的微指令实现各类操作,但前者用的不是旋转式开关。Z1用的是数字增量器(digital incrementer)和一套状态位,它们可以转换成作用于指数和尾数单元以及内存块的微指令。

计算机里的二进制零件有着立体的机械结构,微指令每次要在12个层片(layer)中指定一个使用。在浮点数规格化方面,没有考虑尾数为零的异常处理,直到Z3才弥补了这一点。

               

以现在的视角来看,Z1计算机中最重要的改进有如下这些:

 

基于完全的二进制架构实现内存和处理器。

 

内存与处理器分离。在复制品中,机器大约一半由内存和穿孔带读取器构成,另一半由处理器、I/O控制台和微控制单元构成。

 

可编程:从穿孔带读入8比特长的指令,指令只有8种:四则运算、内存读写、从十进制面板读入数据、将结果寄存器里的内容显示到十进制展板。

 

内存和处理器中的内部数据以浮点型表示。处理器分为两个部分:一部分处理指数,另一部分处理尾数。

参数或结果为0的特殊情况由浮点型中特殊的指数值来处理(这一点到了Z3才实现,Z1及其复制品都没有实现)。

 

CPU是微代码结构的:操作被分解成一系列微指令,一个机器周期一条微指令。

 

内存和处理器可以分别独立运行:只要穿孔带给出命令,内存就在通信接口写入或读取数据。处理器也将在执行存取操作时在通信接口写入或读取。可以关闭内存而只运行处理器,也可以关了处理器而只运行内存。

      

康拉德·祖思这么年轻就对计算机引擎给出了如此优雅的设计,而在美国,ENIAC或MARKI团队都是由经验丰富的科学家和电子专家组成的。

从架构上看,我们今天的计算机与1938年的祖思机一致,反而与1945年的ENIAC不同。直到后来的EDVAC报告草案,以及冯·诺依曼和图灵开发的位串行机中,才引进了更优雅的体系结构。

冯·诺依曼也1926~1929年间居于柏林,那些年,康拉德·祖思和冯·诺依曼或许能在不经意间相遇相知。在那疯狂席卷和黑夜笼罩德国之前,柏林本该有着许多的可能。

 

参考论文:

《The Z1: Architecture and Algorithms of Konrad Zuse’s First Computer》

欢迎关注我们,看通俗干货!



推荐阅读
  • 兆芯X86 CPU架构的演进与现状(国产CPU系列)
    本文详细介绍了兆芯X86 CPU架构的发展历程,从公司成立背景到关键技术授权,再到具体芯片架构的演进,全面解析了兆芯在国产CPU领域的贡献与挑战。 ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 单片微机原理P3:80C51外部拓展系统
      外部拓展其实是个相对来说很好玩的章节,可以真正开始用单片机写程序了,比较重要的是外部存储器拓展,81C55拓展,矩阵键盘,动态显示,DAC和ADC。0.IO接口电路概念与存 ... [详细]
  • 从0到1搭建大数据平台
    从0到1搭建大数据平台 ... [详细]
  • 在机器学习领域,深入探讨了概率论与数理统计的基础知识,特别是这些理论在数据挖掘中的应用。文章重点分析了偏差(Bias)与方差(Variance)之间的平衡问题,强调了方差反映了不同训练模型之间的差异,例如在K折交叉验证中,不同模型之间的性能差异显著。此外,还讨论了如何通过优化模型选择和参数调整来有效控制这一平衡,以提高模型的泛化能力。 ... [详细]
  • Quora问题探讨:26岁开始转行做开发是否太迟? ... [详细]
  • 2020年9月15日,Oracle正式发布了最新的JDK 15版本。本次更新带来了许多新特性,包括隐藏类、EdDSA签名算法、模式匹配、记录类、封闭类和文本块等。 ... [详细]
  • 本文节选自《NLTK基础教程——用NLTK和Python库构建机器学习应用》一书的第1章第1.2节,作者Nitin Hardeniya。本文将带领读者快速了解Python的基础知识,为后续的机器学习应用打下坚实的基础。 ... [详细]
  • 通过将常用的外部命令集成到VSCode中,可以提高开发效率。本文介绍如何在VSCode中配置和使用自定义的外部命令,从而简化命令执行过程。 ... [详细]
  • 本文介绍如何使用OpenCV和线性支持向量机(SVM)模型来开发一个简单的人脸识别系统,特别关注在只有一个用户数据集时的处理方法。 ... [详细]
  • 解决Only fullscreen opaque activities can request orientation错误的方法
    本文介绍了在使用PictureSelectorLight第三方框架时遇到的Only fullscreen opaque activities can request orientation错误,并提供了一种有效的解决方案。 ... [详细]
  • 最详尽的4K技术科普
    什么是4K?4K是一个分辨率的范畴,即40962160的像素分辨率,一般用于专业设备居多,目前家庭用的设备,如 ... [详细]
  • 深入解析 Lifecycle 的实现原理
    本文将详细介绍 Android Jetpack 中 Lifecycle 组件的实现原理,帮助开发者更好地理解和使用 Lifecycle,避免常见的内存泄漏问题。 ... [详细]
  • 本文是Java并发编程系列的开篇之作,将详细解析Java 1.5及以上版本中提供的并发工具。文章假设读者已经具备同步和易失性关键字的基本知识,重点介绍信号量机制的内部工作原理及其在实际开发中的应用。 ... [详细]
  • 在《Cocos2d-x学习笔记:基础概念解析与内存管理机制深入探讨》中,详细介绍了Cocos2d-x的基础概念,并深入分析了其内存管理机制。特别是针对Boost库引入的智能指针管理方法进行了详细的讲解,例如在处理鱼的运动过程中,可以通过编写自定义函数来动态计算角度变化,利用CallFunc回调机制实现高效的游戏逻辑控制。此外,文章还探讨了如何通过智能指针优化资源管理和避免内存泄漏,为开发者提供了实用的编程技巧和最佳实践。 ... [详细]
author-avatar
Vin-莹持_366
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有