太空實驗室是一個可重複使用的實驗室,能夠放置在太空梭的貨艙內,為太空人和實驗提供實驗空間。由於太空實驗室是歐洲計劃,它使用法國製造的Mitra 125 MS小型電腦,而非太空梭主電腦所用的IBM製AP-101系統。為了儲存資料,太空實驗室電腦配備了128 KB的RAM,但並非使用矽晶記憶體,而是採用磁心記憶體,每個位元儲存在一個微小的鐵氧體環中。本文將深入解析這台電腦的磁心記憶系統。
下圖展示了太空實驗室如何安裝在太空梭的貨艙內。加壓實驗室是貨艙前端的圓柱形模組,透過通道與太空梭相連。實驗裝置安裝在實驗室後方的托盤上。實驗室內裝有三台相同的Mitra電腦,其中一台負責管理太空實驗室本身,第二台管理實驗,第三台則作為備援。
下圖為從電腦中拆下的磁心記憶堆疊,約佔整台電腦的三分之一。整個側板可拆卸,磁心記憶單元可滑出。由於電腦透過導熱冷卻,將磁心記憶堆疊牢固地固定在側板上有助於散熱。磁心記憶堆疊由七塊電路板組成:驅動板、四塊磁心平面板、第二塊驅動板及介面板。每塊板都有兩個160針連接器,插入兩側的大型子板,提供板間廣泛連接。右側子板有另一個160針連接器,將記憶堆疊連接到電腦其他部分。
早期電腦面臨的最大挑戰之一是儲存。1940年代末至1950年代初的電腦使用水銀中的聲波、陰極射線管上的點或旋轉磁鼓等技術來儲存資料,但這些方法都有其限制。電腦需要的是密集、便宜、快速、可靠且能隨機存取的儲存方式。
二戰期間,德國開發出能從一種磁態翻轉到另一種磁態的特殊磁性合金。戰後,美國研究人員發現這些材料可用於儲存二進位資料。磁心記憶體的不同面向由多位發明家申請專利,導致昂貴的專利爭議。Jay Forrester被視為最重要的發明者,他於1953年為Whirlwind電腦打造了第一個實用的磁心記憶體。
磁心記憶體基於微小的環形磁心,每個磁心儲存一個位元。磁心可被磁化為順時針或逆時針方向,代表0或1。透過穿過磁心的導線通電,產生磁場來改變磁心的磁化方向。
磁心記憶體的一大難題是如何布線,若每個磁心都用獨立導線,16 KB的儲存就需超過十萬條線。解決方案是「重合電流定址法」,磁心排列成網格,水平與垂直導線交叉。通過同時通過一條水平線和一條垂直線的電流,選中交叉點的磁心。磁心材料具有磁滯現象,單一導線的電流不足以翻轉磁心,只有兩條線電流合力才足以翻轉。
讀取磁心時,感應線穿過整個平面。選中磁心後,若磁心原本為1,翻轉為0時會在感應線產生微小電流,表示該位元為1。讀取過程會破壞原始資料,因此讀取後需重新寫入以恢復資料。
為了一次存取一個字,磁心平面堆疊成三維結構,每層平面存一個位元。所有平面共用X、Y選擇線,並有獨立感應線讀取各位元。
寫入不同位元的技巧是使用「抑制線」,通過抑制線的電流抵消X線電流,防止該平面磁心被修改。寫入時先將選中字的磁心寫0,再反向寫1,同時對應0的位元啟動抑制線,確保磁心保持正確狀態。許多磁心記憶體使用感應線與抑制線共用一條線,因此每個磁心有三條線穿過。
使磁心記憶體實用的最後關鍵是二極體矩陣。X、Y線需驅動高速雙向大電流脈衝,若每條線都用獨立驅動器成本高昂。解決方案是在導線兩端放置驅動器,且每個驅動器控制多條線。這樣N個驅動器可控制N平方條線,支援N四次方個磁心。
然而電流可能走捷徑,造成錯誤選擇,需加二極體防止電流走錯路徑。每條線需兩個二極體,分別控制兩方向電流。二極體小且便宜,能大量使用。下圖為土星五號火箭LVDC電腦的二極體堆疊,採用繩木結構垂直安裝於兩塊電路板間。
磁心記憶體最初需手工製作,Whirlwind電腦的64×64磁心平面需40小時布線。IBM等公司後來開發自動化製造技術,價格每兩年減半,類似摩爾定律。磁心記憶體成為快速、便宜且可靠的主記憶體,直到1970年代半導體記憶體取代。
太空實驗室電腦的記憶體製造於1980年,屬磁心記憶體末期,具高密度與先進設計。四塊磁心平面板中每塊存16K個18位元字(32 KB),共128 KB RAM。電腦為16位元,但每字含奇偶校驗位與「存儲保護」位,總共18位元。存儲保護位可防止程式被意外覆寫,且磁心記憶體非揮發性,開機即有程式可用。
磁心平面板有1024條垂直(Y)線與288條水平(X)線,支援294,912個鋰鐵氧體磁心。細線焊接於電路板微小焊盤。板上18位元以交替綠色與銅色條紋表示,因交替感應線顏色不同。感應線穿過四個孔並焊接於背面。
磁心直徑約0.8毫米,與IBM System/360相同,但排列更密集。X、Y選擇線為銅色,感應線為綠色,線材均有絕緣漆防短路。感應線在左側繞成迴路,Y線一半在底部繞迴路,另一半在頂部,形成U形路徑,確保感應線切換方向時極性不變。
電路板背面裝有感應放大器與二極體矩陣。二極體晶片為黑色方形封裝,每片含16個二極體,控制8條磁心線。垂直U形迴路一端連接二極體晶片,另一端連接藍色板端子。水平線則使用綠色區域的二極體晶片與通孔。部分垂直線連接於板頂,部分於板底,水平線則分別連接於左或右側。
中央區域有18個感應放大器晶片,每個含兩個放大器。白色封裝為電阻組件,用於偏壓與終端。感應放大器輸出以雙絞線焊接於板上,防止電磁干擾。感應線穿過四個孔後被黏貼固定,製造過程中需小心避免斷線。
感應線訊號極微弱,僅數毫伏,且鄰近X驅動線易受干擾。為減少噪音,感應線在兩平面段間交叉形成「蝴蝶結」結構,使噪音相互抵消。
太空實驗室電腦的磁心記憶體採用不同於典型磁心記憶體的2½維架構,省略抑制線以提升效能。寫入時,X驅動線僅對應1位元的線通電,0位元線不通電,避免修改。缺點是每位元需獨立X驅動電路,成本較高,但集成電路驅動器降低了成本。
記憶系統利用相位反轉技術將垂直驅動器數量減半。垂直線成對以U形連接,驅動方向決定選擇左側或右側磁心。此設計使一個驅動器即可控制兩條垂直線,節省硬體。
X驅動線複雜布線,每16條線為一位元組,並有獨立感應線。頂部16條X線連接至四個板端子,每個端子控制四條X線。底部16條X線連接至二極體模組,透過通孔連接。四條X線組合通電,選擇其中一條線。
記憶堆疊共七塊板,依序為驅動板、四塊磁心平面板、第二驅動板及介面板。兩塊驅動板負責X、Y選擇線高電流脈衝,板上擠滿專用磁心驅動晶片及控制邏輯晶片,並有獨立驅動兩端選擇線。
驅動板與磁心板配置複雜,左端驅動板控制磁心板1、2,右端驅動板控制3、4;右端驅動板與左端驅動板交錯控制不同磁心板端點,確保只有一塊磁心板被啟動。此設計使兩組驅動器可控制四塊磁心板。
介面板連接電腦其他部分,裝有多個雙列直插式晶體管陣列與電阻,使用離散晶體管驅動匯流排,並有線包跳線供配置使用。
磁心記憶體歷經真空管、電晶體到積體電路時代,仍持續使用,直到半導體記憶體普及。磁心記憶體在航太領域壽命更長,因其非揮發性且抗輻射。1980年太空實驗室電腦為磁心記憶體末期產品,具高密度與2½維架構。1991年太空梭升級為使用半導體記憶體的IBM AP-101S主電腦,太空實驗室電腦亦被AP-101SL取代,後者基於AP-101S並支援原太空實驗室指令集與周邊設備。磁心記憶體雖已成過去,但「core dump」一詞仍流傳至今。