我們的日常生活中,電腦早已不可或缺。從早上叫醒的手機鈴聲、朋友透過網路傳來訊息或郵件,到玩遊戲、瀏覽社群網站、閱讀新聞、搜尋資料、掌握最新流行脈動,甚至是交通號誌等,無一不經過電腦的處理運算。對於這麼重要的科技,值得我們了解其發展史與未來樣貌。
電腦的前世
計數是人類文明重要的部分,早在約 35, 000~ 25, 000年前,人類就用刻記作為計算事物的方法。人類首先發明器具來幫助計算則可追溯至西元前500年中國的算盤。
二五珠算盤是明代後期開始出現的,因為是十六進制,又被稱為斤兩算盤。(圖片來源:Wikipedia,Author: David R. Tribble,CC BY-SA 3.0 license)
第1部機械計算機-帕斯卡計算機,是由法國數學家帕斯卡(Blaise Pascal) 在1642年利用齒輪推動的原理發明的。具有進位的功能,可以撥動轉盤做加1~9的數字,當超過9時就會將1進位到下一個轉盤,只要在轉盤上面撥出數字,齒輪之間相互聯動算出累加後的值,就會顯示在上方的窗口。
<
帕斯卡計算機 (圖片來源:Wikipedia,photograph by Rama,CC BY-SA 3.0 fr license)
此後的機械式計算機,大多都受到帕斯卡發明的影響。1671年,德國人萊布尼茲(Gottfried Wilhelm von Leibniz) 嘗試在帕斯卡計算機中添加一個自動乘法功能,發明了萊布尼茲輪。1801年,法國人傑夸德(Joseph Jacquard)發明使用打孔卡片控制的自動化織布機,從輸入與輸出的觀點來看,打孔卡片可視為經過編程後的程式輸入,而織布機則為印表機輸出。1820年,法國人湯瑪斯(Charles Xavier Thomas)以萊布尼茲的設計為基礎,成功量產可作四則運算的機械式計算機,稱為湯瑪斯計算機。這是第1個可以每天在辦公室使用的機械式計算機。
1833年,英國數學家巴貝基(Charles Babbage)完成一部差分機,是利用機器將計算到印刷的過程全部自動化,去除人為疏失如計算、抄寫、校對、印製等的錯誤。差分機是利用N次多項式求值會有共通的N次階差的特性,以齒輪運轉,帶動十進位的數值相加減、進位。巴貝基後來再完成一部功能更強的分析機,概念與現代電腦極為相似,已經有中央處理器(CPU)與記憶儲存的裝置,對後代計算機設計貢獻良多,因此巴貝基被尊稱為「電腦之父」。
巴貝基設計的分析引擎(圖片來源:Science Museum Group,CC BY-NC-SA 4.0 license)
1890年,美國政府資助赫勒里斯(Herman Hollerith)製造一部協助執行1890年人口普查工作的機器,以打孔片儲存資料,且由電力帶動。由於這部機器的協助,人口普查的統計只花1年的時間就完成了,而1880年的人口普查資料足足花了8年的時間才完成統計。1936年,圖靈(Alan Turing) 提出了稱為圖靈機的抽象計算數學模型,適用於任何計算機器的運作原理。現代電腦的主要架構都是以圖靈機的模型為基礎。
1937~1946年間的電腦,主要由真空管所組成。第1個由電子元件製成的電腦為1937年阿塔納索夫(John V. Atanasoff)和貝裡(Clifford Berry)所建造,所以稱為阿塔納索夫–貝裡電腦。到了二戰期間,為了協助破解勞倫茲密碼,弗拉沃斯(Thomas Flowers)於1943年為英國軍方建造了世界第1部可編程的電腦-巨人。1946年,第1台通用數位電腦-電子數位積分電腦 (ENIAC)建造出來。這台電腦重達27噸,由17,468個真空管所組成,ENIAC處理資料的媒體為打孔卡片,然後計算機由讀卡機讀卡片的方式輸入,沒有作業系統,只能執行簡單的運算。
第1台通用數位電腦-電子數位積分電腦ENIAC(左)與其所使用的真空管(右)。(圖片來源:U.S. Army,public domain ;Flickr,photograph by Erik Pitti,CC BY 2.0 license)
1947~1962年,電腦逐漸使用電晶體來取代真空管作為元件。1951年,埃克特(J. Presper Eckert) 和 莫奇利(John Mauchly)發表了第1台商業用途的電腦-通用自動電腦 (UNIVAC 1)。但直到1953年, IBM推出 650和700系列電腦後,電腦才開始真正受到大量採用。IBM配合這型號的電腦,開發了一百多種程式設計語言,電腦有記憶體和作業系統。這個世代的電腦開始使用磁帶和磁片等存儲介質,配合印表機輸出結果。從此,電腦開始在世界上嶄露頭角。
<
IBM 650電腦(圖片來源:Wikipedia,Author:MUNCYT2,CC BY-SA 3.0 license)
1963年,積體電路的發明給人類帶來更小、更強大、更可靠的電腦,能夠同時運行許多不同的程式。1964年,IBM發表了使用積體電路研製的IBM 360型電腦,速度比先前電腦快了幾百倍。1977年,蘋果推出Apple II,是賣得相當成功的個人電腦。1981年,IBM推出了個人電腦供家庭和辦公室使用。1983年, IBM PC被《時代》雜誌選為年度的風雲人物,代表個人電腦將會重大影響人類的生活。3年後,蘋果發表 Macintosh 電腦,其桌面圖示界面對後來微軟Windows 的作業系統有深遠的影響。
<
IBM 360(左)與蘋果的Apple II(右)。(圖片來源:Wikipedia,Author:Michael J. Ross,CC BY-SA 3.0 license;Wikipedia,Author:Maksym Kozlenko,CC BY-SA 4.0 license)
電腦的今生
電腦過去的演進主要是將 CPU做得更複雜,讓運算能力更強、速度更快。但晶片執行速度受到晶片連接線的傳輸延遲限制,以及電晶體元件0與1狀態改變產生的熱影響,因此晶片執行速度有其極限。為了增加CPU運算能力,多核心CPU因應而生,它是讓兩個或以上的獨立實體CPU組成一個晶片,這些CPU可以分別獨立執行程式指令,利用平行運算的能力來加快程式的執行速度。多核心擁有比單核心更快的執行速度,但需要能夠支援多核心處理的作業系統或應用程式。
圖形處理器(GPU)又稱顯示核心、視覺處理器、顯示晶片或繪圖晶片。相對於CPU,GPU高度平行的結構,使其比一般的 CPU效率更高和能併行處理大區塊資料。GPU通常做成顯示卡,但也可以嵌在主機板上,協助個人電腦、工作站、遊戲機和一些行動裝置如平板電腦、智慧型手機等執行繪圖運算的工作。
就系統來看,電腦的演變主要可分成大型電腦或超級電腦及平行與分散式計算電腦。大型電腦或超級電腦主要是單一主機,前者具備大量處理資料能力,後者具備超強運算能力。平行與分散式計算電腦是許多的小型運算裝置分散在不同地方但又藉網路互聯的電腦。不同時期有不同的平行與分散式計算模型,包括叢集計算、網格計算、雲端運算、霧運算。以雲端運算為例,其是將許多電腦的網路、伺服器、儲存空間、應用程式和服務資源用網路連結起來,透過管理機制,依使用者的需求提供不同的服務。
自2016年AlphaGo擊敗頂尖圍棋手李世乭後,人們才被人工智慧的厲害所震驚。1996年,IBM深藍(Deep Blue)擊敗西洋棋王卡斯帕洛夫(Garry Kasparov)時所用的演算法是平行alpha-beta搜尋法,它是搜尋所有可能的棋步,當分支後續走法比之前棋步的獲利還差,就會停止搜尋該分支。AlphaGo所用的演算法是結合蒙地卡羅樹搜尋與兩個深度神經網路,藉著大量棋譜來訓練神經網路,讓電腦學習智慧。
人工智慧電腦除可下圍棋外,也能用在人臉辨識、語音辨識、智慧交談等。因此,工程師開始將神經網路整合至CPU晶片,這讓電腦進入了人工智慧電腦時代,也讓神經網路的運算能達到即時處理的要求。人工智慧電腦的研究仍在進行中,未來其功能將會更強大,應用更廣泛。
電腦的未來
目前主流電腦仍是由超大型積體電路製程製造的晶片所組成,容易受到散熱、製程與傳輸速度限制,運算速度有其極限。因此,人們嘗試研發其他媒介來做運算,如量子電腦、光學電腦、DNA電腦等。由於它們不用電子做運算,具有耗熱少與大量平行處理運算能力,大幅提升了電腦的運算速度。
量子電腦具有強大運算速度的潛能,近年的技術突破似乎使得量子電腦更接近商業化應用。量子位元是量子電腦最基本的運算單元,為了使量子位元能夠運用,量子必須達到量子疊加和量子糾纏狀態。即單一量子需同時處於兩種物理狀態,且兩個量子間需形成聯結,使得兩個量子即使不處於同一個空間,卻可以即時互相影響,才能作為量子運算的基本單元。
量子電腦是將問題轉換為量子位元集合,不像傳統的數位電腦只有0或1兩個狀態。量子位元的0和1是一種量子疊加和糾纏狀態,也就是在計算過程中,在被觀察到之前它們可以存在於0和1之間。以丟擲硬幣做比喻,硬幣可為頭像(1)或反面(0)就如同傳統的位元,但若將硬幣擲到空中轉動時,硬幣不停在頭像和反面轉換,在空中旋轉時就像是同時為 1 和 0狀態,只有真正落下後才知道最後落在那一面。
量子可以是電子、離子或光子,量子位元的讀寫可透過微波、磁脈衝或雷射。量子電腦的量子位元數與相同數量位數的一般電腦位元數的意義有著根本的不同。例如,一個n位元的系統,一般電腦在同一時間只能表示一個資料長度為n位元的狀態,然而量子系統在同一時間內n個量子位元可同時表示2n個狀態,這些狀態可同時進行平行運算,因此量子電腦運算速度非常地快。
IBM在2019年消費電子展上展示的世界首款商業化量子電腦IBM Q System One (圖片擷取自YouTube影片,作者IBM Research,授權:創用 CC 姓名標示授權)
光子具有傳送速率快、不會有磁干擾與不會產生熱的特性,因此光學電晶體的運算速度可以比電子電晶體快得多。要用光學元件取代電子元件,需要一個等效的光學電晶體,要使用具有非線性折射率的材料,特別是需要材料能讓入射光的強度會影響通過介質傳輸的光的強度,其方式與雙極電晶體的電流回應相似。一些光學電晶體可用於建立光學邏輯閘,用來操縱光束控制其他光束,再做成電腦CPU。
與任何計算系統一樣,光學計算系統需要光學處理器、光學資料傳輸與光存儲器三樣東西才能正常工作。1970年代初,研究者就開始嘗試開發光學電腦,直到1990年代,由黃(Alan Huang)領導的貝爾實驗室團隊建造了第1台光學電腦,係由一系列雷射、光學元件和反射鏡組成,只能進行加法。
實現光學電腦或光學計算有許多困難,如光波導的布局與繞線、光學元件的小型化等。雖然我們期望不久的將來會有純光學的電腦問世,但現階段利用整合光學電腦和一般電腦做成的混和系統來解決問題也是可行的研究主題。
DNA電腦主要是用來解決運算量指數成長的問題,最先由南加大的阿德曼(Leonard Adleman)在1994年實現。阿德曼將DNA運算應用於解決7點的哈密頓路徑問題-尋找從一個城市旅行到另一個城市的最短路徑-來驗證DNA運算的概念。
1997年,計算機學家荻原(Mitsunori Ogihara)和生物學家瑞伊(Animesh Ray)一同提出了一種布林電路的分析方法。2002年,魏茨曼科學研究院的研究者公開了一種不是由矽晶片,而是由酶和DNA分子所組成的計算機。DNA計算是高度平行化的,原則上,數萬億的 DNA分子可能會同時進行化學反應,即執行計算,其速度比一般電腦快10萬倍,且計算使用的能量為一般電腦的10億分之1,而資料存儲所需要的空間則比一般電腦要少萬億倍。
作為新一代的電腦,DNA電腦有低耗能、高存儲、高速運算、低發熱、高容錯率等優點,同時也有資料難以讀取、化學反應無法保證成功率的一些缺點。當這些問題解決後,想必會引起巨大的波浪。
人類追求擁有更強大運算、智慧、儲存能力的電腦將永無止境。站在歷史的洪流看電腦的演化,從機械計算機、真空管、電晶體、積體電路、光學電腦、量子電腦到DNA電腦,每一個技術都超出一般人的想像。這給我們很好的啟示:我們的思考要能跳脫原來的框架,才能創造出不可能中的可能。
具有強大硬體能力的電腦固然重要,但要讓電腦真的有腦,就要研究開發具有智慧的軟體,軟硬體整合才會有完整的電腦。寄望未來電腦如同人類一樣,具有聽、說、讀、寫、想的能力,也具有自我修復、自我防禦、自我組態、自我調整等功能。這將牽涉許多跨領域技術的整合,包括感測器、虛擬實境、人工智慧、影像辨識、資訊安全、語音辨識與合成等。
責任編輯:郭啟東/國立中山大學