美国登月:只靠一台内存4KB的计算机,四分钟死机5次怎么解决

宇宙天文馆 2024-06-14 17:32:49

1969年7月20日,美国宇航员阿姆斯特朗和奥尔德林乘坐阿波罗11号飞船登月,这是人类首次登月。

登月的前提是他们要让自己的着陆器从指挥舱中分离出来,而这要依靠在控制台中间的“阿波罗制导计算机”(AGC)。

这台计算机的内存仅有4KB,用于存放运行数据,比现在手机等电子设备的内存少了几百万倍。

或许是因为自身性能有限,这台计算机在登月时,在短短4分钟死机5次,差点把事办成“事故”。

幸运的是,这台计算机最后还是顺利帮助人类完成首次登月,但为什么美国宇航局会让AGC登月,造一台用于载人航天工程的计算机有多难?

阿波罗制导计算机的诞生

20世纪60年代至70年代初,美国花费255亿美元推出“阿波罗”载人登月计划。

美国这么做的直接目的是跟苏联在太空中一较高下,但显然这需要付出极高的代价,因此有不少人认为美国此举是在浪费资源,结果阿波罗计划却给美国计算机、合成材料等多个领域带来震撼性拉动。

在执行任何一个航天任务过程中,计算机始终扮演着关键角色,但在阿波罗登月计划中,计算机的作用到底有多重要呢?

以登月舱主动登上月球为例,这是载人登月中最关键的一个阶段,需要先利用导航功能对飞船的位置、速度和方向等进行测算,然后得出前往着陆点的合理轨迹。

在计算机确定轨迹之后,计算机还要控制火箭发动机的喷嘴,这样才可以确保登月舱始终在合理轨迹上运行。

为了确保以正确的速度登陆月球,计算机还需要根据实际情况调整推力,这每一个步骤都对计算机的性能提出了极高的要求。

因为本身登月舱就处于火箭的顶端,这个时候登月舱处于极不稳定的状态,就像是有一把扫帚立在了你的手上,而你要控制让他竖立不要东倒西歪,可想而知计算机是载人登月能否实现的关键。

当时没有一款现成的计算机可以用于阿波罗登月,但是为阿波罗飞船量身打造一台计算机的难度有多大?具体难在哪里?

阿波罗制导计算机有多难造?

其实最难的问题就是如何在满足需求的情况下,让计算机的体积变得更小。

当时许多航天器都是可以自动导航的,它们配备的导航可以跟任务中控制中心的IBM计算机相连。

这种计算机属于大型计算机,体积跟一个小型冷库差不多,而将一个“小型冷库”带上月球显然不现实,只能想办法打造一个体积更小的计算机。

因此,计算机各个方面的设计都要“缩水”,还要满足载人登月的需求,这让诸多来自美国名校的工程师面面相觑。

在缩小体积方面,工程师们先是用硅胶芯片替代集成管,相当于在不让性能打折的情况下,让电路集结在一片小小的硅片上。

在早期的计算机研究中,计算机的设定跟“字”的位数相关。

简单来讲,单个字的位数越长,其所能涵盖的指令就越多,计算机的精度就会更高,性能也会更加优越,而与之相对应的是体积、重量和能耗会随着增加。

目前我们日常生活中看到的计算机都是32位或者64位,但是AGC只有16位,其中有1位还是用来测试有无故障差错的,真正能够运行的只有15位。

由于字的位数有限,AGC不仅储存能力远弱于现代计算机,在运行速度方面也是一言难尽。

当时AGC大约一秒可以执行4万条指令,而现代笔记本电脑一秒可以执行100亿条。

面对少到可怜的内存、简单得不能再简单的构造,负责设计运行程序跟软件基本框架的工程师头疼不已。

理论上来讲,设计AGC汇编语言不算难,因为它没有多少操作码,搞不了那些花里胡哨的。

但来自麻省理工学院的工程师一针见血地指出,关键的难题在于如何在复杂和无关的程序中遵循主程序。

换言之,计算机在传送控制和保存数据时会产生程序分支,而在指令发出之后可能会遇到这些开叉,从而导致程序指令的路线出现混乱。

尽管研究AGC非常困难,但是搞“太空竞赛”已经刻不容缓,于是负责该项任务的麻省理工学院仪器实验室开始马不停蹄地展开研究,最终在1966年造出AGC。

这时阿波罗制导计算机的研究已经告一段落,但是骡子是马还得拉出来遛遛才知道,结果等到阿波罗11号飞船开始登月时,AGC却险些“翻车”。

四分钟死机5次?

1969年7月20日,此时阿姆斯特朗跟奥尔德林已经抵达月球上方110千米处,这意味着他们已经要开始尝试着落,而他们的眼睛正紧盯着控制台中间的计算机。

这台计算机带着一个键盘,奥尔德林可以在键盘上按下他背下来的数字命令,这时计算机处理之后会反馈回来5位数的代码,而奥尔德林已经提前接受过训练,可以解读出代码的命令。

此时本次任务已经进入第一个下降阶段,计算机会让着陆器下降到距离月球表面只有15.24千米的椭圆轨道,然后奥尔德林要做的就是将着陆器送到与之相交的轨道。

由于月球引力不均匀,两位宇航员要根据下降的实际情况对着陆点、距离等进行多次测量,而这就要求计算机提供比较准确的数据。

但是,当奥尔德林向计算机输入指令时,他没有看到想要的数据,反而听到计算机响起尖锐的警报声。

原来在这个紧要关头,计算机系统突然崩溃了,但实际上在设计计算机时,工程师们早就猜到这台计算机随时有可能出现人为或者意外的故障,因此工程师们选择在系统中引入大量重启系统。

在模拟测试过程中,工程师们所引入的重启系统不会让原有的数据消失,但是两位宇航员对此一无所知,他们只知道指令出现错误。

按照计算机的设计,出现错误命令时可以分不同情况选择“中止”或者“继续”,但尴尬的是,这两位宇航员没把错误代码记全。

无奈之下,他们只能选择向地面控制中心求助,而地面控制中心在研究之后认为应该选择“继续”。

收到地面传来的指令之后,阿姆斯特朗重新评估路线,结果发现现在的路线跟此前阿波罗10号所探测的路线不太一样,于是便想获取更加准确的数据。

但让人扶额的是,此时计算机再一次“报警”,这时部分地面工作人员开始着急了,因为这一次是一连串的故障。

在出现故障的过程中,制导程序、宇航员的请求等都在占用计算机的处理能力,继续这样下去就算不出大故障,计算机也要被迫重启。

在控制中心发布第二道命令之后,计算机继续工作,着陆器持续下降6千米左右,这时宇航员已经开始描绘月球平原图像。

但是没过多久,计算机再次出现重启,而控制中心再次给出“继续”指令。然而在距离月球表面不到610米时,第四次严重死机突然来临。

与前三次不同的是,这次死机没有任何报错,也没有给出高度数据。

看着一片空白的控制台,阿姆斯特朗的心跳飙升至每分钟150次,此时他已经不对计算机正常工作抱有希望,但神奇的是,计算机竟然在三分钟后恢复了正常。

正当大家松了一口气,几秒后,计算机再次出现故障,这时着陆器距离月球表面只有大约244米,而控制中心这次选择将一部分控制权交给阿姆斯特朗。

因为他们知道,计算机随时都有可能出现故障,“继续”或者“中止”都不是最安全的。

最终掌握一部分主动权的阿姆斯特朗就在断断续续中,操控了一台内存只有4KB、四分钟死机5次的计算机完成人类首次登月,可想而知美国这次登月有多夸张。

3 阅读:1840
评论列表
  • 2024-06-15 16:45

    美国年年换新人登月,从来不失手,比上自家卫生间还顺利

    道法自然 回复:
    别凭自己想象213了,多读点书,阿波罗13号太空救援。
  • 2024-06-16 00:21

    作者屁话,屁都不懂。16位计算机?那是九十年代的事。阿波罗登月用的是4位机。

    用户15xxx47 回复:
    386开始才16位
  • 2024-06-15 11:45

    黑妞说了,美国人说等过月了就是登过了。

  • 2024-06-15 09:34

    从好莱坞摄影棚里出来需要多大内存?

  • 2024-06-15 16:46

    美国别编造登月故事了,4k内存不足手机内存的1/1000,居然能控制月球着陆!太多疑点已经证明,美国登月是好莱坞大片!

    花落无声 回复:
    1000?你的手机才4MB内存是吗
    花落无声 回复:
    是1/1000000
  • 2024-06-15 16:09

    测量飞船的位置速度方向,控制发动机喷嘴,调整推力,用现在市面上几十块钱一个的16位单片计算机就可以了,一个不够可以多用几个,用汇编语言编程4k内存也足够了

  • 2024-06-16 16:51

    这才是美国的伟大之处,尽管困难无法克服,登不上平常天天看着的月亮,但不妨碍他们登上好莱坞现场的月球,并充满自豪的高声通告全世界。这才造就了美国的伟大,这就是美国的伟大之处,无国能望其项背!

  • 2024-06-15 19:57

    厉害啊,有板有眼!

  • 2024-06-16 15:51

    好莱坞什么都能解决[得瑟]

  • 你故事编的越紧张越邪乎,只能证明好莱坞编剧的扎实实力[鼓掌]好莱坞登月就越有看点[鼓掌][鼓掌]

  • 2024-06-16 17:13

    小便你怎么知道的这么清楚,美国人不是都承认所有资料都丢失了吗,要不你去帮他们写一份,让他们自己去挖月壤吧

  • 2024-06-15 07:03

    其实现在美国可以象当年好莱乌演的那样再演一遍不就得了[doge]

  • 妇炎洁

  • 2024-06-16 15:52

    大家都知道是假的,但人家就是不承认,小编有本事就去拿到当年霉国政府机密文件然后公开

  • 2024-06-16 16:35

    根本不妨碍摄影棚登月

  • 2024-06-16 13:06

    登月舱降落过程中忙着排故障呢,最后还是手动避障降落,然后就是人类的一小步,NASA的一大步

  • 2024-06-16 10:26

    假惺惺