在【齒輪時代】的最後一章提到,MIT 教授凡納爾.布希除了發明微分分析儀之外,也直接或間接地對電腦發展做出重要貢獻。其中一項間接貢獻就是來自他所指導的學生夏農 (Claude E. Shannon)。這位不世出的天才雖然大眾知名度不高,但事實上,現代電腦與通訊的發展,都始於他憑一己之力提出的理論基礎。
本文為系列文章,上一篇請見:電腦運算的基礎——布林代數,是麼搞出來的?│《電腦簡史》數位時代(三)
擔任布希助理,操作微分分析儀,奠定電路基本功
夏農自小就喜歡搞電子實驗,他還曾利用鐵圍籬和八百公尺外的鄰居互傳電報。1936 年,夏農以數學和電機雙學位自密西根大學畢業後,進入 MIT 電機研究所就讀,同時在布希的實驗室當研究助理。
當時微分分析儀是唯一能算高階微分的計算機,所以實驗室不時會接受教授或其它研究單位的委託,為他們計算微分方程式。夏農的工作便是針對他們的問題,調整微分分析儀的設定,包括大大小小的連桿、滑輪等機械零件,以及近百個控制電動馬達的繼電器。
夏農相當樂在其中,看著微分分析儀按照自己的設定運轉,最後自動畫出答案,總令他心情愉悅。而最令他著迷的,就是在背後控制所有動作的繼電器。繼電器就像閘門,掌控電流的進出,雖然只有開與關兩種狀態,但串成迴路後,就能以特定的順序開開關關,就能讓微分分析儀解出各種微分方程式。
於貝爾實驗室實習,悟出電子迴路與布林代數的關聯性
第二年暑假,夏農到美國電話電報公司 (AT&T) 的貝爾實驗室實習。當時貝爾實驗室正在開發縱橫式自動交換機,也是利用繼電器來控制電話線路的搭接。夏農操作了一學年的微分分析儀,對繼電器的運作已了然於胸,儘管電話交換機是截然不同的機器,其中的迴路也更密集複雜,他卻能看出兩者在運作上有共通之處。
無論迴路大小,都是由許多繼電器與電路所組成,不同的連接方式決定電流如何流動,進而讓機器做出不同動作。如果兩個繼電器在一條電路上前後串聯,就必須兩個繼電器都打開,電流才能通過。如果電路一分為二,各自經過一個繼電器再合而為一(這稱為並聯),就只要有一個是開的,電流就能繼續往前了。
這只是電路的基本常識,每個工程師都知道,但就是沒有人像夏農那樣,看出電子迴路與布林代數的關聯。
夏農是以數學和電機雙學位畢業,對布林代數自然不陌生,但要從實體的電路聯想到抽象的邏輯關係,真的要有超乎常人的洞見。在他眼中,繼電器只有開、關兩種狀態,恰可用布林代數中的 1 與 0 兩種數字表示。繼電器串聯相當於邏輯運算的「且」(AND),並聯則是相當於「或」(OR),不管是什麼迴路,都可以用布爾代數描述。
暑期實習結束後,夏農回到學校,立即向導師布希提及自己的想法。布希深感興趣,鼓勵他以此做為碩士論文的題目。
史上最重要的碩士論文,堪稱資訊時代的大憲章
沒幾個月,夏農就在 1937 這一年完成劃時代的論文,題為〈繼電器與交換電路的符號分析〉(A Symbol Analysis of Relay and Switching Circuits),開宗明義即宣告:「任何電路都可以用一組方程式表示,……。事實證明,其計算方式完全等同於符號邏輯所用的命題運算。」
夏農先以簡單的雙開關電路為例,說明如何用布林代數標示串聯與並聯的接法,並列出基本公理與交換律、結合律、……等運算法則。接著他再進一步分析不同型式的複雜電路,證明也都可以用布林代數表示。最後夏農強調這套方法不只可以用於現有的機器,還可以解決各種問題。
他寫道:「事實上,任何運算只要是用『若』、『或』、『且』等字眼在有限的步驟內描述,都可以用繼電器自動算出來。」
為了佐證這項主張,他提出三種全新的應用,並附上自己設計的電路圖。第一個是電路的簡化;原本使用二十個元件的電路,經由邏輯演算找出等效的表達式後,可以將元件減少為十四個。第二個與第三個應用都是他的創新發明,分別是使用五個按鍵開關的電子密碼鎖,以及二進位的電子加法器(嚴格來說仍不算電子式,因為繼電器的開關仍是利用電磁鐵的機械動作)。
這篇論文於第二年公開發表後,立即引起巨大的迴響,甚至被譽為「應該是本世紀最重要、最值得注意的碩士論文」,後來《科學美國人》雜誌也稱它是「資訊時代的大憲章」。
電路設計化繁為簡,電腦從此邁向數位時代
的確,夏農這篇論文影響深遠。原本錯綜複雜的電路圖改用布林代數表示後,就可以在實際建造機器之前,清楚計算出執行的結果,大幅減少嘗試錯誤所耗費的時間與成本。除此之外,還能如夏農所示範的,找出更精簡的電路方案。科技產品因為設計效率提升、製造成本下降,才得以更加迅速地推陳出新。
計算機的發展也受惠於夏農的創見,才開啟了數位時代(他革命性的通訊理論會在第三部另外介紹)。
夏農所提出的邏輯電路雖然以繼電器為範例,但其實這套抽象法則具有普遍性,任何有開關兩種狀態的元件皆可套用。因此即使後來繼電器被真空管取代,然後真空管又被電晶體淘汰,無論電腦的硬體零件怎麼換、電路圖多複雜,都還是基於夏農所提出的邏輯閘。
夏農已經指出一條通往未來之路,很快地,這條路上就將出現打造現代電腦的各路好漢……。