作者: Steven Leibson, Senior Content Manager at Intel®
1969 年 7 月 16 日,一艘載有三名太空人的太空船從地球出發了,目的地是 38 萬公里之外的月球。這艘飛船從誕生以來就注定會吸引來自全世界的密切關注,因為它將去執行一項具有劃時代意義的任務 - 載人登月。它就是美國著名的阿波羅 11 號太空船。如今,半個世紀過去了,人們依舊會驚歎於這項任務的偉大、夢幻與唯一。2019 年 7 月 20 日,是阿波羅 11 號登月 50 週年紀念日。為慶祝這一紀念日,人們計畫開展或已經開展了許多紀念活動。來自舊金山灣區的一支團隊 (Marc Verdiell、Ken Shirriff、Carl Claunch、Mike Stewart) 則用 Terasic DE0-Nano
修復了一台 Block II 阿波羅導航電腦 (AGC)。
阿波羅導航電腦 (AGC) 由美國太空總署 (NASA) 開發,主要用來控制阿波羅太空船上的導航與制導系統。AGC 是最早使用積體電路的電腦之一,得益於當時美國傾全國之力對阿波羅計畫的支援,阿波羅導航電腦代表了當時最先進的科技水準,從尺寸上來說,它已經不再是早期那種佔據幾個房間的"巨無霸",已經小到能放進一個大小只有幾英尺 (1 英尺= 0.3048米) 的盒子裡了。
而且,阿波羅導航電腦內部並沒有中央處理器,它使用了大約 5600 個門電路來執行計算,每秒大約可以執行 40000 次簡單的加法運算。雖然,按照今天的標準,這個計算能力連你手中的智慧手機都比不過,但是在當時,它在太空發射的嚴峻環境中穩定地對阿波羅太空船進行即時制導,幫助執行了阿波羅 11 號、12 號、13 號、14 號、15 號、16 號和 17 號飛往月球並返航以及將所有領航員送上月球的艱巨任務,在阿波羅計畫中功不可沒,是一台具有重要歷史意義的電腦。
然而,這台阿波羅導航電腦在執行完成任務後,卻已沉睡了接近半個世紀。來自舊金山灣區的科學家們是如何克服重重困難,喚醒這台一直沒有開過機,運行狀況不明的 Block II AGC 的呢?
眾所周知,AGC 是使用兩種類型的記憶體設計的:RAM 和 ROM。由於當時半導體記憶體尚未發明, 因此 AGC 的 ROM 是磁繩記憶體 (magnetic rope memory),RAM 是磁心記憶體 (magnetic core memory)。
從 1953 年到 1971 年,核心記憶體 (core memory) 一直在電腦記憶體領域佔據主導地位。在 20 世紀 50 年代和 60 年代設計的大型機和小型機都使用核心記憶體作為 RAM。核心記憶體在數千個手工編織成線柵的鐵氧體環中存儲 "1" 和 "0"。但手工製作的核心記憶體價格昂貴還不是特別緊湊。修復科學家們拿到這台誕生於 20 世紀 60 年代的 AGC 不僅沒有任何磁繩記憶體模組,其核心記憶體最終被證明是無法使用的。
在修復 AGC 的過程中,科學家們遇到了諸多記憶體相關的挑戰,其中最嚴峻的一個挑戰是:將該電腦基於 3 輸入 NOR 門的非同步 RTL 邏輯設計轉換為同步 FPGA 邏輯。該修復團隊的 Mike Stewart 瞑思苦想,最終決定將 FPGA 的邏輯元件轉換為時鐘 NOR 門,這樣時鐘會減慢 FPGA 的邏輯,從而更準確地複製 1962 年基於 RTL NOR 門的實施時序。那麼問題又來了:用什麼來替換古老 AGC 缺失的磁繩記憶體和核心記憶體呢?Stewart 巧思匠心,將之前在 Terasic DE0-Nano 上做的 AGC 磁繩和核心記憶體模擬的工作移植於此。
之前,Mike Stewart 使用原始 AGC 原理圖複製了 AGC 硬體,在 Terasic DE0-Nano FPGA 開發板內部(基於 Cyclone® IV FPGA) 創建了 AGC 硬體模擬,使用 Intel® Quartus® Prime 軟體套件,成功地在 FPGA 中複製了整個 AGC,包括其核心和磁繩記憶體的功能。毫不誇張地說,這一前期的工作,為修復這台 AGC 打下了厚實的基礎。此時,他只需將 Terasic DE0-Nano 開發板的 3.3V 邏輯電壓連接到 AGC 的 4V 邏輯電壓 (帶一些電壓轉換器) 即可。
Marc Verdiell、Ken Shirriff、Carl Claunch 和 Mike Stewart 四位卓越的科學家,克服重重障礙,終於守得雲開見月明,成功挑戰修復 50 年前的阿波羅導航電腦!雖然其最終沒能趕上阿波羅 11 號登月 50 週年紀念日慶典,但從工程角度講,這無疑是讓世界為之震撼的壯舉!
DE0-Nano
是一款擁有 22,320 個邏輯單元 (LEs) 的 Cyclone IV系列的開發平臺,其周邊介面也相當豐富,除了 2 個可用於擴充的 GPIO 介面外, 板載的同步動態隨機存取記憶體 (SDRAM) 和電子抹除式可複寫唯讀記憶體 (EEPROM) ,可用於較大容量的資料存儲和影格緩衝,同時也配備了一般用戶經常使用的 LED 指示燈和按鍵等週邊設備。
其設計相當精緻,具備有尺寸小和重量輕的優勢,並且不需要攜帶過多的硬體設備就能夠重新被配置,另外,它為設計者提供了包含有一個 USB mini-AB 介面, 2 針腳型的外接電源接頭,和 2 個 5V 直流電源介面共 3 種供電模式,對大部分移動設計而言,電源的便攜性也相當具有優勢,適用於自動控制裝置、可擕式專案的原型電路等設計。
閱讀原文
https://blogs.intel.com/psg/how-to-restore-an-original-50-year-old-apollo-guidance-computer-with-a-little-assist-from-an-fpga/