Skip to content

hao089/homewok

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 

Repository files navigation

homewok

Histoory_of_computer

George Stibitz的繼電式計算機

貝爾實驗室在1925年被貝爾系統合併為作為基礎研究設施,因此這個機構轉變為進行基礎且扣人心弦的實驗在物理學、化學、還有一些現代科學的分支的最前線。在接下來的幾十年內這個地方將會進行一系列研究,而這些研究將會帶給許多發明人諾貝爾獎。許多發明的基礎電腦也是從這裡製造出來的,像是第一個利用diodes(1942)的邏輯圖、point transisitor(1947),第一個完全使用晶體管的電腦(TRADIC,1955),第一個數據機(1960),第一個單芯片32位元的處理器(1980),處理系統UNIX(1960),還有C語言(1973)跟C++語言(1983)。

在1937年的十一月底一名在貝爾實驗室進行研究的數學家George Stibitz (biography of George Stibitz)在離開工作地方回家前帶走了兩個由一對燈泡、一捲線還有乾電池組合而成的電話繼電器。回到家後他坐在廚房桌後面並且盯著這組裝起來簡單邏輯裝置,這個裝置只是由上述的零件還有一個由錫罐組合而成的開關。不久後,他做出了一個設備,即是第一部二進位加法器,當燈泡亮了的時候代表1,燈泡暗了即代表0。他的老婆Dorothea命名此裝置為K-model,因為創造出來時他們在廚房桌後面(原文:kitchen table)。隔天,Stibitz帶著K-model到研究室並且展示給他的同事們,他們也推測這將會有很大的機會讓他們完成完美的計算機且不需要繼電器的。他的同事解釋說因為任何現今的繼電器電腦都是使用二進位算術,而這些電腦需要可能上百個繼電器,而且這些繼電器將會使得這種電腦體積變的比商業機械計算機大且更加昂貴。

但是George Stibitz發現了這台計算機不僅只能計算他還能展現出計算過程的順序,因為繼電器的電路指向和儲存臨時結果的需要。特別的是,這可以展現出運作的順序包括表現出複雜數字的乘法跟除法。這兩個數學運作程序在貝爾實驗室中經常藉由一個長距離電路來組合成一個過濾和放大的設計才能展現出來。在1930年的實驗室商業用的機械計算機認為商和積式複雜的數字。電腦它們是很簡單的,一個複雜的計算過程需要六個簡單的算術運作程序而複雜的除法則需要大概12個運作程序,而且每個都需要暫存空間來儲存每個少部分的中間計算結果。

Stibitz不知道在此同時在柏林的Konrad Zuse也在做一樣的事。Stibitz卻知道Claude Shannon已經利用這個二進位繼電器電路板研究過這個象徵性的邏輯對應情形。Shannon把這件事寫進了他的畢業論文,然後他前去了貝爾的實驗室,也是她和Stibitz互相學習彼此的作品的地方。但是Shanno並沒有主動地去參與Stibitz的電腦設計,明顯的在1930年末期這個使用繼電器來實行二進位邏輯的點子變得非常普遍。

當Stibitz第一次展示K-model電腦給公司主管時,他們並不感到特別欣賞。在他後來記憶中,沒有煙火、沒有香檳。然而不到一年之後,Bell的主管們改變了對Stibitz發明的看法。做出這個決定的一個重要因素是Bell對於找出一種方法去解決愈發複雜的數學問題所造成的壓力日益增加。Bell同意向Stibitz發明的大型實驗模型的建設提供資金。Stibitz在1938年的2月份完成了設計圖,而且機器的建設也從1939¬¬由一位Bell的switching engineer-Samuel Williams開始進行。最終的產品在10月時已經準備完成並在1940年1月8日首次投入運行,且被持續使用直到1949年。當Bell的實驗室在戰爭期間建造了其他的繼電器計算機時,它的名字從最初的Complex Number Computer變成了Model 1。費用約為20000美元。

最初Complex Number Computer只能進行複雜的乘法與除法運算,經過一個簡單的修改後使它能做加和減的運算。它使用大約400450個二進位繼電器、68個面板和10個稱為"crossbars"的多位多極繼電器,用於臨時存儲數字。這部機器使用十進位系統是透過將小數點固定在每一個數字的開頭。在內部,4個二進為繼電器為每個數字編碼,十進數n用n+3的二進位代碼來表示;這簡化了數字攜帶和減法的問題(現今加三碼仍然被稱作"Stibitz-code")。它記錄了十位數數字在它的表單裡,但顯示並印出八位數的答案(範圍?? 0.99999999)。它使用"前置"記法(表示法):也就是操作者將算術運算輸入在運算元的前面。舉例來說,要把兩個複雜的數字(2+3i)和(4+5i)相乘,操作者需要輸入:M +.2+i.3+.4+i.5=字母M代表的是乘(字母D是除)。注意四個數字中每個數字前小數點的位置。繼器實際上是在計算(0.3+0.5i)*(0.4-0.2i),並印出0.07000000+i0.22000000。操作者必須相應地縮放結果(乘以100)。一個簡單的增加動作大約需要100mS,當進行兩個複數的乘法時約花費45秒。

計算裝置有4個寄存器並與輸入/輸出單元完全分離,是一個特殊的終端(參見附近的照片)。電腦本身被放置於實驗室之外的一個房間,很少有人見過它。操作者透過三台經過改裝的電傳式打字機(鍵盤和影印裝置)之一來遠端操作它,通過多線匯流排連接到處理器並放置在其他位置,但無法同時工作。

Stibitz進一步發展了遠端、多線使用電腦的想法。1940年十一月11號,American Mathematical Society在Hanover, New Hampshire的Dartmouth College開會,在紐約貝爾實驗室大樓以北幾百英里處、複數電腦的所在地。Stibitz 安排通過電話線(28 線電傳式電纜)將電腦連接到安裝在那裡的電傳式打字機裝置。複數電腦的工作狀態良好,毫無疑問地讓使用過它的人感到印象深刻。這場會議有許多美國最重要的數學家參加,以及後來領導重要電腦學專案的人們(e.g., John von Neumann, John Mauchly, Norbert Wiener and Garrett Birkhoff)。Dartmouth的演示預示了遠端計算的新時代,但這種類型的遠端存取在十年內沒有重複。

複數電腦還沒編譯。繼電器電路的組合永久控制其操控順序。這些繼電器的類型與用於處理數位的繼電器類型相同,但機器不是單獨的,明確定義處理計算序列的控制部分(後來Bell實驗室的電腦)。只有在複數電腦建立後Bell實驗室才出現可程式設計性的概念,在其建設者看到其基本計算元素被它的結合體過度限制以控制電路綁住它只用來做複雜計算。(除了複數計算,他們試圖讓機器執行多項式算術,其中複數計算是一個例外。但其對機器太限制了。)

複數電腦的成功鼓勵Stibitz提出更遠大的設計包括通過穿孔磁帶修改計算機操作的能力。起初實驗室拒絕了他的建議,但隨著美國在1941年12月參加第二次世界大戰,Bell實驗室將其重點轉向軍事專案,這些專案涉及的計算比和平時期更多。他們在戰爭時期的成就大多在類比電腦的設計上。但他們也造了5台用於軍事目的的數位繼電器電腦,戰後又一台供自己使用,使共有七台數位機器計算複數電腦。

這些計算機中第一個用於軍事用途的是繼電插補器,1943 年在華盛頓特區安裝,後來被稱為Model II。它由 440個繼電器和 7個數字的記憶體容量組成。乘法速度為4秒(通過重複添加乘法)。它主要解決針對高空射擊的問題,它是過執行紙帶提供給機器的插值函數的一系列算式運算。就跟複數電腦一樣,他是一台專用的機器;然而,它的計算序列不是由永久連接的繼電器計算機提供而是由鞏固在一個循環中的”公式卷帶”提供。因此,不同的卷帶允許人們採用不同的插值方式。Model II除了插值法外無法使用,但是,由於插值法可以解決許多科學和工程學中的許多問題,在戰爭結束後的很長一段時間中被其他政府機構頻繁的使用。

接下來的2台機器,被Stibitz 設計的the Ballistic Computer 和the Error Detector Mark 22 (後被稱為Models III 和 IV)是相同的機器,第一台於1944年安裝於Fort Bliss, Texas,第二台於1945年初安裝在Washington(每一台成本65000美金)。它們包含1400個繼電器和10個數字的記憶體容量。乘法速度為一秒(通過查找表相乘)。這些機器還使用紙帶輸入數據和公式,由紙帶循環提供計算序列,The Models III 和 IV, 跟Model II一樣,還解決了高射炮瞄準和追蹤的問題。但是它們是更複雜的機器,不僅有計算插值的能力,還有評估描述目標飛機和防空炮彈路徑的彈道方程。附加的紙帶指示機器要評估哪些功能。因此,The Models III 和 IV是Bell實驗室第一台具有一定程度通用可編成性的數位計算機,雖然它們都不是完全通用的計算機。它們的內存和計算能力中等,只有6位十進制數字的精度,每台機器可存10個數字。

由Stibitz設計這個系列最新也是最後的電腦是Model V,Bell實驗室方別於1946和1947為軍方建了2台。它是一台巨大(重10頓)和非常貴(500000美金)的機器。每台包括超過9000個繼電器和以科學計數法表示地以處理數字。最多可存30個數字,紙帶讀取器可讀取程序步驟和數值數據。乘法速度為0.8秒。Model V設計最有趣的方面是它有2個獨立的計算單元,每個單元可以作為具有自己內存和輸入輸出設備的獨立計算機進行操作。可以同時處理一對小規模的問題,節省時間,而較大的問題可被兩個處理器接管。與每個處理器(使用現代術語)相關的是15個記憶體寄存器,整個機器共有30個。主控制單元根據一個或兩個處理器的可用性指示做出指令。此控制單元與處理器中指示算術、記憶體和輸入/輸出操作的順序的控制單元分開;它控制了控制,可以這麼說。(Stibitz 將此稱為"超級分支"功能。)因此在一個非常真實的意義上,模型V有現在所謂的"作業系統"-一個控制單元,監督和管理通過電腦的工作流。

除了程式設計的能力以外,貝爾電腦也有了強大的可靠性。繼電器作為邏輯和記憶運作程序的最基本原件,他傾向於斷斷續續的失敗。如果一小片灰塵被嵌在兩個繼電器的連結之中,這個電路即會失敗,即便剩下的電路都沒事。在幾輪循環後,這片灰塵有可能被震了出來,之後一切都會恢復正常。雖然整個計算可能在診斷程序的過程中不會顯示出錯誤。假設每次電話線故障或是顧客的手機壞掉的時候都要叫一名工程師來修理這將會造成很昂貴的負擔。The Bell Lab Model II透過VI所使用的系統,使用四個位元的繼電器而並非是七位元的。他們分類為以下兩個群組跟五種繼電器。

貝爾設計的工程電腦電路會在每一步計算時檢測是否有錯誤。這個電路設計來加、減、儲存數字用以及其他用途。他們也是設計來檢測這些機器是否有正常運行,否則將會把他們停下來。貝爾實驗室的工程師們也利用他們曾經設計出能再在有害環境下長時間運作的電話的電路的經驗來製作這部電腦。這些電路是設計來給那些還尚未很熟練的技師們修理的。

貝爾的實驗室將這個系統稱之為二進制符號,但是這個繼電器有著一到五的重量(?)。事實上,這並不是一個由數基組合而成的,而且這只有七位元且是十進位的。在貝爾實驗室中所有的繼電器電腦都是依靠十進位算術的。一個神奇的電路僅只有兩個繼電器需要在運作十進位數字時需要能量而已(?)。另一個電路在每個繼電器群中僅只有一個繼電器會是啟動的,是為了防止當在分離彼此兩個電路時會發生的錯誤,雖然這個不尋常的組合有可會造成無法預期的錯誤。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published