1969年的7月21日凌晨,阿波羅成功在月球著陸。沒有嫦娥也沒有玉兔,只有阿姆斯特朗邁出了一小步。成功的背後,是30多萬名技術人員14.5萬行計算機代碼

這次登月雖然消耗巨大,但是給美國微電子產業提供了深厚的技術積累,阿波羅的大腦的主頻只有2MHz,RAM和ROM分別只有2K和36K。阿波羅計劃對計算機性能的要求,讓美國科學家們認識到計算機的重要性。從此計算機開始,後續在70年代微處理器和微型計算機誕生。

50年後的今天,一個四人小組歷時半年時間成功修復了AGC,讓我們一起來回顧其修復之路,重現AGC的輝煌之旅。

收廢品收到阿波羅制導計算機(AGC)

阿波羅制導計算機(AGC)和DSKY

阿波羅制導計算機(Apollo Guidance Computer,簡稱AGC)是一臺計算機,用來引導阿波羅宇宙飛船往返月球,包括登月艙的著陸和升至月球表面。指揮艙和登月艙都有自己的計算機。

其實這個故事真正開始於1976年,當時美國國家航空航天局載人航天中心(現約翰遜航天中心)的前技術員Jimmie Loocke正在回收倉庫尋找廉價的電子元件。他認出了他以前從事的阿波羅計劃中的一些材料,包括月球模塊組件。他最終購買了兩噸金屬和硬體,以避免報廢。其中就包含一個登月艙用的AGC。時至今日看來,這可以說是一筆成功的投資了。

很久以後,在2004年,Loocke向NASA AGC的首席架構師Eldon Hall展示了這個AGC,Hall發現AGC的整體狀況良好,但它是否還能正常工作?這個不得而知。

Loocke最終遇到了Mike Stewart,Mike是一個非常狂熱的AGC迷,他多年來一直致力於收集AGC的各種設計文檔,想要自己復刻一個AGC出來。Mike Stewart是第一個使用FPGA對計算機硬體進行了精確複製並成功使其工作的人。因為他曾經看過Hall拆卸ACG的視頻從而認識了Hall,Hall把Stewart介紹給了Loocke。Jimmie Loocke和Mike Stewart決定給ACG重新上電,這時他們聯繫了Marc Verdiell, Carl Claunch和Ken Shirriff的團隊

左到右_Ken Shirriff, Carl Clauch, Mike Stewart, Marc Verdiell

從IBM 1401到Xerox Alto,AGC修復小組成立

關於Marc Verdiell, Carl Claunch和Ken Shirriff的團隊,我們來做一個簡單的介紹。

Marc Verdiell是Samtec光學集團的首席技術官,業餘時間他是美國一個老計算機復原小組的成員。多年前,Marc 在加利福尼亞州山景城的計算機歷史博物館參加了一個志願者小組,在這裡他參與了IBM 1401大型機上的復原項目。1401是最早的晶體管計算機之一,這是一臺誕生於19世紀60年代的主機,它的體積像一間房子一樣大,經過一番努力,他們成功修復了它IBM 1401的全部功能。

IBM1401

後來,Marc遇到了另外兩外知名的計算機修復家:Carl Claunch和Ken Shirriff。他們因為歷時18個月成功地修復了一臺罕見的Xerox Alto計算機而被世人所知。Alto是一臺被譽為現代個人電腦之母的計算機,同時它也是喬布斯發明第一臺MAC電腦的靈感來源。

Carl Claunch和Ken Shirriff修復的Xerox Alto XM計算機

隨後不久,他們就收到了消息,希望可以修復一臺更為罕見的計算機,也就是阿波羅制導計算機(AGC),來慶祝阿波羅11登月50週年。於是Marc Verdiell就拉上了自己的同事Danny Boesing等人從2018年底開始一起啟動這項修復計劃。

在酒店閉門兩周,上電成功

要把大象關冰箱,總共分幾步?

首先第一步就是修復小組需要拿到AGC,但是Loocke不敢把他珍貴的電腦運到加州。(在這裡筆者想到了之前看到樹莓派的創始人Eben Upton粗暴地將原型扔來扔去,並且直接通過暴力快遞給博物館而嚇壞工作人員...)

Eben Upton展示樹莓派原型(下一秒就重重扔在了地上...)

因此,修復小組就一同前往休斯頓,他們把自己和一堆昂貴而敏感的電子診斷設備、AGC以及Jimmie Loocke一起關在酒店的房間裏待了兩個周來測試AGC。

測試AGC

幸運的是,Mike Stewart已經有了AGC的完整示意圖,因為他已經花了幾年時間研究和製作了一個非常靠譜的複製品。遵循美國宇航局的原始原理圖,四個人很快就搞清楚了ACG的基本構造:分為兩個部分A和B,A部分主要包含邏輯模塊,B部分主要是內存模塊和相關外設。

根據NASA的原始電路圖來複刻

為什麼要採用這種模塊化設計呢?因為NASA一開始並不信賴計算機的可靠性。這導致登月艙配備了一整套額外的模塊,宇航員可以在飛行中更換。儘管飛行中的維修需求後來被取消了,計算機也從未出現故障,但最初的模塊化設計仍然保留了下來。

Tray B (左), Tray A (右)

修復小組首先將模塊進行了分離,然後分別進行了測試。正如你所能想像的,這是一項極其詳細、極其緩慢的工作。他們將每個模塊連接到他們的「移動測試臺」,並測試每個與非門以確保其工作正常。經過一週的測試,他們驚訝地發現所有的模塊似乎都工作正常,並且可以安全地通電。

通電後,邏輯模塊工作得足夠好,計算機可以完成啟動序列的第一條指令。但是因為它仍然缺乏Tray B中的內存,所以程序並沒有完全跑通,但目前的事實已經令修復小組非常鼓舞。

AGC輕鬆運行2000條指令

沒有經過一個月的調試和修理就可以直接上電成功,對於這個年紀的計算機來說是很少見的。例如,該團隊先前修復的1960年代的IBM 1401有200個故障;而1970年代的Xerox Alto花費了九個月的時間才成功啟動。修復團隊大喫一驚,不需要有任何工作直接通電就可以啟動ACG的Tary A部分,這證明瞭它的設計可靠性和工藝質量。可見NASA對於航天用計算機有著極高的要求。

在他們對休斯頓為期兩周的探索性訪問的最後一天,大約在他們返回機場前20分鐘,Mike成功地將他當場設計的一個FPGA的存儲器模擬器連接到計算機底板上(這些人真是太牛b了)。最初的阿波羅11號程序已經載入,AGC運行了2000條指令。(代碼在此:github.com/chrislgarry/,一起star吧)

這極大地鼓舞了整個修復小組,這件事使他們對於修復AGC滿懷信心。

左到右 Mike Stewart, Carl Claunch, Ken Shirriff, Marc Verdiell

多虧NASA當年的額外位設計,內存模塊的修復有戲了

接下來要進行修復的是內存模塊,事實證明這更具有挑戰性。Verdiell自己帶著核心內存模塊進行了更多的分析。他們已經在模塊中發現了一些斷路,但是出於一些原因,定位和修復這些斷路非常的困難。

首先這是AGC中的三個封裝模塊之一,所以他們無法看到或者進入到裡面進行直接測試。此外,此核心內存模塊內有超過32000個微型鐵氧體磁芯環,懸掛在數千根脆弱的mil線上。這在當時可能是最為密集的核心內存模塊。

看看所有這些(手動)電線的焊接!我們應該感謝PCB制板技術的誕生

這個模塊被帶到了Samtec公司,通過先進的X光/CT斷層掃描設備進行檢查。掃描顯示斷線的位置並不靠近模塊引腳,不幸的是,模塊引腳附件是唯一有機會修復的位置。後來在Marc自己的實驗室中進行的時域反射和頻域分析證實,斷裂位置位於核心堆棧的深處並埋在灌封中,處於無法到達的位置。

直接修復的計劃只能放棄,幸運的是,為了提高可靠性,NASA將內存設計為帶有奇偶校驗位形式的額外位,僅用於錯誤檢測。所以修復小組決定重用奇偶校驗位來替換故障位,並禁用奇偶校驗。這將需要在AGC繞線背板的變化(可逆的),這絕對是一個微妙的操作,但並非不可能。此外,支持存儲器部分的模擬模塊更難測試,接下來的步驟必須在裝備齊全的實驗室進行。

AGC被航空公司搞丟了...

修復小組開始與Loocke一起想辦法,計劃將整個AGC帶到位於加利福尼亞州Marc實驗室,以便繼續完成修復工作。這時候Loocke與整個修復小組的團隊也相處的越來越融洽。大家專門為這次飛行進行了準備,為AGC購置了一張Jimmie鄰位的機票,準備從休斯頓飛到舊金山。然而,當Jimmie到達休斯敦機場時,儘管他出示了航空公司發出的批准文件和特別機票,但機組人員不允許他將AGC帶上飛機座艙上。

Jimmie Loocke

Jimmie極不情願地將AGC進行了託運檢查,然後將其託付給了這家大型航空公司的行李搬運工。果然,當他到達舊金山機場的時候,AGC就找不到了。Jimmie既恐慌又憤怒,他不停地與航空公司的人員進行爭論…幾小時後,AGC神奇的出現了…原來它被錯誤地裝載到了另一家飛機上。

後來在Marc的實驗室中,修復小組在另一個封裝的內存系統模塊內又發現了三處故障,所幸他們都可以將其修好,而且他們還可以將包含程序的只讀繩索存儲(rope memory)一同修好。此AGC上的繩索存儲系統是由Raytheon公司製造的一個地面版測試模型,與AGC中實際使用的太空標準並不相同。所以...它的表現更接近你對於這個時代的計算機的期望:它有幾十個斷層,其中很多是斷斷續續的,灑在整個區域,整個修復小組樂此不疲地花了許多天搞定了它。最終,在AGC修復並安裝所有模塊後,它通過了所有邏輯和內存測試。

在修復好的AGC上運行P63登月計劃。屏幕綠色塊字母和周圍的鍵盤是整個計算機介面——DSKY

AGC的數據輸出和顯示器與今天的視頻遊戲完全不同。修復團隊就像最初的阿波羅宇航員一樣,尋找到了一個黑色背景和綠色字母的小屏幕的盒子,稱為顯示鍵盤界面(Display-Keyboard interface),簡稱為DSKY。因為任何一個博物館也不願意將自己收藏的DKSY借給他們,所以修復小組只好自製了一個復刻版。正如Marc後來所說,「他們還有兩個操縱桿。這個和遲鈍的DSKY構成了一個非常有趣的視頻遊戲!」

連接器脈絡部署成功,AGC復活

事實證明,使AGC復原的最大挑戰是連接器的修復。因此Marc Verdiel想要通過自己的公司Samtec內部來製造連接器。這很棘手,因為需要更換的連接器是1960年的產品。雖然Samtec公司成立於1976年,但是也從未生產過這種連接器。幸運地是Marc找到了原始的列印文件,所以連接器的重造就按部就班地開始了。Verdiell強調,Samtec公司贊助的連接器對於該修復項目至關重要,因為該團隊需要在整個AGC中更換連接器。

連接器歷史專家知道,AGC使用舊的Malco迷你黃蜂系統。所有端子引腳均為繞線.025「(0.64 mm)方形壓印柱盤,插座觸點為雙排式。依據1962年載人航天器中心(現為約翰遜航天中心)的最初列印材料,Samtec的定製連接器組將這些銷和塑料體完美地裝配在了一起。

一個原裝的壞的連接器

AGC中使用的所有連接器都將該端子和觸點系統集成在一個0.125英寸的網格陣列中。修復團隊將這些單獨的插座和端子引腳組件放置在與原始連接器相同尺寸和引腳數的陣列中。這些連接器用於板對板、模塊和背板之間的連接。它們位於恢復的計算機和監視器之間的關鍵介面,這是所有系統檢查,通信和模擬所必需的。

一個由Samtec為AGC復原計劃設計和製造的網格陣列連接器

圖:Samtec捐贈模具,衝壓模具,賤金屬,電鍍,裝配設備和勞動力,以提供數千個插座和端子銷組件。最終,修復小組成功地復原了AGC。

修復小組已經帶著修復好的AGC進行了巡展,以慶祝此次50週年的登月活動。巡展分為三站:他們先後在佛羅裏達州坦帕市的Eldon Hall和紐約花園城航空博物館運行和演示AGC運行登月代碼。美國時間7月20日(也就是本週日),是巡展的最後一站,他們在麻省理工學院博物館主辦的阿波羅登月50週年紀念活動上,向所有的登月愛好者復現AGC運行登月計劃。

AGC是房間大計算機向現代計算機的轉折

如果你問Marc為什麼要做這一切,我們想當然地猜他的答案會是:「因為登月可以說是全人類最偉大的人類成就之一,或者因為它是活生生的歷史。」 但其實真正被問及這一問題時,他的第一反應是:「因為它很有趣!」 雖然他後來承認了這一歷史意義,但接著又補充道,「AGC是無法被超越的,這就是計算機從整個房間大小變成當前大小的轉折點。這是第一臺用來駕駛機器的計算機,更不用說駕駛機器進入太空了。很明顯它是由一個A+團隊製作的。當你恢復它時,你會覺得你又回到了20世紀60年代。你可以重溫阿波羅11號的登月之旅;那是無價的。"

此次修復項目的關鍵人物Marc Verdiell

偉大的背後,其實並不僅僅是對於偉大真理的探求。大時代意義的背後的當年的30多萬技術人員和現在的Marc等人,其實源動力還是對於技術探索的濃厚興趣和由此帶來的精神富足的快樂感。不論你是不是技術從業者,遵從內心都是一種看似簡單但絕對正確的活法。

關於AGC的更多信息:

它由MIT儀器實驗室開發,它的外表就像是一個由兩部分組成的黃銅手提箱,裝在航天器的命令模塊(CM)和月球模塊(LM)中,總長61×32×17 釐米、重 14 公斤。宇航員使用數字顯示器和稱為 DSKY 的鍵盤與 AGC 通信。

命令模塊中的AGC有兩項主要工作。首先,它計算了到達月球的必要航線,由宇航員在飛行中使用的六分儀進行天文測量校準,這個六分儀與航海中使用的六分儀沒有什麼不同。他們會把月亮、地球或太陽排成一條直線,用另一條線確定恆星的位置。計算機將精確地測量這些角度並重新計算其位置。

其次,命令模塊控制了航天器的許多物理部件。AGC可以與航天器內的150個不同設備進行通信,這是一項極其複雜的任務。

這是第一臺使用集成電路的計算機

阿波羅制導計算機中的扁平封裝集成電路

最初的重點放在硬體上。MIT儀器實驗室的計算機設計師決定使用集成電路或硅 「晶元」 來構建計算機。

Apollo 中使用的硅晶元內部的微觀視圖

現在來看,這似乎是顯而易見的,因為今天我們在任何消費設備中享受著集成電路技術的成果。但是在 20 世紀 60 年代早期,當做出這個決定時,硅晶元未經測試,其可靠性是一個很大的未知數。

儘管有爭議,MIT儀器實驗室的工程師對他們的設計進行了有力的辯護,並說服了NASA。實驗室與發明集成電路的飛兆半導體公司密切合作,以確保可靠性。

晶元在嚴格的溫度,振動,污染等條件下進行了測試。最終,命令模塊和月球模塊上的阿波羅制導計算機在任務期間沒有遇到過硬體故障。??

?感謝你能看到這裡!留個彩蛋,快速回顧登月歷史?:

視頻封面

04:37阿波羅登月50週年,動畫回顧歷史

推薦閱讀:

相關文章