|
本系列文章預計會有10個章節(jié),這套文獻會系統(tǒng)講述計算機科學本身,這里是第一季第09篇 本文預計閱讀8min 我們知道,巴貝奇所遭遇的窘境,在于設計要求零件誤差達到千分級,而當時的加工能力很難做到。這一切其實很大程度上應當歸因于其使用了十進制運算,還得達到高精度,那就需要齒輪足夠精細,足夠多。他不懂得對于復雜的計算來講,不是要把機器做得更復雜,而是要用簡單的計算單元來實現(xiàn)復雜的計算。(俗話說:復雜的食材往往只需要簡單的烹飪方式)而到了后輩這里,為了解決計算問題,二進制自然而然地落入了人們的思維框架當中。所有部件的狀態(tài)不是0就是1,不是開就是斷,就算是鐵器時代的工藝,也能達到這個要求。這時候就有一個人比較幸運了,他確實最后設計出了二進制的機械計算機,而且獲得了商業(yè)的成功。值得一提的是這個人并沒有任何頭銜,而且是個很普通的民間工程師。他對香農(nóng)的開關電路,以及圖靈關于圖靈機的理論一無所知,他甚至沒有聽說過巴貝奇這個名字。因此要想研制計算機,他所面臨的巨大困難可想而知。所幸的是,他知道布爾的理論,這讓他沒有重復巴貝奇失敗的老路,而是想到了用二進制來實現(xiàn)計算。遺憾的是,他不是理論專家,更像一個工匠,即使做出了實物,卻不能像香農(nóng)那樣提出一整套理論。但這不是重點,對于他來說,自己的發(fā)明已經(jīng)讓他名垂千史!他就是世界上第一個發(fā)明可編程機械式計算機的是德國工程師康拉德·楚澤。我們看看楚澤為什么要去發(fā)明一個這樣的東西?1935 年,楚澤畢業(yè)時,正趕上德國積極備戰(zhàn),并大規(guī)模地研發(fā)和生產(chǎn)各種新式武器。畢業(yè)后,楚澤就在一家飛機制造廠參與飛機的設計,不過很快他覺得這份工作太過無聊,為什么呢?因為前幾個世紀出現(xiàn)的問題一再出現(xiàn),隨著科技水平的發(fā)展,越來越復雜的計算呈現(xiàn)在工程人員面前。他和同事成天都要進行大量的繁瑣計算,而且當時的工具只有計算尺。而計算尺也是手持的那種機械手搖式,很多時候還不如人手計算呢。楚澤還發(fā)現(xiàn),絕大多數(shù)計算其實使用的公式都是相同的,只是需要代入不同的數(shù)據(jù)而已。他認為,這種重復而枯燥的工作應該交給機器去完成,而不是由人來完成。自從有了這個想法后,楚澤就在父母的公寓里開始設計能夠進行計算的機器。不久,他覺得實在無法兼顧工作和自己的發(fā)明創(chuàng)造,就干脆辭了職專心研究這個可計算的機器。幸運的是,他沒有走巴貝奇的老路,他之前看過萊布尼茨的著作,所以對二進制的思想很認同。于是,他用齒輪和其他機械裝置搭建了一個二進制的浮點運算器。這個能進行很多位數(shù)運算的大家伙,其實是由很多相同的能進行一位數(shù)二進制計算的基本單元組合而成的,這有點兒像用簡單的樂高積木搭出復雜的房子一樣。為了控制運算器工作,楚澤又用機械搭建了一個控制器。接下來的問題是如何才能將控制指令輸入計算器。當時既沒有磁存儲器,也沒有存儲卡片或者存儲紙帶,不過這件事根本就難不倒楚澤。他首先把控制指令變成二進制,然后在 35 毫米的膠片上打孔,以此來記錄控制指令。楚澤的這種想法后來被發(fā)揚光大,成了早期計算機的一種輸人輸出設備一一紙帶輸人輸出設備。當時楚澤設計整個計算機的架構用了僅僅1年時間,而建造這臺計算機也只用了2年時間。到了1938年,他制造的第一臺二進制機械計算機出爐了,命名為Z1。這是他人生中的第一臺計算機,也是全人類第一個可編程二進制機械計算機,還是全人類第一臺完全靠自費、獨自設計制造的,并且可編程、支持浮點數(shù)運算的二進制機械計算機。結構:有存儲單元、運算單元、控制單元、輸入和輸出設備,采用微指令方式,支持浮點運算;動力:采用電機帶動傳統(tǒng)裝置來當作時鐘觸發(fā)信號,頻率為1Hz;程序:紙帶輸入輸出設備,具體是采用穿孔電影膠片存儲和輸入,22位寬,支持乘除法,采用累加和累減實現(xiàn)。支持9條指令,最快1個周期執(zhí)行一條指令,最慢的指令則需要20個周期。電路:邏輯門采用薄鐵片搭建,楚澤自己用手鋸加工了其中的很大一部分薄鐵片。看得出其實在當時做運算已經(jīng)很牛了,但是有個問題是Z1 經(jīng)常出故障,原因是機械的東西,和精度和配合有關,幾萬個零件中的每一個都加工得十分精密,而且它們在機器運轉時還會磨損。這肯定會導致各種各樣的問題。所以這也促使楚澤開始繼續(xù)思考這個問題,不過好在當時人們已經(jīng)廣泛開始使用繼電器控制開關。雖然楚澤并不是電學工程師,但是想到這一點對他來講并不困難。于是他用繼電器取代機械部件,把 Z-1 又重新做了一遍,這就是 Z-2 計算機。由于沒有錢,楚澤大量地使用了從廢舊電話上拆下來的舊的繼電器。就是靠這些舊的元器件,楚澤居然在 1939 年搭建出來了當時世界上最先進的計算機。Z-2 運行的可靠性遠超 Z-1,而且由于繼電器的機械延時要比單純的機械部件小,它可以做到每秒鐘進行 5 次運算,這在當時是非常了不起的計算速度。當時這項發(fā)明引起了德國飛機實驗室的重視,他成功獲得一筆資助。當然在這之后,楚澤繼續(xù)升級自己的計算機從Z2一直到Z22...后來被西門子收購。如下圖所示,利用4片薄鐵片組成了一個非門,中間正方形鐵片位置固定,其上帶有按照一定方向走向的鏤空槽,上方鐵片可以上下滑動,作為輸入值,左邊鐵片可以左右滑動作為輸出值。非的邏輯關系,就體現(xiàn)在中間鐵片的鏤空槽的走向上,輸入值會通過槽的走向來推動鐵片輸出到對應的位置。右側鐵片則為一種Enable信號,或者說觸發(fā)信號,在觸發(fā)信號為0時,輸出值歸0,不受輸入值影響。當觸發(fā)信號為1時,輸出值便會跟隨輸入值的改變而改變。這相當于一個電平型鎖存器了,只不過是單個門級別的鎖存。原理部分今天大家先了解下,有個概念即可,后期我們談數(shù)學電路的時候會詳細談這部分,這也是計算機最核心最重要的知識。- 楚澤的故事告訴我們,你遇到的問題也許是別人都會遇到的,但不同的是,你有方案有魄力去動手解決這個問題。機會不是等來的,是真正做出來的;
- 做一件事之前最好先去了解前人鋪的路,有句話說“不要重復造輪子”,輪子是前人做好的東西,直接拿來用即可。其實如果楚澤能更早知道圖靈博士的理論,或許他在發(fā)明計算機的道路會走的更快;
|