官术网_书友最值得收藏!

第一部分
硬件

“我向上帝祈愿,希望計算能利用蒸汽進行。”

——查爾斯·巴貝奇,1821年。

選自哈里·威爾莫特·巴克斯頓的《查爾斯·巴貝奇晚年生活和工作回憶錄》,1872年

硬件是計算中固態的、可見的部分:你可以看到并用手接觸的設備和器材。計算設備的歷史很有趣,但我這里只提一小部分。不過,有些趨勢值得注意,特別是以一定的成本,在給定的空間中可以集成的電路和設備數量隨時間推移而呈指數級增長的趨勢。隨著數字設備變得越來越便宜、功能越來越強大,迥然不同的機械系統已被更加統一的電子系統所取代。

計算機器有著悠久的歷史,然而早期的計算設備都是專用的,通常用于預測天文事件和位置。例如,一種假說認為巨石陣是一個天文觀測臺,雖然這個假說未經證實。大約公元前100年出現的安提凱希拉裝置(Antikythera mechanism)就是一種有著極其精密的機械構造的天文計算機。算盤之類的算術工具已經有上千年的使用歷史,尤其是在亞洲地區。在約翰·納皮耶(John Napier)描述了對數之后不久,計算尺就于17世紀早期被發明出來。我在20世紀60年代學習本科的工程知識時曾使用過計算尺,但現在計算尺已經變得難得一見,它們被計算器和計算機取代,我當時辛辛苦苦獲得的學習經驗也變得毫無意義。

和現代計算機最接近的先驅是雅卡爾提花織機,在1800年左右由法國的約瑟夫·馬里·雅卡爾(Joseph Marie Jacquard)發明。雅卡爾提花織機通過多行打孔的矩形卡片來確定特定的編織圖案。因此,這種提花織機是“可編程的”,可以通過打孔卡片提供的指令來控制編織的圖案。這種可節省人力的紡織機械的發明,導致很多編織工人失去了工作,并因此引發了社會混亂。1811~1816年在英國發生的盧德運動就是一場針對機械化的暴力抗議?,F代計算機技術也曾造成類似的混亂。

現代意義上的計算始于19世紀中期的英國,源于查爾斯·巴貝奇(Charles Babbage)的工作。巴貝奇是一位對航海和天文學感興趣的科學家,這兩門學科都需要用數值表來計算位置。巴貝奇一生中的大部分時間都在嘗試制造計算設備,以便將創建表格甚至打印表格所需的煩瑣且容易出錯的手工計算機械化。通過前面的引言,你可以感覺出他對于計算的煩惱。由于各種各樣的原因,包括疏遠了他的財務支持者,他沒能成功實現自己的雄心,但他的設計是合理的。在倫敦科學博物館和加州山景城的計算機歷史博物館,可以看到他的一些機器的現代實現,這些機器是用他那個時代的工具和材料建造的(見圖I.1)。

圖I.1 查爾斯·巴貝奇(Charles Babbage)的差分機的現代還原版

在巴貝奇的激勵下,一位名叫奧古斯塔·艾達·拜倫(Augusta Ada Byron)的年輕女子對數學和他的計算設備產生了興趣,她是詩人喬治·拜倫(George Byron)的女兒,后來的洛芙萊斯伯爵夫人(Countess of Lovelace)。洛夫萊斯詳細描述了如何使用巴貝奇的分析機(他所設計的最先進設備)進行科學計算,并預言機器也可以進行非數值計算,比如作曲?!袄?,假設和聲科學和音樂作曲中音調的基本關系可以被這樣表達和改編,機器就可以創作出任何復雜程度或范圍的精致而科學的音樂作品?!卑_·洛芙萊斯通常被認為是世界上第一個程序員,Ada編程語言也以她的名字命名(見圖I.2)。

赫爾曼·霍爾瑞斯(Herman Hollerith)于19世紀末與美國人口普查局(US Census Bureau)合作,設計并制造了能夠比手工更快地將人口普查信息制成表格的機器。借助雅卡爾織布機的創意,霍爾瑞斯在硬紙卡片上打孔,將人口普查數據編碼成他的機器可以處理的格式。廣為人知的是,1880年的人口普查用了8年的時間才全部制成表格,但由于有了霍爾瑞斯的打孔卡和制表機,1890年的人口普查只花了1年,而不是預計的10年或更長時間?;魻柸鹚箘摿⒘艘患夜?,通過多次合并和收購,1924年這家公司成為國際商業機器公司,也就是我們今天所知的IBM。

圖I.2 艾達·洛芙萊斯。細節來自瑪格麗特·莎拉·卡彭特于1836年繪制的肖像

巴貝奇的機器是由齒輪、車輪、杠桿和拉桿構成的復雜機械組合。20世紀電器的發展使不依賴于機械組件的計算機成為可能。第一個完全由電器組成的計算機是ENIAC(Electronic Numerical Integrator and Computer,電子數字積分計算機)。ENIAC于20世紀40年代由普瑞斯柏·??颂兀≒resper Eckert)和約翰·莫克利(John Mauchly)于位于費城的賓夕法尼亞大學建造,它占據了一個很大的房間,并且需要大量的電力支持。它每秒鐘可以做5000次加法。ENIAC計劃用于彈道計算等領域,但是直到1946年才建造出來。ENIAC的一些部件目前在賓夕法尼亞大學的摩爾工程學院展出。

巴貝奇清楚地看到,計算設備可以將操作指令和數據以相同的方式存儲,但是ENIAC并沒有將指令和數據都保存在內存里。相反,它通過利用開關設置連接和重新布線進行編程。第一臺真正將程序和數據存儲在一起的計算機是在英國建造的,最著名的是EDSAC(Electronic Delay Storage Automatic Calculator),即電子延遲存儲自動計算器,于1949年在劍橋建成。

早期的電子計算機用真空管作為計算元件。真空管是大小、形狀和圓柱形電燈泡類似的電子設備(見圖1.7)。它們不僅貴,而且脆弱、笨重,能耗也很高。隨著1947年晶體管的發明,以及1958年集成電路的發明,現代計算機時代才真正開始。這些技術使電子系統逐漸變得更小,更便宜,并且更快。

接下來的3章將介紹計算機硬件,重點關注計算系統的邏輯體系結構而非物理細節。計算機的體系結構幾十年來都大體不變,而硬件則以一種令人吃驚速度發生著改變。第1章是對計算機結構和組件的概述,第2章將展示計算機如何用比特、字節和二進制數字表示信息,第3章將闡述計算機是如何實際進行計算的,即如何處理比特和字節以完成一切。

主站蜘蛛池模板: 绥化市| 东台市| 乌鲁木齐市| 桦甸市| 开阳县| 威海市| 贵定县| 子长县| 厦门市| 柳林县| 武川县| 锡林浩特市| 多伦县| 西林县| 弥勒县| 陈巴尔虎旗| 永清县| 都昌县| 象州县| 马山县| 景泰县| 盐边县| 普宁市| 成武县| 永善县| 景德镇市| 连江县| 新宾| 阆中市| 龙海市| 类乌齐县| 靖州| 福安市| 许昌市| 洪泽县| 广水市| 南通市| 光山县| 泉州市| 田东县| 衡阳县|