阿塔納索夫-貝瑞電腦

阿塔納索夫-貝瑞電腦（Atanasoff–Berry Computer，通常簡稱ABC電腦）是世界上第一台電子數字計算設備。這台電腦在1937年設計，不可編程，僅僅設計用於求解線性方程組，並在1942年成功進行了測試。然而，這台電腦用紙卡片讀寫器實現的中間結果存儲機制是不可靠的。而且，在發明者約翰·文森特·阿塔納索夫因為二戰任務而離開愛荷華州立大學之後，這台電腦的工作就沒有繼續進行下去。ABC電腦開創了現代電腦的重要元素，包括二進位算術和電子開關。但是因為缺乏通用性、可變性與存儲程序的機制，將其與現代電腦區分開來。這台電腦在1990年被認定為IEEE里程碑之一。

阿塔納索夫和克利福德·貝瑞的電腦工作直到1960年才被發現和廣為人知，並且陷入了誰才是第一台電腦的衝突中。那時候，ENIAC普遍被認為是第一台現代意義上的電腦，但是在1973年，美國聯邦地方法院註銷了ENIAC的專利，並得出結論：ENIAC的發明者從阿塔納索夫那裡繼承了電子數字電腦的主要構件思想。因此，ABC被認定為世界上第一台電子計算機。

## 設計與構造

根據阿塔納索夫的講述，ABC電腦的幾個關鍵概念是在1937-1938年的一次長時間的夜間行駛中突然構想出來的。ABC的創新包括了電子計算、二進位算術、並行處理、蓄熱式電容記憶體，還有存儲和計算功能的分離。其機械和邏輯設計都是阿塔納索夫博士在後面的一年中完成的。一個建立概念驗證原型的資金申請在1939年3月提交到了農學部門，農學部門也對提高用於經濟和研究分析的計算速度深感興趣。紐約的非營利研究組織RCSA給予5000美金作為進一步資金支持。

ABC電腦是由阿塔納索夫博士和研究生克利福德·貝瑞於1939到1942年，在艾奧瓦州立大學的物理樓地下室裡建造的。9月獲得了初始資金之後，1939年10月完成了11個管件的演示原型。12月的演示為建造一個完整的機器帶來了資金支持。接下來的兩年裡，ABC電腦完成了建設和測試。《得梅因紀事報》（Des Moines Register）在1941年1月15日聲稱，ABC電腦是由300多個真空管組成的「電子計算機器」，可以「計算複雜的代數方程」（但沒有給出精確的電腦技術說明）。電腦系統的重量超過320千克（700磅），包含了大約1.6公里（1英里）的電線、280個雙三極真空管、31個閘流管，大小相當於一個書桌。

ABC不是圖靈完全的電腦。圖靈完全將其與很多通用電腦區分開來，比如康拉德·楚澤的Z3電腦，或者更晚的電腦，如1946年的ENIAC、1949年的EDVAC、曼徹斯特大學的設計，以及艾倫·圖靈於戰後在英國國家物理實驗室和其他地方的設計。而且，ABC也沒有實現存儲程序結構。如果實現的話，它將成為真正的全通用、可重新編程的電腦。

然而，這台電腦實現了三個關鍵思想，這些思想在現代電腦中仍然是一個組成部分：

- 使用二進位數表示所有的數值和數據
- 使用電子器件進行所有計算操作，而不是滾輪、棘輪或者機械開關
- 計算和存儲在系統中分離成兩部分

另外，這套系統開創了對蓄熱式電容記憶體的使用，今天它仍在DRAM中廣泛使用。

ABC電腦的存儲體是一對轉鼓，每個轉鼓包含1600個電容器，它們圍繞著共同的軸旋轉，每秒一圈。每個轉鼓上的電容器被分為32個「帶」（「band」）（30個是活躍的，另外兩個是在有電容器壞掉的時候備用的），每個帶上有50個電容器，從而使機器每秒種可完成30次加減操作。數據表示成50位定點二進位數。存儲體和運算單元的電子器件能同時存儲和操作60個這樣的數（3000位）。

60赫茲的交流電頻率是最低級別操作的主時鐘速率。

算術邏輯單元是用真空管實現的全電子器件。邏輯門系列由不同器件組成，低到變頻器，高到兩到三個輸入門。輸入輸出水平和工作電壓在不同的門之間是兼容的。每個門由一個反向真空管放大器組成，由它前面的電阻分壓器輸入網路定義邏輯功能。控制邏輯功能是用中繼器實現的機電器件，因為帶每旋轉一圈才需完成一次操作，不需要電子器件那樣高的速度。

雖然ABC電腦是早期計算機器發展的重要一步，但是它在解決一整個問題的時候並不能完全自動地運行。需要有一個操作員操作控制開關來設置各種功能，很像當時的機電計算器和單元計算設備。選擇要進行的操作、讀取、寫出、二進位和十進位數的相互轉換，或者化簡方程組，這些操作都要通過前面面板上的開關來完成，有些情況下需要操作跳線。

輸入和輸出的形式有兩種：主要的使用者輸入輸出和中間結果的輸入輸出。中間結果的存儲機制允許大問題整個存儲在存儲體中。如果不使用中間結果的輸入輸出功能，可以解決的最大問題就是求解由兩個方程式聯立成的方程組。

中間結果是以二進位數的形式寫到紙上的，實現方式是用靜電修改1500個位置的電阻器來表示50位數（一個方程）中的30位。每張紙可以在一秒鐘內完成讀或寫。這套系統的可靠性限制在了每100000次計算出現一個錯誤，這主要歸因於對紙張的材料性質缺乏控制。根據回憶，解決方案是在寫出的每個數上加上一個校驗位。這個問題直到阿塔納索夫離開大學進入戰爭相關工作的時候都沒有得到解決。

主要的使用者輸入是十進位的，通過標準的IBM80列打孔卡完成；輸出也是十進位的，通過前面的一個面板顯示出來。

## 功能

ABC電腦是為特定目的而設計的，就是求解線性方程組。它能求解多達29個方程組成的方程組，而這是當時的一個難題。這種規模的問題在約翰·阿塔納索夫工作的物理學機構中已經很常見了。這台機器能夠利用兩個具有29個變量和一個常數項的方程，消掉其中一個變量。這個過程中需要重複地手動操作每個方程，最終得出消掉一個變量的方程組，然後再重複這個過程來消掉另一個變量，依此向下進行。

愛荷華州統計部門的負責人George W. Snedecor很可能是使用這台電子數字電腦解決現實世界數學問題的第一個人。他曾經向阿塔納索夫提交過很多這種問題。

## 專利糾紛

約翰·皮斯普·埃克特（John Adam Presper "Pres" Eckert）和約翰·莫齊利（John Mauchly）發明ENIAC，是第一個電子計算設備專利的獲得者。約翰·莫齊利曾經在1941年測試過ABC電腦，並且莫齊利以前的學生艾薩克·奧爾巴赫指控說，這影響了莫齊利之後關於ENIAC的工作，雖然莫齊利拒絕承認。1967年，霍尼韋爾起訴斯佩里·蘭特，試圖推翻他們對於ENIAC的專利，聲稱ABC電腦是在先技術。1973年10月19日，美國明尼蘇達地區地方法院宣布裁決，在霍尼韋爾對斯佩里·蘭特的訴訟中發現，ENIAC專利是由約翰·阿塔納索夫的發明所衍生的。這個判決沒有人提出上訴。

坎貝爾·凱利和Aspray總結說：

莫齊利對阿塔納索夫的思想吸取到什麼程度仍然是未知的，而且證據非常冗雜且相互矛盾。ABC電腦的技術相當溫和，並且沒有全部實現。至少我們能推斷出，莫齊利看到了ABC電腦的潛在意義，導致他提出了一個類似的電子解決方案。

1973年10月19日，案件在法律上得到了解決，美國地方法院法官厄爾·拉爾森認為ENIAC的專利無效，判決說ENIAC從阿塔納索夫-貝瑞電腦上繼承了很多基礎思想。法官拉爾森明確表示：「埃克特和莫齊利並非他們自己首先發明了自動電子數字電腦，而是繼承了約翰·文森特·阿塔納索夫的發明。」

## 複製品

當學校將地下室改造成教室的時候，原始的ABC電腦最終被拆掉了，而且所有的零部件（除了一個存儲器轉鼓）都被丟棄了。1997年，由埃姆斯實驗室（位於愛荷華州校園）的約翰·古斯塔夫森領導的研究團隊花費了35萬美元，建造了一台能工作的ABC電腦複製品。現在，這台ABC電腦複製品永久展覽於愛荷華州立大學達勒姆計算和通信中心一樓大廳。

## 外部連結

- ABC電腦的誕生
- 重建ABC電腦
- 約翰·古斯塔夫森，ABC電腦的重建
- ENIAC專利的審判
- 霍尼韋爾起訴斯佩里·蘭特的記錄, 1846-1973，美國明尼蘇達大學查爾斯·巴貝奇研究所。