阿波罗大脑:指引人类抵达月球的计算机
據悉,該計算機能幫助阿波羅宇航員安全地導航到月球并返回至地面。這是一臺當時非常先進的電腦,以致于創造它的工程師們說--如果他們知道自己會陷入什么境地,他們可能就不會嘗試這么做了。
阿波羅制導計算機是太空競賽中未受到歌頌的成功之一,這可能是因為它非常成功,幾乎沒有什么飛行中的問題,其中大部分則都是因人為失誤造成。據了解,這臺計算機搭載在指揮服務模塊(CSM)和登月艙(LM)中,它總共執行了 15 次載人任務包括 9 次月球飛行、6 次登月、3 次 Skylab 太空任務和 1975 年的阿波羅-聯盟號測試任務。
當時,它是最新、最先進的有線飛行和慣性制導系統、是第一臺數字飛行計算機、是迄今為止最先進的微型計算機、是第一臺使用硅芯片的計算機,同時也是第一臺機組人員生命依賴于其功能的機載計算機。
據了解,阿波羅制導計算機乍一看就像是一個由兩部分組成的黃銅手提箱,總長 24×12.5×6.5 英寸(61×32×17 厘米)、重 70 磅(14 公斤)。在內部則是并不像現代計算機那么吸人眼球。可以這么說,很難將它跟現代設備作比較,因為 ACG 算不上一臺通用計算機,它只能算是為一個特定任務設計的硬連接,其能執行 20 世紀 80 年代早期的 Commodore 64 或 ZX Spectrum。
計算機方面的工作
所有阿波羅任務都至少攜帶一臺這樣的電腦的原因是,月球任務涉及的制導不同于地球。在地球上,制導最簡單的方法就是從地球上的一個固定點到另一個固定點,然而在月球上,這一切就像站在步槍上的轉盤上,變得復雜萬分。也就是說,太空制導對于宇航員來說太過復雜且不能依靠直覺。
一項新技術
當阿波羅計劃開始時,計算機仍然是巨大的機器,它們占據了整個房間。全球只有少數幾個想把信息輸入或輸出到一個如此復雜、以致于需要一批知識淵博的頂級數學家才能完成的設備的國家。然而,這是一個快速發展的領域,當 AGC 的工作開始的時候,這項技術已經為計算機革命爆發做好準備。
除了計算技術,基礎電子技術也在飛速發展。所有這些新技術不僅在計算機設計上產生了協同效應還震動了整個電子行業。不過這給 AGC 帶來了無盡的麻煩。你如何設計一臺在技術不斷變化的六年內都不會航行來的計算機?更糟糕的是,當行業預計一切將在 18 個月內發生變化時,你如何獲得行業對一臺必須在生產和使用中保持 10 年的計算機的支持?
麻省理工學院(MIT)儀器實驗室
1961 年 8 月,當 NASA 決定將阿波羅制導計算機合同授予 MIT 儀器實驗室而不是該機構經常合作的供應商 IBM 時,該學院陷入了巨大漩渦。
很多人對此感到有些忐忑不安,但實驗室主任 Charles Stark Draper 則表現出了極大的信心,他表示其團隊能夠按時交付電腦并達到規格要求,為此,他自愿參加了第一次飛行任務。到了 1962 年,雙方達成協議,MIT 將在通用汽車交流火種塞部門、Kollsman Instrument Corporation 和雷神公司的支持下率先開展這項工作。
對于 MIT 來說,其面臨最大的障礙是 AGC 的規格,因為沒有人建造過這樣的東西,也沒有人知道該怎么做,它就相當于一張白紙。
除此之外,計算還機必須符合阿波羅的一般規格,即必須堅固耐用、足以承受太空飛行,而且還必須使用最少的晶體管。此外,它還需要一個簡單的控制界面供宇航員使用。
如何運轉
需要記住的一件事是,AGC 的設計是前沿的、構建方式則是非常老式的--兩者都提出了各自的挑戰。與現代計算機不同的是,AGC 都是手工制造,過程緩慢且費力。據悉制造這些電腦總共花了 2000 人一年的工作量。
AGC 集成了許多前沿技術,比如成為第一個在邏輯電路上依賴芯片組件的計算機--特別是一個三輸入 NOR 門。而其使用的芯片雖然都剛剛上市,但到了 1963 年,MIT 儀器實驗室購買了美國 60% 的芯片生產。
計算機
AGC 的最終形態不是一臺通用計算機,而是一臺專門用來執行特定任務的計算機,而且還是有線的。它由兩個金屬托盤組成--一個用于存儲,另一個用于邏輯電路,總共有 30000 個組件。由于該技術的局限性,盡管它非常復雜,但在設計上還是做到盡可能的簡單化,部件也要盡可能地少,這樣才能得到更低的重量和更大的可靠性。
由于 AGC 必須在距離最近的修理廠 25 萬英里的地方運行,因此可靠性是重中之重。有一次,有人建議在飛船上安裝一臺復制的電腦,但這一建議被拒絕了,取而代之的是強有力的、積極的測試,然后測試人員對組件進行了密封以防止灰塵和水分進入。
1、繩子的記憶
一個主要的設計關注點是如何在 AGC 中存儲程序和數據。計算機記憶已經從使用穿孔紙帶輸入數據或通過裝滿水銀的管道發送聲波來存儲數據的時代走了很長一段路,但這項技術仍處于起步階段,當時的存儲技術對阿波羅來說仍都不夠實用。
相反,MIT 提出了一種新的方法,將軟件真正地編織到內存庫中。他們利用一種叫做“繩子記憶”的技術,當一根導線穿過圓環中心時,它表示二進制數1;當它在外面則是0。
為了給這些繩狀記憶編程,MIT 使用了他們所謂的 LOL(小老太太)法。得到的成果是一個不可摧毀的內存,它不能被刪除,改變或損壞。然而這也存在缺點,比如打造這樣一塊內存非常困難,另外在發現錯誤時很難糾正。不過這算是一個優勢,因為這意味著最后一刻的“好主意”可以被忽略。
2、優先于分時
除了上面提到的這個內存這臺計算機還有另外一個 2000 字的 RAM 存儲庫,在電腦運行程序時,它就像一個臨時數據記事本。
在 20 世紀 60 年代,多人使用或運行多個程序的計算機的常見做法就是分時。對于大學的大型機來說這可能沒問題,但對于阿波羅號來說,這可能是致命的,因為計算機最終可能會被生死攸關的瑣事占據,或以今天的計算機用戶非常熟悉的方式崩潰。
而就在那個時候,計算機先驅 Halcombe Laning 提出了一個解決方案--AGC 被編程為優先級,而不是分時。換句話說,每個項目都是按照任務時間表上任何特定時間點的重要性進行編號的。如果一個優先級更高的程序需要計算機,其他程序就會停止,等待它完成,然后繼續。與此同時,臨時存儲器以一種類似于現代計算機進入睡眠模式的方式將數據保存到中斷狀態。
3、DSKY
數據來自一個包括六分儀、望遠鏡、慣性測量單元(IMU)、宇航員使用的手動控制器、指揮模塊交會雷達、月球模塊登陸雷達、主引擎和反映控制系統在內的大量設備。不過最重要的輸入還是顯示和鍵盤(DSKY)單元,宇航員用它來跟計算機通信。這個用戶界面非常龐大以致于很多今天看到它的人都以為是計算機本身,但實際上它只不過是一組警告和狀態燈、按鈕和數字顯示。
DSKY 由 MIT 的 Alan Green 設計,乍一看似乎很難使用。實際上宇航員們也這么認為,但經過練習,他們很快就對這個設備的實際性能感到驚訝并成為它的忠實粉絲。
令人著迷的是 DSKY 獨特的工作方式。宇航員們使用了一種特殊的“名詞”和“動詞”數字語言,而不是鍵入單詞命令或點擊圖標。操作時,宇航員首先要按下防止意外按下按鈕的解鎖鍵,然后再輸入名詞數字代碼和動詞代碼。
結果將是一個類似于 display-gimbal angle 或 load-star number 的命令。如果命令要求宇航員輸入數據,計算機就會發出一個準備好的信號并等待數據。其中一個艙壁上甚至印著一張小抄,上面列出了計算機命令。
軟件
很顯然,一臺計算機的性能取決于它的軟件,在首次登月之前,總共有 350 名工程師參與了 AGC 軟件開發工作,這相當于 1400 人一年的工作量。由于程序員沒有任何規范,并且對軟件概念沒有一個堅實的理解,所以這項工作開始時并不順利。
與現在不同的是,這些代碼是手工編寫的然后轉移到大量穿孔卡片上進行測試。盡管使用了這種原始的方法,但該軟件仍算是一個巨大的飛躍,它成為了第一個必須處理實時問題的軟件,因為有三個人的生命將依賴于此。
投入使用的阿波羅計算機
在實踐中,AGC 在阿波羅飛行任務中表現得尤其完美,唯一的問題是輸入錯誤的代碼或轉動了錯誤的開關。而其實力得到真正展示的則是在阿波羅 11 號任務。
在歷史性的“寧靜之海”降落過程中,由于交會雷達被意外打開,電腦突然“大發脾氣”。雷達開始向計算機發送大量無意義的數據,這要是在現代計算機中很有可能會導致設備崩潰。相反,AGC 為過載錯誤發出“1202”信號,然后關掉了除優先級 1 以外的所有程序并重新啟動。由于避免了可能的中止,任務指揮官尼爾·阿姆斯特朗接到了繼續著陸的命令。
總結
以上是生活随笔為你收集整理的阿波罗大脑:指引人类抵达月球的计算机的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: AMD要发16核锐龙?Intel扬言不服
- 下一篇: Blender 是自由软件