百科问答小站 logo
百科问答小站 font logo



NASA登月时全部计算机的计算能力加起来真的还不如现在一部手机吗? 第1页

  

user avatar   jerrysheng 网友的相关建议: 
      

相差1.2亿倍

很多人喜欢将阿波罗的制导计算机与家用电脑甚至iphone进行比较。大家都觉得像登月这么牛逼复杂的任务,计算机的功能却并不比电子表、袖珍计算器和文曲星强,简直是不可思议。。。

论随机存取存储器(RAM),阿波罗11号的导航计算机只有2~4KB内存;而现在多百万倍的4G手机内存都不好意思和人说。论存储空间,阿波罗计算机仅有72KB;而iPhone Xs Max最高可有512GB,是阿波罗计算机存储容量的700万倍。论处理器处理能力,阿波罗计算机运行速度为0.43MHz,而iPhone 手机处理器比它的处理能力高了十万八千倍。更不用说iPhone的A8芯片架构可容纳约16亿个晶体管,每秒可处理22.6亿个指令,这比阿波罗的导航计算机快了近1.2亿倍(还不是和目前最新的A12相比)。

误解

但这种比较是对计算机的特性以及它们如何工作有误解。

尽管资源有限,但阿波罗计算机在机器代码级进行了精心编程。它不需要巨大的资源,因为它的各项功能规定得很窄。不需要现代编程中将高级语言翻译成低级代码的多个抽象层,也不需要计算能力支持视频显示这样的复杂外设。没有word,没有excel,没有photoshop和PS,甚至没有QWER键盘。阿波罗计算机更像是一台嵌入式控制器,紧密地与飞船系统集成在一起。

就硬件而言,也很难对今昔直接进行比较。在计算机的核心部分那时没有单片处理器。处理单元是一个布满简单芯片的板子,其处理频率表面上看只有可怜的80000次/秒。在计算机中传递的数据是15位字长(加上1个奇偶检错位),而后来几代计算机设为8、16、32或64位。其匮乏的内存被精心和高效地编程,用大量例程来辅助宇航员操作他们的飞船。加载到阿波罗15号指令舱计算机中的软件巨人三号,总共包括44个程序,装进相当于64千字节的计算机内存,存储在一种非常古老的用机绕磁芯线做成的内存中。

但这种设置是相当安全可靠的,甚至都用不上备份系统。对于太空任务来说,安全可靠比屏幕好看更重要。

它是怎么记录0和1的?

在没有SSD没有磁盘的年代,如何存储最基本的0和1的信息?上图展示的就是AGC电脑中由所谓编织女工们手工编的用于体现0与1的智慧的线缆。下图中被称为“磁芯”的部件位于导线矩阵的行和列的交点处,我们把能改变铁质磁芯所需的最小电流大小定义为1个单位:

每个磁芯环中都有两条垂直的导线,如果穿过磁芯内部的每条导线都被加上1/2单位的电流,就可以改变磁芯的磁场-这两个1/2单位的电流之和等于1个单位的完整电流,从而可以修改铁制磁芯的磁场。如果仅有其中一根电线被加上一半的电流,而另一根电线没有的话,那么仅靠这一半的电流不足以改变磁芯的磁场。

当磁芯被负极性磁化,并且负电流通过交叉导线传输时,磁芯的磁场将保持不变;穿过核心的检测线什么都检测不到;然后计算机就知道该内核上存储了“0”。

相反的,如果磁芯被正极性磁化,并且负电流通过交叉线传输时,磁芯的磁场将发生变化,并且这种变化会在检测线上产生短脉冲,计算机就知道该内核中存储了“1”。

它牛逼么?

那和现在不能比的话,在当年是什么水平?是不是有机会用更牛的配置?

答案是,当年那是相当牛逼的配置。阿波罗的制导计算机,要求体积小,功耗低,计算力强。这样的性能,只能用美国研究实验室刚搞出来的新物件:集成电路和芯片才能搞定。

当年(1963-1969年间),阿波罗计划75台设备消耗了全世界所有集成电路的一半。

不只是硬件牛,软件也很厉害。

在第一次登月之前,AGC雇用了350名工程师(最后统计的工作量相当于一个工程师做1400年)。当时还没有程序员和码农的概念,甚至没有什么人理解软件是什么,导致走了很多弯路。

与今天不同,所有的代码都是手工“编”写的到海量的打孔卡中进行测试的。它基本上是汇编语言和解释性数学语言的组合,三位宇航员的生命,使得语言编码中任何微小的错误和失误,都是致命的。

就是靠着这些连iphone手机运算力的小脚趾头都赶不上的计算机,人类到达了月球。

美国人曾经这样调侃阿波罗计划:开着洗衣机,横渡太平洋

有人看的话我就再说说宇航员是怎么和这么原始的计算机对话的。。。



我来更新了。

如何和计算机沟通?

50 年前的 1969 年,还没有iOS,没有windows,甚至没有DOS,比尔盖茨还刚上中学,中国还是一片红。那个时候没人提人机交互UI界面,连软件工程这个术语也是在阿波罗计划期间被创造出来的。

用于运行阿波罗向导计算机(AGC)可以说是那个时代最先进的计算机之一。与同时代的其它机器不同,这台小型计算机不但可以同时处理许多任务,还能选择在多任务出现时选择优先处理哪些任务。

这个只能显示7节数字、按键并不比诺基亚多多少的、看上去像是个卡西欧计算器的东东,就是宇航员与计算机唯一的交流工具了,被称为DSKY。它有十个数字键、1个加号1个减号键,以及7个其它控制键。上面屏幕上是八进制或十进制数值,前二行是三组数,后三行每个能显示5位数字,但没有小数点(靠宇航员聪明的大脑来判断小数点的位置)。

在没有子菜单的情况下,肯定不能像3310那样点击功能表进入menu选择了。

这难不倒麻省理工学院的天才工程师们,他们就设计了一套针对登月的交互语言系统。

每次要向计算机输入指令的时候,宇航员以“动词+名词”的形式与计算机对话。比如先输入动词06,再输入名词62。06代表着命令计算机以十进制显示所请求值,名词指向内存中的一组值,名词62代表速度、高度及高度变化率。所以06+62就是以十进制显示上面三个值。为了方便记忆和查询,会将相近的程序放在将近的数字段里,比如用于飞船降落至星球表面的程序编为61至67,对准制导系统的四个程序编为51至54,等等。

难记是难记了些,但熟能生巧,而且这样输入次数最低,错误率不高,时间最短,键盘也相应的不占地方(可以把按钮做得大一点,方便穿上宇航服手套也能操作。


当然,误操作也是有的。阿波罗8号返回的时候,吉姆·洛弗尔想进入导航程序23,然后使用恒星01(有兴趣的话以后可以讲讲飞船怎么靠恒星来定位),但他误操作直接按了01,关键是还没有delete键也没有取消键。程序01只用于在任务开始时初始化惯性测量单元制导平台的,简单的说,就相当于小霸王学习机打坦克大战打到第31关的时候重启了。。。之前的所有数据很多都丢失了,只能全部重新输入大量的数据。他花了整整一小时才输完。。。

同船的博尔曼和安德斯为了让他牢记这次乌龙指,在剩下的旅途中不时的拿这一事件开他玩笑。

涟漪

阿波罗制导计算机虽然简陋,但成功的完成了它的使命。不仅如此,它还有力的推动了电子和计算领域关键技术的向前大突破。它对计算机操作的推进,就像是涟漪,跨越半个世纪荡漾至今,荡漾在每台计算机上,荡漾在你现在看这篇文章所用的机器中。




  

相关话题

  为什么编程语言中没有一种 if,来判断大概率为真(或假)的情况,来提升 CPU 分支预测的速度呢? 
  国外发达国家码农是真混得好么? 
  如果将开发程度为 100% 的人脑作为电脑的 CPU,其运行速度能达到多快? 
  如何评价马斯克准备开采太空小行星上的黄金?未来人类有没有机会去开采灵神星上的黄金? 
  能把windows系统装进优盘吗? 
  为什么很多机械设备出现故障后,敲一敲就莫名其妙地好了? 
  没有中国振动台,美国造不出大火箭,是否能证明登月造假? 
  中国连航空航天的运载火箭的发动机都能造出来。为什么各种战斗机的发动机造不出来? 
  嫦娥五号启程回家,其他国家是怎么看待嫦娥五号的? 
  未来十年,中国航天将会有哪些值得期待的大事件? 

前一个讨论
有哪些让你怦然心动的情话?
下一个讨论
有哪些美到极致的情话?





© 2024-11-24 - tinynew.org. All Rights Reserved.
© 2024-11-24 - tinynew.org. 保留所有权利