世界算力簡史(上)

1946年2月14日,在美國賓夕法尼亞州東南部的費城,人們正在像以往一樣正常工作和生活。
忽然,他們發(fā)現(xiàn),房間里的燈暗了下來。
剛剛經(jīng)歷過二戰(zhàn)的人們,對這種情況習(xí)以為常。他們心想:“是不是哪里的電力線路又壞了?”
其實,燈之所以會暗,并不是因為線路問題,而是在離他們不遠的賓夕法尼亞大學(xué),誕生了一個“龐然大物”。
這個“龐然大物”占地170平方米,重達30噸。它以電為生,功率高達150千瓦。它的啟動,直接拉低了附近居民用電的電壓,所以導(dǎo)致電燈變暗。
這個“龐然大物”究竟是什么呢?
沒錯,它就是人類第一臺通用電子計算機——ENIAC(埃尼阿克)。

ENIAC采用了17468根真空管(這也是它體積大、耗電高的主要原因之一),每秒能夠完成5000次加法或400次乘法,約為手工計算的20萬倍。
它的誕生,對整個人類來說擁有極為重要的意義,標(biāo)志著人類正式邁入了電子計算機時代。
█?從結(jié)繩記事到阿拉伯?dāng)?shù)字:算力的萌芽
ENIAC是一個里程碑。它將人類算力發(fā)展史分為了前后兩個部分。
在繼續(xù)下半部分之前,我們還是先來回顧一下上半部分的歷程。
從遠古時期開始,人類就掌握了算力。我們的“原生”算力工具,就是大腦。
我們運用算力的過程,叫做“思考”。相對應(yīng)的,我們收集信息的過程,叫做“觀察”。
所謂“計算”,其實就是解決問題的過程。遇到問題,通過計算解決問題,就實現(xiàn)了進步和發(fā)展。
在整個過程中,人類是主體,信息是輸入和輸出物。經(jīng)驗和技術(shù),則是方法。而完成整個計算過程的能力,就是算力(Computing Power)。

動物也有大腦,也有算力,但是遠遠不如我們強勁。在漫長的進化過程中,我們的大腦越來越發(fā)達,最終幫助我們從萬物生靈中脫穎而出,成為了地球的主宰。
在人類早期階段,之所以需要算力,是為了生存。主要的計算內(nèi)容,是如何狩獵,如何防范襲擊,如何繁衍后代。
后來,有了基本的生存保障,人類就開始將更多的算力用于改善生存質(zhì)量,例如搭建房屋、交易物品、制造工具等。
計算是對信息進行處理的過程。所以,如何表達和記錄信息,是實施計算的第一步。
在原始社會,為了更好地描述自己觀察到的信息(所見、所聞、所想),也為了更方便地進行信息溝通,就開始繪畫。

后來,在繪畫的基礎(chǔ)上,又發(fā)明了文字。

文字,其實就是用表意符號對信息進行“編碼”。
它是物理世界和精神世界的一種映射和表達。有了文字,信息的記錄和傳遞效率大幅提升,人類社會有了更強的聯(lián)結(jié)力,歷史和文明也更易于傳承。
文字里面,還有一種很特殊的符號,那就是數(shù)字。
所有的人類早期先進文明,都有自己的文字,也有自己的數(shù)字系統(tǒng)。例如巴比倫文明的六十進制,瑪雅文明的二十進制或十八進制,中國和古埃及的十進制。
數(shù)字出現(xiàn)后,人們將計數(shù)和算數(shù)的過程,稱為計算。(我們姑且將前面宏觀的計算稱為“廣義的計算”,這里稱為“狹義的計算”。)
古希臘在數(shù)字和計算上比較領(lǐng)先,很早就創(chuàng)立了算術(shù)、幾何、代數(shù)等獨立學(xué)科。
古希臘思想家、哲學(xué)家、數(shù)學(xué)家畢達哥拉斯發(fā)現(xiàn)并證明了勾股定理,是那一時期計算水平的標(biāo)志。

后來,畢達哥拉斯學(xué)派主張用數(shù)來解釋一切,認為不僅萬物都包含數(shù),而且“萬物皆是數(shù)”。
現(xiàn)在看來,這種思想極具前瞻性。也有人將其改成:“萬物皆比特”。
人類社會不斷進步,計算需求也變得越來越復(fù)雜。僅僅依靠大腦這個“原生”算力工具,不太夠用。即便是用上手指、腳趾,也不行。所以,我們開始借助外部算力工具。
最早期,我們使用的外部算力工具是草繩、石頭,也就是所謂“結(jié)繩記事”。
中國關(guān)于結(jié)繩記事的記載出自《易經(jīng)》中的《系辭下》:“上古結(jié)繩而治,后世圣人易之以書契?!?我們現(xiàn)在常見的中國結(jié),也源于“結(jié)繩記事”。

后來,文明繼續(xù)發(fā)展,我們有了算籌(一種用于計算的小棍子)。
在中國,算籌誕生于春秋戰(zhàn)國時期。我們經(jīng)常用到的成語,例如運籌帷幄、一籌莫展、技高一籌等,都是和算籌有關(guān)。
公元480年,祖沖之把圓周率精確計算到小數(shù)點后第七位(3.1415926),采用的工具就是算籌。他的這一記錄,保持了900多年。

除了算籌之外,我們還有一個更知名的算力工具,那就是算盤。
算盤的具體誕生時間已經(jīng)無從考證。有人說是秦朝,也有人說是東漢。東漢時期徐岳的著作《數(shù)術(shù)記遺》中,最早出現(xiàn)了“珠算”這個字眼。
算盤的歷史價值不需要我多說。直到現(xiàn)在,我們還能看到它的身影。

公元3世紀,笈多王朝的古印度人發(fā)明了阿拉伯?dāng)?shù)字,意義重大。后來,阿拉伯帝國崛起,將阿拉伯?dāng)?shù)字帶到了歐洲。
同樣被帶到歐洲的,還有我們中國四大發(fā)明之一的造紙術(shù)。
前面我提到,圖畫和文字是人類表達信息的方式。這些信息,肯定是需要載體的。早期的載體,是龜甲、獸骨、獸皮、竹簡、木牘、縑帛。這些載體要么稀少,要么昂貴,要么無法長期保存。
西漢時期,造紙術(shù)在中國出現(xiàn),但工藝簡陋,質(zhì)量不佳。后來,東漢元興元年(105年),宦官蔡倫總結(jié)前人經(jīng)驗,對造紙工藝進行改進,顯著提升了紙的質(zhì)量,也為紙的普及奠定了基礎(chǔ)。

紙的出現(xiàn)和普及,大大方便了信息的記錄和傳遞,有利于文化傳播,也提升了生產(chǎn)效率。
阿拉伯?dāng)?shù)字和造紙術(shù)傳入歐洲,前者取代了冗長的羅馬數(shù)字,后者取代了昂貴的羊皮和小牛皮。再加上后來,中國的印刷術(shù)又傳了過去,大大促進了歐洲文化的發(fā)展。
這一切,也為后來的文藝復(fù)興和科技萌芽鋪平了道路。
█?從計算尺到差分機:算力的蓄力
公元14世紀,正如大家所知道的那樣,歐洲開啟了文藝復(fù)興,人文主義的思潮占據(jù)主流,人們開始倡導(dǎo)通過觀察和實驗來認識世界。
到了16世紀,歐洲的科技就開始爆發(fā)了。
那一時期,整個歐洲群星璀璨,藝術(shù)和科學(xué)領(lǐng)域碩果累累,生產(chǎn)力水平直線上升。
數(shù)學(xué)作為所有科學(xué)學(xué)科的基礎(chǔ),取得的研究進展是最大的。解析幾何學(xué)、微積分等,都誕生了。一大堆天才數(shù)學(xué)家,輸出了海量的研究成果,不僅為其它學(xué)科的騰飛奠定了基礎(chǔ),還直接促成了后來的工業(yè)革命。
當(dāng)時,為了更好地服務(wù)于數(shù)學(xué)計算,人們發(fā)明了新型的算力工具。例如1625年,英國數(shù)學(xué)家威廉·奧特雷德(William?Oughtred)發(fā)明了計算尺。1642 年,法國數(shù)學(xué)家布萊茲·帕斯卡(Blaise Pascal)發(fā)明了人類最早的機械計算機。
這些發(fā)明,可以輔助完成對數(shù)計算、三角函數(shù)計算、開根計算等復(fù)雜任務(wù),提升計算效率。
后來,17世紀末到18世紀中,德國數(shù)學(xué)家戈特弗里德·威廉·萊布尼茨(Gottfried Leibniz)等人,先后設(shè)計和制造了能夠計算乘法的設(shè)備,將算力工具提升到更高的層級。

18世紀60年代,第一次工業(yè)革命爆發(fā),將人類帶入蒸汽時代。
動力機械崛起,開始取代手工勞動,成為主要生產(chǎn)力。算力工具,也開始向更先進的機械化方向演進。
算力工具想要機械化,首先要解決信息表達方式的問題。因為機器是不識字的,先要發(fā)明讓機器看得懂的“語言”,才能讓機器按命令工作。
這個早期的機器語言表達方式,就是“打孔”。
1725年,法國人巴斯勒·布喬(Basile Bouchon)發(fā)明了打孔卡(穿孔卡),用于織布機。

織布機在編織過程中,編織針會往復(fù)滑動。根據(jù)打孔卡上的小孔,編織針可以勾起經(jīng)線(沒有孔,就不勾),從而繪制圖案。換言之,打孔卡是存儲了“圖案程序”的存儲器,對織布機進行控制。
這一發(fā)明,標(biāo)志著人類機械化信息存儲形式的開端。
1801年,法國織機工匠約瑟夫·馬里爾·雅卡爾(Joseph Marie Jdakacquard)對打孔卡進行了升級。
他將打孔卡按一定順序捆綁,變成了帶狀,創(chuàng)造了穿孔紙帶(Punched Tape)的雛形。這種紙帶,被應(yīng)用于提花織機。

大家應(yīng)該能看出來,打孔其實就是一種信息編碼方式。它比文字和數(shù)字更加簡單,讓人與機器可以進行“溝通”。
1811年,20歲的英國發(fā)明家查爾斯·巴貝奇(Charles Babbage)從提花織機中獲得靈感,開始設(shè)計制造一臺名叫“差分機”的設(shè)備。

十年后,這臺“差分機”制造完成,可以進行多種函數(shù)運算,運算精度達到了6位小數(shù)。
在這個成就的鼓舞下,巴貝奇又啟動了第二臺“差分機”的研究,精度將達到20位。英國政府也資助了他的研究。
可惜的是,因為這個機器的設(shè)計太過超前(有25000多個零件,主要零件的誤差不得超過每英寸千分之一),當(dāng)時的機械制造水平,很難達到精度要求。所以,在歷經(jīng)二十年,耗費了巨額資金之后,這個“差分機”還是未能制造出來。

在這個過程中,1834年,巴貝奇還提出了一個更大膽的想法——設(shè)計一個以蒸汽為動力的通用數(shù)學(xué)計算機,能夠自動解算有100個變量的復(fù)雜算題,每個數(shù)可達25位,速度可達每秒鐘運算一次。
巴貝奇把這種新的設(shè)計叫做“分析機”。
“分析機”和第二臺差分機一樣,最終未能制造成功。但“分析機”中包含的很多設(shè)計,例如送入和取出數(shù)據(jù)的機構(gòu)、以及“存儲庫”和“運算室”,和一百多年后的計算機如出一轍。
因此,“分析機”被后人稱為世界上第一臺計算機。而巴貝奇,則被譽為計算機鼻祖。
值得一提的是,與巴貝奇進行技術(shù)合作的,有一個小姐姐,名字叫阿達·奧古斯塔(Ada Augusta)。她是詩人拜倫的獨生女。當(dāng)時,她負責(zé)為“分析機”編程。她也因此被稱為世界上第一個“程序員”。

1878年,瑞典發(fā)明家奧涅爾在俄國發(fā)明了一種齒數(shù)可變的齒輪計算機,也算是機械計算機的代表之一。
到了1885年,已經(jīng)有越來越多的計算機在歐美國家誕生,成為一種風(fēng)潮。
1890年,一個牛人的出現(xiàn),讓打卡孔技術(shù)進一步發(fā)揚光大。這個人,就是德裔美國人——赫爾曼·何樂禮(Herman Hollerith)。?

赫爾曼·何樂禮?赫爾曼·何樂禮在打孔卡的基礎(chǔ)上,發(fā)明了打孔卡制表機,專門用于收集并統(tǒng)計人口普查數(shù)據(jù)。?

打孔卡制表機的統(tǒng)計速度更快。
根據(jù)史料記載,在1890年的美國人口普查中,通過打孔制片和打孔機,僅6周就完成了統(tǒng)計工作,得出了準確的數(shù)據(jù)(62622250人)。而此前1880年的美國人口普查,數(shù)據(jù)全靠手工處理,歷時7年才得出最終結(jié)果。
如此巨大的效率提升,使得制表機在各個行業(yè)迅速普及。它標(biāo)志著半自動化數(shù)據(jù)處理時代的開始。?

后來,1896年,赫爾曼·何樂禮創(chuàng)辦了制表機器公司(Tabulating Machine Company)。這家公司,就是IBM公司的前身。
█?從圖靈機到ENIAC:算力的崛起
進入20世紀后,隨著電子技術(shù)的飛速發(fā)展,計算機就開始了由機械向電子的過渡。
機械時代的計算機,可以通過齒輪或者帶刻度的圓柱,進行數(shù)字的標(biāo)記。到了電子時代,這樣做就不太合適了。電的特點是有(通電)和無(不通電),它比較適合的,顯然是二進制。
17世紀后半葉,德國數(shù)學(xué)家萊布尼茨率先提出了二進制(是的,又是他。他也是微積分的發(fā)明人。)
他形象地用1表示上帝,用0表示虛無,上帝從虛無中創(chuàng)造出所有的實物。
19世紀中葉,英國數(shù)理邏輯學(xué)家喬治·布爾(George Boole)提出了邏輯代數(shù)(后來被人們稱為“布爾代數(shù)”)。

他通過二進制,將算數(shù)和簡單的邏輯統(tǒng)一起來,通過使用與、或、非等邏輯運算符,以及基于真和假的二值邏輯,為我們提供了一種理解和操縱邏輯關(guān)系的工具。
布爾代數(shù)為計算機的二進制、開關(guān)邏輯電路的設(shè)計鋪平了道路,并最終為現(xiàn)代計算機的發(fā)明奠定了數(shù)學(xué)基礎(chǔ)。
除了邏輯基礎(chǔ)之外,硬件當(dāng)然也要跟上。
1904年,英國人約翰·安布羅斯·弗萊明(John Ambrose Fleming)發(fā)明了真空電子二極管,可以實現(xiàn)單向?qū)щ?,檢波、整流。1906年,美國人德·福雷斯特(Lee De Forest)在二極管的基礎(chǔ)上加以改進,發(fā)明了真空三級電子管,可以實現(xiàn)信號放大。

真空管的出現(xiàn),推動人類電子技術(shù)向前邁了一大步,補足了硬件短板。
那一時期,信息存儲技術(shù)也有了很大進步。
1898年,丹麥工程師瓦蒂瑪·保爾森(Valdemar Poulsen)在自己的電報機中首次采用了磁線技術(shù),使之成為人類第一個實用的磁聲記錄和再現(xiàn)設(shè)備。
1928年,德國工程師弗里茨·普弗勒默(Fritz Pfleumer)發(fā)明了錄音磁帶。1932年,奧地利工程師古斯塔夫·陶謝克(Gustav Tauschek)發(fā)明了磁鼓存儲器。磁性存儲時代正式開啟。

1937年,英國劍橋大學(xué)的阿蘭·圖靈(Alan M. Turing)提出了被后人稱之為"圖靈機"的數(shù)學(xué)模型。這為現(xiàn)代計算機的邏輯工作方式指引了方向。

同樣是1937年,貝爾試驗室的喬治·斯蒂比茲(George Stibitz)展示了用繼電器表示二進制的裝置。盡管僅僅是個展示品,但卻是第一臺二進制電子計算機。
二戰(zhàn)爆發(fā)后,軍事需求大大刺激了算力的發(fā)展。軍方需要更加強勁的算力,完成密碼加密解密、火炮彈道計算甚至火箭發(fā)射等重要任務(wù)。
1941年12月,德國人康拉德·楚澤(Konrad Zuse)制作完成了世界上第一臺可編程電子計算機——Z3。這臺計算機用于空氣動力學(xué)計算,使用了大量的繼電器和真空管,每秒鐘能作3到4次加法運算,一次乘法需要3到5秒。后來,Z3毀于柏林轟炸。

1942年,美國愛荷華州立大學(xué)物理系副教授阿塔納索夫(John V.Atanasoff)和他的學(xué)生克利福德·貝瑞(Clifford Berry)設(shè)計制造了世界上第一臺電子計算機,名為"ABC"(Atanasoff-Berry Computer),也被稱為“珍妮機”。

ABC使用了IBM的80列穿孔卡作為輸入和輸出,使用真空管處理二進制格式的數(shù)據(jù)。數(shù)據(jù)的存儲,則是使用的再生電容磁鼓存儲器(Regenerative Capacitor Memory)。
雖然ABC無法進行編程(僅用于求解線性方程組),但使用二進制數(shù)字來表示數(shù)據(jù)、使用電子元件進行計算(而非機械開關(guān))、計算和內(nèi)存分離等特點,都足以證明它是一臺現(xiàn)代意義上的數(shù)字電子計算機。
1944年,在IBM公司的支持下,哈佛大學(xué)博士霍華德·艾肯?(Howard Aiken) 成功研制了通用電子計算機——Mark I,也稱ASCC(Automatic Sequence Controlled Calculator,自動控制序列計算器)。

Mark I長16米,重4.3噸,擁有75萬個零部件,使用了800公里長的電線,300萬個連接、3500個多極繼電器、2225個計數(shù)器。
它可以在一秒鐘內(nèi)進行3次加法或減法。乘法需要6秒,除法需要15.3秒,對數(shù)或三角函數(shù)需要超過1分鐘。當(dāng)時,它被用來為美國海軍計算彈道火力表。
值得一提的是,第一個在Mark I上運行的程序是由馮·諾依曼(John von Neumann)于1944年3月29日發(fā)起的。當(dāng)時,馮·諾依曼正在研究曼哈頓計劃,需要確定內(nèi)爆是否是原子彈的可行選擇。

還需要提一句,Mark I的研究團隊中,有一位名叫格蕾絲·霍珀(Grace Hopper)的海軍預(yù)備役女軍官?!癰ug”這個詞,就是她引入的。
1945年,Mark II在運行過程中,飛進了一只飛蛾,導(dǎo)致出現(xiàn)故障。霍珀消滅了飛蛾,解決了問題,成為第一個“調(diào)試(debug)”計算機的人。

終于,到了1946年2月,如本文開頭所說,ENIAC誕生了。

這里需要澄清一下,雖然人們一貫將ENIAC稱為世界上第一臺數(shù)字式電子計算機,但這個說法其實是有爭議的。前面提到的ABC,就是這個稱謂的有力爭奪者。
ENIAC甚至稱不上第二。那一時期問世的數(shù)字電子計算機很多,嚴格來說,ENIAC只能排第11。國外主流觀點認為,ENIAC的設(shè)計者盜竊了ABC的設(shè)計。1973年,美國法院也裁定,取消了ENIAC的專利,認定ENIAC專利是ABC的衍生品。
關(guān)于誰是第一,我們就不討論了。反正,1945年左右,電子計算機誕生的浪潮,標(biāo)志著人類算力正式進入了數(shù)字電子計算機時代。
波瀾壯闊的信息技術(shù)革命,即將開啟。
未完待續(xù)……
敬請期待——《世界算力簡史(下):信息革命》
參考文獻:
1、《計算機的發(fā)展歷史匯總》,網(wǎng)絡(luò);
2、《算力發(fā)展簡史》,?廬山真容;
3、《誰發(fā)明了 Mark I 計算機?》,thoughtco.com;
4、《機械史上的巔峰之作!來看看差分機》,前沿數(shù)控技術(shù);
5、維基百科、百度百科;