當阿波羅11號於1969年7月20日降落在“寧靜之海(Sea of Tranquility)”的時候,它代表的是不僅僅是人類精神的勝利,同時還是講述了一個關於叫做阿波羅制導計算機(AGC)的控制論奇蹟的故事。
據悉,該計算機能幫助阿波羅宇航員安全地導航到月球並返回至地面。這是一臺當時非常先進的電腦,以致於創造它的工程師們說--如果他們知道自己會陷入什麼境地,他們可能就不會嘗試這麼做了。
阿波羅制導計算機是太空競賽中未受到歌頌的成功之一,這可能是因為它非常成功,幾乎沒有什麼飛行中的問題,其中大部分則都是因人為失誤造成。據瞭解,這臺計算機搭載在指揮服務模組(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萬英里的地方執行,因此可靠性是重中之重。有一次,有人建議在飛船上安裝一臺複製的電腦,但這一建議被拒絕了,取而代之的是強有力的、積極的測試,然後測試人員對元件進行了密封以防止灰塵和水分進入。
繩子的記憶
一個主要的設計關注點是如何在AGC中儲存程式和資料。計算機記憶已經從使用穿孔紙帶輸入資料或透過裝滿水銀的管道傳送聲波來儲存資料的時代走了很長一段路,但這項技術仍處於起步階段,當時的儲存技術對阿波羅來說仍都不夠實用。
相反,MIT提出了一種新的方法,將軟體真正地編織到記憶體庫中。他們利用一種叫做“繩子記憶”的技術,當一根導線穿過圓環中心時,它表示二進位制數1;當它在外面則是0。
為了給這些繩狀記憶程式設計,MIT使用了他們所謂的LOL(小老太太)法。得到的成果是一個不可摧毀的記憶體,它不能被刪除,改變或損壞。然而這也存在缺點,比如打造這樣一塊記憶體非常困難,另外在發現錯誤時很難糾正。不過這算是一個優勢,因為這意味著最後一刻的“好主意”可以被忽略。
優先於分時
除了上面提到的這個記憶體這臺計算機還有另外一個2000字的RAM儲存庫,在電腦執行程式時,它就像一個臨時資料記事本。
在20世紀60年代,多人使用或執行多個程式的計算機的常見做法就是分時。對於大學的大型機來說這可能沒問題,但對於阿波羅號來說,這可能是致命的,因為計算機最終可能會被生死攸關的瑣事佔據,或以今天的計算機使用者非常熟悉的方式崩潰。
而就在那個時候,計算機先驅Halcombe Laning提出了一個解決方案--AGC被程式設計為優先順序,而不是分時。換句話說,每個專案都是按照任務時間表上任何特定時間點的重要性進行編號的。如果一個優先順序更高的程式需要計算機,其他程式就會停止,等待它完成,然後繼續。與此同時,臨時儲存器以一種類似於現代計算機進入睡眠模式的方式將資料儲存到中斷狀態。
DSKY
資料來自一個包括六分儀、望遠鏡、慣性測量單元(IMU)、宇航員使用的手動控制器、指揮模組交會雷達、月球模組登陸雷達、主引擎和反映控制系統在內的大量裝置。不過最重要的輸入還是顯示和鍵盤(DSKY)單元,宇航員用它來跟計算機通訊。這個使用者介面非常龐大以致於很多今天看到它的人都以為是計算機本身,但實際上它只不過是一組警告和狀態燈、按鈕和數字顯示。
DSKY由MIT的Alan Green設計,乍一看似乎很難使用。實際上宇航員們也這麼認為,但經過練習,他們很快就對這個裝置的實際效能感到驚訝併成為它的忠實粉絲。
結果將是一個類似於display-gimbal angle或load-star number的命令。如果命令要求宇航員輸入資料,計算機就會發出一個準備好的訊號並等待資料。其中一個艙壁上甚至印著一張小抄,上面列出了計算機命令。
軟體
很顯然,一臺計算機的效能取決於它的軟體,在首次登月之前,總共有350名工程師參與了AGC軟體開發工作,這相當於1400人一年的工作量。由於程式設計師沒有任何規範,並且對軟體概念沒有一個堅實的理解,所以這項工作開始時並不順利。
與現在不同的是,這些程式碼是手工編寫的然後轉移到大量穿孔卡片上進行測試。儘管使用了這種原始的方法,但該軟體仍算是一個巨大的飛躍,它成為了第一個必須處理實時問題的軟體,因為有三個人的生命將依賴於此。
投入使用的阿波羅計算機
在實踐中,AGC在阿波羅飛行任務中表現得尤其完美,唯一的問題是輸入錯誤的程式碼或轉動了錯誤的開關。而其實力得到真正展示的則是在阿波羅11號任務。
在歷史性的“寧靜之海”降落過程中,由於交會雷達被意外開啟,電腦突然“大發脾氣”。雷達開始向計算機發送大量無意義的資料,這要是在現代計算機中很有可能會導致裝置崩潰。相反,AGC為過載錯誤發出“1202”訊號,然後關掉了除優先順序1以外的所有程式並重新啟動。由於避免了可能的中止,任務指揮官尼爾·阿姆斯特朗接到了繼續著陸的命令。
當阿波羅11號於1969年7月20日降落在“寧靜之海(Sea of Tranquility)”的時候,它代表的是不僅僅是人類精神的勝利,同時還是講述了一個關於叫做阿波羅制導計算機(AGC)的控制論奇蹟的故事。
據悉,該計算機能幫助阿波羅宇航員安全地導航到月球並返回至地面。這是一臺當時非常先進的電腦,以致於創造它的工程師們說--如果他們知道自己會陷入什麼境地,他們可能就不會嘗試這麼做了。
阿波羅制導計算機是太空競賽中未受到歌頌的成功之一,這可能是因為它非常成功,幾乎沒有什麼飛行中的問題,其中大部分則都是因人為失誤造成。據瞭解,這臺計算機搭載在指揮服務模組(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萬英里的地方執行,因此可靠性是重中之重。有一次,有人建議在飛船上安裝一臺複製的電腦,但這一建議被拒絕了,取而代之的是強有力的、積極的測試,然後測試人員對元件進行了密封以防止灰塵和水分進入。
繩子的記憶
一個主要的設計關注點是如何在AGC中儲存程式和資料。計算機記憶已經從使用穿孔紙帶輸入資料或透過裝滿水銀的管道傳送聲波來儲存資料的時代走了很長一段路,但這項技術仍處於起步階段,當時的儲存技術對阿波羅來說仍都不夠實用。
相反,MIT提出了一種新的方法,將軟體真正地編織到記憶體庫中。他們利用一種叫做“繩子記憶”的技術,當一根導線穿過圓環中心時,它表示二進位制數1;當它在外面則是0。
為了給這些繩狀記憶程式設計,MIT使用了他們所謂的LOL(小老太太)法。得到的成果是一個不可摧毀的記憶體,它不能被刪除,改變或損壞。然而這也存在缺點,比如打造這樣一塊記憶體非常困難,另外在發現錯誤時很難糾正。不過這算是一個優勢,因為這意味著最後一刻的“好主意”可以被忽略。
優先於分時
除了上面提到的這個記憶體這臺計算機還有另外一個2000字的RAM儲存庫,在電腦執行程式時,它就像一個臨時資料記事本。
在20世紀60年代,多人使用或執行多個程式的計算機的常見做法就是分時。對於大學的大型機來說這可能沒問題,但對於阿波羅號來說,這可能是致命的,因為計算機最終可能會被生死攸關的瑣事佔據,或以今天的計算機使用者非常熟悉的方式崩潰。
而就在那個時候,計算機先驅Halcombe Laning提出了一個解決方案--AGC被程式設計為優先順序,而不是分時。換句話說,每個專案都是按照任務時間表上任何特定時間點的重要性進行編號的。如果一個優先順序更高的程式需要計算機,其他程式就會停止,等待它完成,然後繼續。與此同時,臨時儲存器以一種類似於現代計算機進入睡眠模式的方式將資料儲存到中斷狀態。
DSKY
資料來自一個包括六分儀、望遠鏡、慣性測量單元(IMU)、宇航員使用的手動控制器、指揮模組交會雷達、月球模組登陸雷達、主引擎和反映控制系統在內的大量裝置。不過最重要的輸入還是顯示和鍵盤(DSKY)單元,宇航員用它來跟計算機通訊。這個使用者介面非常龐大以致於很多今天看到它的人都以為是計算機本身,但實際上它只不過是一組警告和狀態燈、按鈕和數字顯示。
DSKY由MIT的Alan Green設計,乍一看似乎很難使用。實際上宇航員們也這麼認為,但經過練習,他們很快就對這個裝置的實際效能感到驚訝併成為它的忠實粉絲。
結果將是一個類似於display-gimbal angle或load-star number的命令。如果命令要求宇航員輸入資料,計算機就會發出一個準備好的訊號並等待資料。其中一個艙壁上甚至印著一張小抄,上面列出了計算機命令。
軟體
很顯然,一臺計算機的效能取決於它的軟體,在首次登月之前,總共有350名工程師參與了AGC軟體開發工作,這相當於1400人一年的工作量。由於程式設計師沒有任何規範,並且對軟體概念沒有一個堅實的理解,所以這項工作開始時並不順利。
與現在不同的是,這些程式碼是手工編寫的然後轉移到大量穿孔卡片上進行測試。儘管使用了這種原始的方法,但該軟體仍算是一個巨大的飛躍,它成為了第一個必須處理實時問題的軟體,因為有三個人的生命將依賴於此。
投入使用的阿波羅計算機
在實踐中,AGC在阿波羅飛行任務中表現得尤其完美,唯一的問題是輸入錯誤的程式碼或轉動了錯誤的開關。而其實力得到真正展示的則是在阿波羅11號任務。
在歷史性的“寧靜之海”降落過程中,由於交會雷達被意外開啟,電腦突然“大發脾氣”。雷達開始向計算機發送大量無意義的資料,這要是在現代計算機中很有可能會導致裝置崩潰。相反,AGC為過載錯誤發出“1202”訊號,然後關掉了除優先順序1以外的所有程式並重新啟動。由於避免了可能的中止,任務指揮官尼爾·阿姆斯特朗接到了繼續著陸的命令。