1. 程式人生 > >編碼的奧祕:從算盤到晶片

編碼的奧祕:從算盤到晶片

轉自: 《編碼的奧祕》   第十八章

 

 

          縱觀歷史,人類發明了很多靈巧的工具和機器以滿足廣泛的需求,從而使數學運算變得更容易了些。雖然人類天生就有使用數字的能力,但仍能經常需要幫助。人們常遇到一些自己不能輕易解決的問題。

          數字可看成是早期幫助人類記錄商品和財富的工具。許多文明,包括古希臘和美洲土著,都借用石子或穀物來計數。在歐洲使用計數板,而在中國則對由框和珠子組成的算盤較為熟悉:

          

          沒有人真的喜歡乘法和除法,但卻有人為它做過什麼,蘇格蘭數學家 Join Napier(1550-1 6 1 7 )就是這少數人中的一個。他發明了對數來簡化這些操作,兩數之積簡化為它們對數的和。因此,如果你想使兩數相乘,先在對數表中分別查出它們的值,然後相加,再用相反的方法查對數表就可得到它們的積。

          對數表的建立,使得隨後 4 0 0年裡一些最偉大的思想家一直為此忙碌,而另一些人卻在設計使用小裝置來代替對數表。一種有對數標尺的滑尺已有很長的歷史了,它由 Edmund Gunter( 1 5 8 1 -1 6 2 6)發明並由 William Oughtred( 1 5 7 4-1 6 6 0)修正。 1 9 7 6年,當 K e u ff e l & E s s e r公司將其公司最後製造的滑尺捐贈給華盛頓特區的 Smithsonian 學院時,滑尺的歷史也就宣告結束了,其中的原因是手持計算器的出現。

         N a p i e r也發明了一種乘法輔助器,它由刻在骨頭、號角、像牙上的數字條組成,因而這樣的輔助器稱為 N a p i e r骨架。 1 6 2 0年左右, Wilhelm Schickard( 1 5 9 2-1 6 3 5)製造出了最早的有點兒自動功能的由 N a p i e r骨架組成的機械計算器。幾乎在同時出現了由互相連結的輪子、齒輪和水平儀組成的另外一種計算器,這種機械計算器的兩個最主要的製造者是數學家和哲學家布萊茲·帕斯卡 ( 1 6 2 3-1 6 6 2 )和萊布尼茲 ( 1 6 4 6-1 7 1 6 )。

         你一定能記得最初的 8位加法器和能自動進行多於 8位數的加法計算的計算機中的進位是多麼令人討厭。進位原先似乎只是加法運算中的一個小問題,但在加法機中卻成了一箇中心問題。即使設計一個能進行除進位外的所有工作的加法機,也不能說工作就算完成了。

         進位處理是否成功是評估老式計算機的關鍵。例如,帕斯卡設計的進位機制禁止減法運算。為了進行減法,必須加上 9的補碼,這在第 1 3 章中已經講到。直到 1 9世紀後期,才出現了真正可以為人們所使用的機械計算器。

         一個奇特的發明對計算的歷史產生了深遠的影響,就像它對紡織所產生的深遠影響一樣,這就是約瑟夫·瑪麗·傑奎德 ( 1 7 5 2- 1 8 3 4 )所發明的自動織布機。傑奎德織布機(大約產生於1 8 0 1 年)使用上面已打孔的金屬卡片(就像鋼琴上的金屬卡片)來控制編織物的圖案。傑奎德的一大傑作就是用黑白絲線織成的自畫像,為此使用了大約 1 萬張卡片。

        在1 8世紀(甚至直到 2 0世紀4 0年代) ,計算機就像一個以計算數字謀生的人。使用星星進行航海導航經常需要對數表,並且三角函式表也是必需的。如果需要釋出新表,則需要許多計算機來工作,然後把結果彙總起來。當然,在這一過程的任何階段,即從初始化計算到設定型別來列印最後幾頁都可能會出現錯誤。

        從數學表中消除錯誤的願望激發了查爾斯·巴貝芝( 1 7 9 1—1 8 7 1)。巴貝芝是一位英國的數學家和經濟學家,他和摩爾斯差不多是同一時代的人。

       在那時,數學表(以對數表為例)並不是通過計算表中每一項確切的對數值而建立的,因為這得花費很多時間。取而代
之的是選擇一些數進行對數計算,而介於這些數中間的那些數則採用插補,即稱作差分的方法,通過相對簡單的計算來得到。

       大約在 1 8 2 0年,巴貝芝認為可以設計並製造一臺機器來自動建立表,甚至可以到自動設定列印型別這一步,這樣可以消
除錯誤。他構想了差分機,這是一個很大的機械加法機。通過切換,可使位於 1 0個不同位置的輪子來表示各位數的十進位制數
字,負數用 1 0的補碼來計算。儘管一些早期的模型可以證明巴貝芝的設計是可行的,並且也從英國政府獲得了一些支援,但差分機卻從未完成過。巴貝芝於1 8 3 3年放棄了這一工作。

        然而,就在那個時候,巴貝芝又有了一個更好的構想,這就是解析機 (重複的設計和再設計不斷耗費著巴貝芝的生命,直到他死去 ),解析機是 1 9世紀最接近計算機的發明。在巴貝芝的設計中,有一個儲存系統(類似於今天儲存器的概念)和運算器(算術單元)。乘法由重複加法來實現,除法由重複減法來實現。

        解析機最精華的部分在於它可以用卡片來程式設計,這些卡片是由傑奎德的按圖案編織的織布機上的卡片經過改造而製成的。正如艾達·奧古斯塔,即拉弗雷斯女伯爵( 1 8 1 5-1 8 5 2)在她翻譯的由一個義大利數學家寫的,關於巴貝芝解析機的文章的按語裡寫的: “我們可以說解析機編織的是代數模型,正如傑奎德織布機編織的是花和葉一樣”。

      巴貝芝可能是第一個意識到計算機中條件轉移的重要性的人。拉弗雷斯女伯爵關於此也曾寫道: “操作迴圈必須理解成一批操作,這些操作可以重複多次。無論是隻重複兩次還是無窮次,都是一個迴圈,歸根到底重複組成了迴圈的這些操作。許多情況下,還會出現一個或多個迴圈的重複,即迴圈的迴圈或多個迴圈的迴圈”。

       儘管差分機最終由 G e o rg和Edvard Scheutz 父子在 1 8 5 3 年製成,但巴貝芝的機器那時已被遺忘了很久,直到 2 0世紀 3 0年代人們開始追尋 2 0世紀計算機的根源時才再次想起。巴貝芝曾經做的東西已經被後來的技術所超越,除了他對自動化的超前認識外,他並沒有為 2 0世紀的計算機工程留下什麼東西。

        計算機歷史上另一個里程碑來源於美國憲法第二部分的第一篇。這一部分裡除其他事情外還要求每 1 0年進行一次人口普查。 1 8 8 0年人口普查的時候,人口資訊按年齡、性別及祖籍來收集,資料的收集差不多花了七年的時間來進行。

         由於擔心 1 8 9 0年的人口普查可能需要超過 1 0年的時間,人口普查局尋求使該系統工作自動化的可能性並選用了赫曼·霍勒瑞斯 ( 1 8 6 0—1 9 2 9 )開發的機器,此人是 1 8 8 0年人口普查的統計員。

         霍勒瑞斯的想法是採用馬尼拉穿孔卡片,大小是 。(雖然霍勒瑞斯不可能知道巴貝芝如何使用卡片在他的解析機上程式設計,但他卻很熟悉傑奎德織布機上卡片的使用。 )卡片上的孔組成2 4列,每列 1 2個,這樣共有 2 8 8 個位置,這些位置表示某個人在人口普查記錄中的某些特徵。普查員通過在卡片的適當位置上打 1 / 4英寸的方孔來標識這些特徵。

           本書可能使得人們習慣於用二進位制碼的概念來思考問題,因此,你可能馬上會想到卡片上的 2 8 8個穿孔點可以儲存 2 8 8位資訊。但是,這些卡片並不是這樣用的。

            例如,在純二進位制系統中,人口普查卡片會有一個位置來表示性別,可以用打孔表示男性,未打孔表示女性(或者相反)。但是,霍勒瑞斯的卡片用兩個位置表示性別,一個位置打孔表示男性,另一個位置打孔表示女性。同樣,用兩個穿孔表示年齡,一個穿孔指明一個 5年的年齡範圍: 0~4、 5~9、 1 0~1 4等等,另一個孔用 5個位置中的一個來表明在該範圍內的確
切年齡。年齡編碼需要卡片上總共 2 8個位置。而純二進位制系統只需要 7個位置就可編碼 0~1 2 7的任何年齡。

             我們應該原諒霍勒瑞斯在記錄人口普查資訊時沒有采用二進位制系統,對於 1 8 9 0年的人口普查員來說,把年齡轉換成二進位制數要求太高了一些。還有一個實際原因來解釋穿孔卡片系統為什麼不能全部是二進位制的是因為二進位制系統可能出現這樣一種情形,即所有的孔都被打孔,使得卡片很脆弱,結構不牢固。

             人口普查的資料收集可進行統計或製成表格。你可能想知道每一個區域內有多少人生活,當然,你也可能對人口的年齡分佈統計資訊感興趣。正因為如此,霍勒瑞斯製造了一個製表機,它能結合手工操作和自動操作。操作員把一個有 2 8 8個彈簧針的板子壓到每一個卡片上,對應於卡片上每一個穿孔的針接觸水銀池形成電路,電路觸發電磁鐵使十進位制計數器計數。

             霍勒瑞斯在分類卡片的機器上也用了電磁鐵。例如,如果需要統計所記錄的每一個職業的年齡資料,首先需要按職業對卡片分類,然後對每一個職業統計年齡資料。分類機與製表機一樣用手壓,但分類機使用電磁鐵開啟一個開口,對應於 2 6個分隔區域中的一個,操作員把卡片放入分隔區域,然後用手工關上開口。

            這項實驗在自動進行 1 8 9 0年的人口普查工作中取得了巨大成功,處理了超過 6 2 0 0萬張的卡片,包含的資料是 1 8 8 0年人口普查的 2倍,而資料處理只花了大約 1 8 8 0年人口普查所花時間的1 / 3。霍勒瑞斯和他的發明享譽全球。 1 8 9 5年,他甚至到了莫斯科併成功地賣出了他的裝置,該裝置在 1 8 9 7年第一次用於俄羅斯的人口普查。

            霍勒瑞斯開始進行各種活動。 1 8 9 6年,他創立了製表機公司,出租和出售穿孔卡片裝置。1 9 11 年,經過合併,該公司成為計算-製表-記錄 ( c c o m p u t i n g - Ta b u l a t i n g - R e c o r d i n g )公司,即C - T- R公司。到 1 9 1 5年, C - T- R的主席是 Thomas J.Wa t s o n ( 1 8 7 4- 1 9 5 6 ),他在 1 9 2 4年把公司的名字改為國際商用機器公司,即 I B M。

           1 9 2 8年,原先的 1 8 9 0年的人口普查卡片已經演化成為著名的“不會捲曲、摺疊’ 、翹頁”的 I B M卡片,有 8 0列 1 2行。它們用了 5 0多年,即使在最後幾年也被稱作霍勒瑞斯卡片。在第2 0、 2 1 和2 4章將要講到這些卡片的影響。

            在把目光移到 2 0世紀之前,不要對 1 9世紀那個年代有太多的偏見。顯然,本書主要著眼於數字系統的發明,這些發明包括電報、布萊葉盲文、巴貝芝機器和霍勒瑞斯卡片。當與數字概念和數字裝置一起工作時,很容易會把整個世界都想像成數字世界。但是, 1 9世紀的特徵更多體現在那些不是數字的發明及發現上。的確,我們感受到的自然世界只有很小一部分是數字的,它更接近於是連續的而不那麼容易被量化。

            儘管霍勒瑞斯在他的卡片製表機和卡片分類機上用了繼電器,但是直到 2 0世紀 3 0年代中期,人們才真正開始用繼電器來製造計算機 (後來叫機電式計算機 )。這些機器上用的繼電器通常不是電報繼電器,而是那些用來在電話系統中控制呼叫路由的繼電器。

            早期的繼電器計算機並不像我們在上一章中製造的繼電器計算機(將會看到,後者計算機的設計基礎是基於從 2 0世紀7 0年代開始的微處理器)。特別地,今天對我們來說計算機內採用二進位制數是顯然的,但那時並不是這樣。

            我們所設計的繼電器計算機與早期的繼電器計算機之間的另一個區別是在 2 0世紀3 0年代,沒有人會狂熱到用繼電器構造 524 288位的儲存器!所需的造價、空間及功耗使得這樣大的儲存器不可能實現。可用的很小的儲存器只是用來儲存中間結果,而程式本身儲存在像帶有穿孔的紙帶這樣的物理媒體上。的確,把程式碼和資料放入儲存器的處理方式是一個很現代化的概念。 

             按年代排列,第一個繼電器計算機似乎是由 Conrad Zuse( 1 9 1 0- 1 9 9 5)建造的。 1 9 3 5年當他還是一個工程系的學生的時候,他就開始在他父母位於柏林的住所裡製造計算機。他採用的是二進位制數,但卻是早期版本,且用的是機械儲存器而不是繼電器。 Z u s e在老式的 3 5 毫米的電影膠片上穿孔來進行計算機程式設計。

              1 9 3 7年,貝爾電話實驗室的 G e o rge Stibitz( 1 9 0 4-1 9 9 5)把一對電話繼電器安裝在家裡,並且又連線了一個 1 位加法器到餐桌上,後來他的夫人稱它為“ K機器”( K表示k i t c h e n,廚房)。該實驗導致在 1 9 3 9年產生了貝爾實驗室的複數計算機。

               與此同時,哈佛大學的研究生 Howard Aiken( 1 9 0 0-1 9 7 3 )因需要某種方法來做大量重複計算,從而使得哈佛大學和 I B M合作,製造出了最終稱為 Harvard M ark I 的自動順序控制計算機( A S C C: automated sequence controlled calculator),此項工作在 1 9 4 3 年完成。這是第一臺打製表格的數字計算機,它終於實現了巴貝芝的夢想。 Mark II 是以巨大的繼電器為基礎的機器,使用了 13 000個繼電器。由 A i k e n領導的哈佛計算實驗室講授了電腦科學的第 1課。

               繼電器並不是製造計算機的最好器件,因為它是機械的,工作時需彎曲一個金屬簧片,如果超負荷工作,簧片就會折斷;如果有一小片汙垢或紙片粘在觸點之間,繼電器就會失效。一個著名的事件發生在 1 9 4 7年,從 Harvard Mark II 計算機的一個繼電器中找到一隻蛾子。Grace Murry Hopper ( 1 9 0 6—1 9 9 2) 1 9 4 4年加入A i k e n的小組,此人後來在計算機程式設計語言領域非常有名。他在計算機日誌中記錄了這隻蛾子,寫道“第一次發現了真正的 b u g”。

               繼電器的一種可能的替代品是真空管,真空管由 John Ambrose Fleming ( 1 8 4 9—1 9 4 5 )和 Lee de Forest( 1 8 7 3—1 9 6 1 )發明用來同無線電裝置連線。到 2 0世紀 4 0年代,真空管早已用來放大電話訊號。事實上,每一家的落地式收音機都裝上了用來放大無線電訊號的真空管,以便人們能聽見。真空管可以連線成與、或、與非和非門,這一點非常像繼電器。
                邏輯閘是由繼電器還是由真空管來製造的並不重要。利用邏輯閘可整合加法器、選擇器、譯碼器、觸發器和計數器。前面幾章講的基於繼電器的器件在當繼電器被換成真空管時仍然可用。

                不過真空管也有問題,它們昂貴、耗電量大、散發的熱量多。然而最大的問題在於它們最終會被燒燬,這也就是它們的壽命問題。有真空管收音機的人就習慣於隔一段時間更換這些管子。電話系統設計成有許多多餘的管子,因此損失點兒管子也不是大的問題。 (沒有人能指望電話系統不出一點兒問題。 )然而計算機中的一個管子燒燬以後,並不能很快被檢測到,而且,計算機中使用瞭如此多的真空管,可能每幾分鐘就會燒燬一個。

               使用真空管相對於繼電器的最大好處在於它每百萬分之一秒(即 1微秒)就可以跳變一次。真空管改變狀態(開關閉合或斷開)的速度比繼電器快 1 0 0 0倍,在最好的情況下,繼電器狀態的變化大約需 1 毫秒,即千分之一秒。有趣的是,在早期計算機的研究中,速度問題並不是最重要的,這是因為早期計算機總的計算速度與機器從紙帶或電影膠片中讀取程式的速度密切相
關。正是因為計算機是基於這種方式製造的,真空管比繼電器速度快多少也就無關緊要了。

              在2 0世紀 4 0年代初,真空管開始在新的計算機中替換繼電器。直到 1 9 4 5年,晶體管制成。正如繼電器機器稱為機電式計算機,真空管則是第一臺電子計算機的基礎。

              在英國, C o l o s s u s計算機( 1 9 4 3 年開始使用)用於破譯德國的“ E n i g m a”程式碼生成器生成的密碼。為這個專案(和英國以後的一些計算機專案)做出貢獻的人是艾倫· M·圖靈( 1 9 1 2—1 9 5 4 ),他當時由於寫了兩篇很有影響的論文而聞名於世。第一篇論文發表於 1 9 3 7年,其中首先提出了“計算能力”的概念,用以分析計算機可以做到和不能做到的事。他構思出
了現在稱為圖靈機的計算機抽象模型。圖靈寫的第二篇著名論文的主題是人工智慧,他介紹了一個測試機器智慧的方法,現在稱作圖靈測試法。

             在摩爾電氣工程學校, J.Presper Eckert(1919 -1 9 9 5 )和John Mauchly(1907—1 9 8 0 )設計了E N I A C( electronic numerical integrator and computer,電子數字積分器和計算機)。它採用了18 000個真空管,於 1 9 4 5年末完成。純粹按噸位(大約 3 0噸)計算, E N I A C是曾經制造出來的(也許以後也是)最大的計算機。到 1 9 7 7年,你可以在電器行買到更快的計算機。然而,E c k e r t和M a u c h l y的專利卻被 John V. A t a n a s o ff ( 1 9 0 3—1 9 9 5 )給阻撓了。 A t a n a n s o ff在早期曾設
計了一個電子計算機,但它從未很好地工作過。

             E N I A C引起了數學家約翰·馮·諾依曼 ( 1 9 0 3—1 9 5 7 )的興趣。從 1 9 3 0年開始,匈牙利出生的馮·諾依曼就一直住在美國。他是一個令人矚目的人物,因能在腦子裡構思複雜的演算法而享有很高的聲譽,他是普林斯頓高階研究學院的一名數學教授,研究範圍很廣,從量子理論到遊戲理論的應用再到經濟學。

             

             馮 · 諾 依曼 幫 助 設 計了 E N I A C 的後 繼產品 E D VA C( electronic discrete variable automatic computer )。特別是在1 9 4 6年與 Arthur W. B u r k s和 Herman H.Goldstine 合寫的論文《 Preliminary Discussion of the logical Design of an ElectronicComputing instrumert 》中,他描述了有關計算機的幾點功能,這些功能使得 E D VA C比E N I A C更先進。 E D VA C的設計者感覺到在計算機內部應該使用二進位制數,而 E N I A C用的是十進位制數;計算機應該具有儘可能大的儲存器,當程式執行時,這個儲存器可用來儲存程式程式碼和資料;( E N I A C中的情況不是這樣,對 E N I A C進行程式設計是通過斷開開關和插上電纜來進行的。 )指令應該在儲存器中順序存放並用程式計數器來定址,但也應該允許條件轉移。這種設計思想叫作儲存程式概念。

              這種設計思想是重要的革命化的一步,今天稱為馮·諾依曼體系結構,上一章建造的計算機就是典型的馮·諾依曼機器。但馮·諾依曼體系結構也帶來馮·諾依曼瓶頸,馮·諾依曼型機器需要花費大量的時間從儲存器中取出指令來準備執行。應該還記得第 1 7章最後設計的計算機取指令的時間佔整個指令週期的 3 / 4。

              在E D VA C時代,用真空管構建儲存器是不值得的,因而人們使用一些古怪的方法來解決這個問題。一個成功的方法就是水銀延遲線儲存器,它使用 5英尺長的水銀管子。在管子的一端,每隔 1 微秒向水銀髮一個小脈衝。這些脈衝需要 1 毫秒的時間到達管子的另一端(此時,它們像聲波一樣會被檢測到,然後送回到開始的地方),因此每個水銀管可儲存大約 1 0 2 4位資訊。
               直到 2 0世紀 5 0年代中期,磁芯儲存器才開發出來。這種儲存器由大量的環繞著電線的電磁金屬環組成,每個小環儲存 1 位資訊。在磁芯儲存器被其他技術取代後的相當一段時期內,還經常聽到老程式設計師把由處理器訪問的儲存器稱作磁芯。

               在2 0世紀4 0年代,馮·諾依曼並不是唯一一個對計算機的本質進行概念上思考的人。

               克勞德·夏農 ( 1 9 1 6年出生 )是另外一個有著重大影響的思想家。第 11章曾經提到他 1 9 3 8年的碩士論文,論文中確立了開關、繼電器和布林代數之間的關係。 1 9 4 8年,當他在貝爾電話實驗室工作時,他在《 Bell System Technical Journal》上發表了一篇題為《 A Mathematical Theory of Communication》的論文,其中不僅引入了“位”的概念,而且確立了一個現代稱
為“資訊理論”的研究領域。資訊理論涉及在噪聲(經常阻礙資訊傳送)存在的情況下傳送數字資訊以及如何進行資訊補償等問題。 1 9 4 9年,他寫了第 1 篇關於編寫讓計算機下棋的程式的文章; 1 9 5 2年他設計了通過繼電器控制的機械老鼠,這個老鼠可以在迷宮中記住路徑。夏農同時也因為他會騎獨輪車,玩變戲法而在貝爾實驗室很出名。

                Norbert Wi e n e r ( 1 8 9 4- 1 9 6 4 ) 1 8歲時就在哈佛大學取得了數學博士學位,因《 C y b e r n e t i c s , o r Control and Communication in the Animal and Macbine》( 1 9 4 8)一書而聞名於世。他首次使用控制論( C y b e r n e t i c s)這個詞來表示一種把人及動物的生物活動與計算機及機器人的機理聯絡起來的理論。在現代文化裡,廣泛使用 c y b e r-字首表示與計算機相關的東西。更特別的是,成千上萬的計算機通過因特網進行的互連稱作 c y b e r s p a c e(資訊空間) ,這個詞來自科幻小說作家 William Gibson 1984年的小說《 N e u r o m a n c e r》中的詞 c y b e r p u n k。

                1 9 4 8年, E c k e r t - M a u c h l y計算機公司( Remington Rand公司的後繼者)開始開發第一臺商用計算機 U N I VAC(universal automatic computer),並於 1 9 5 1 年完成。第一臺被送往人口普查局。 U N I VA C的首次網路應用是用於 C B S,用來預測 1 9 5 2年的總統選舉結果。 Walter Cronkite稱它為“電腦”。同樣是在 1 9 5 2年, I B M釋出了它的第一個商用計算機系統,即 7 0 1 。

                從此,開始了社團和政府使用計算機的漫長曆史。然而,之所以對這段歷史感興趣可能是因為我們要追蹤另一段歷史軌跡— 即降低計算機造價和大小並且使它進入家庭的軌跡,它開始於 1 9 4 7年一場幾乎不被人注意的電子技術突破。

               貝爾電話實驗室許多年裡都是這樣一個地方:聰明的人可以在此做他感興趣的任何事。所幸的是,他們之中有人對計算機感興趣,如已經提到的 G e o rge Stibitz 和Claude Shannon,他們在貝爾實驗室工作的時候都為早期的計算機作出了突出的貢獻。後來,在 2 0世紀 7 0年代,貝爾實驗室誕生了很有影響的作業系統 U N I X和程式設計語言 C語言,這些在隨後的幾章裡將
要講到。

               1 9 2 5年1 月 1 日,美國電話電報公司正式把它的科學和技術研究部分與商業部分分離,另外建立附屬機構,這樣貝爾實驗室誕生了。貝爾實驗室的主要目的是為了研究能夠提高電話系統性能的技術。幸運的是,它的要求非常含糊,可以包含所有的事情。但在電話系統中,一個明確的長期的目標是:線上路上傳輸的聲音訊號能不失真地放大。

                從1 9 1 2年起,貝爾電話系統就採用了真空管放大器,大量的研究和工程人員著手提高電話系統使用的真空管的效能。儘管這樣,真空管仍然有許多問題。管子體積大,功耗大且最終會燒燬。不過,在當時卻是唯一的選擇。

                1 9 4 7年1 2月 1 6日,當貝爾實驗室的兩個物理學家 John Bardeen(1908 —1 9 9 1 )和 Wa l t e r  B r a t t a i n ( 1 9 0 2—1 9 8 7 )在裝配一個不同型別的放大器時,所有的一切都改變了。這種新型放大器由鍺片— 一種稱作半導體的元素— 和一條金箔構成。一個星期後,他們給他們的上司William Shockley( 1 9 1 0—1 9 8 9)進行了演示。這就是第一個電晶體,一種被人們稱為 2 0世紀最偉大的發明的器件。

                 電晶體不是憑空產生的。 8年前,即 1 9 3 9年1 2月 2 9日, S h o c k l e y在筆記本寫下: “今天我想用半導體而不是真空管做放大器在原理上是可能的。 ”第一個電晶體被髮明以後,隨後許多年它繼續被完善。 1 9 5 6年, S h o c k l e y、 B a r d e e n和B r a t t a i n獲得諾貝爾物理學獎—“因為他們在半導體上的研究並且發明了電晶體。 ”

                 本書的前面談到了導體和絕緣體。之所以稱作導體是因為它們非常容易導電,銅、銀和金都是很好的導體。並非巧合,所有這三種元素都在元素週期表的同一列。

                 前面講過,原子中的電子分佈圍繞在原子核的外層。上述三種導體的特徵是隻有一個單獨的電子在最外層。這個電子很容易與原子的其餘部分分離並自由移動形成電流。與導體相對的是絕緣體,像橡皮和塑料,它們幾乎不能導電。

                鍺和矽元素(還有一些化合物)稱為半導體,並不是因為它們的導電性是導體的一半,而是因為它們的導電性可以用多種方法來控制。半導體最外層有 4個電子,是最外層所能容納電子最大數目的一半。在純半導體中,原子彼此非常穩固地結合在一起,具有與金剛石相似的晶狀結構。這種半導體不是好的導體。

                但是半導體可以摻雜,意思是與某種雜質相混合。半導體很容易與其他雜質結合而變得不純。有一類雜質為原子的結合提供額外的電子,這種半導體叫 N 型半導體( N 表示n e g a t i v e);另一種型別的雜質摻雜生成 P型半導體。

                兩個N型半導體中夾一個 P型半導體可製成放大器,稱作 N P N電晶體,對應的三部分分別是集電極( C o l l e c t o r)、基極( B a s e )和發射極 ( E m i t t e r )。

                下面是一個 N P N電晶體的示意圖:
                基極上的一個小電壓能控制一個很大的電壓經過集電極到發射極。若基極上沒有電壓,它會有效截止電晶體。

               電晶體通常被封裝在一個直徑大約為 1 / 4英寸的小金屬容器裡,有三個引腳伸出:

                電晶體首創了固態電子器件,意思是電晶體不需要真空,可由固體做成,特別是指由半導體和當今最普遍的矽製成。除了比真空管體積更小外,電晶體功耗小,發熱少,並且更耐用。攜帶一個電子管收音機很不方便。電晶體收音機靠小電池供電,並且不像電子管,它不會變熱。對於 1 9 5 4年聖誕節早晨收到禮物的幸運者來說攜帶電晶體收音機已成為可能。那些第一批袖珍電晶體收音機是由德克薩斯儀器公司製造的,該公司是半導體革命中的一個重要公司。

                然而,電晶體的第一個商業應用是助聽器。為了紀念貝爾一生為聾人的貢獻, AT& T公司允許助聽器生產廠家不用付任何專利權稅就可使用電晶體技術。第一臺電晶體電視機出現於1 9 6 0年,而今天,電子管器件幾乎已消失了。 (然而,並未完全消失,一些高保真發燒友及電子吉他手還是喜歡用電子管放大器來放大聲音而不是用電晶體。 )

               1 9 5 6年, S h o c k l e y離開貝爾實驗室成立 S h o c k l e y半導體實驗室。他遷到加利福尼亞的 P a l o A l t o—他的成長之地。他的公司是那裡成立的第一家從事這種工作的公司。後來,其他半導體及計算機公司也在那兒建立了業務,於是舊金山南部的這個地方也就成為現在非正式地稱作矽谷( Silicon Va l l e y)的地方。

                真空管原是為放大訊號而開發的,但它們也用來作為邏輯閘的開關。電晶體也是如此。下面你將會看到一個由電晶體組成的與門在構造上很像用繼電器組成的與門。只有當 A 輸入為1 且B輸入為 1 時,兩個電晶體才都導通,輸出才為 1 。這裡所示的電阻用來防止短路。

               正如你所看到的,下圖連線了兩組電晶體,右邊一個是或門,左邊一個是與門。在與門電路里,上面管子的發射極連線到下面管子的集電極。在或門電路里,兩個電晶體的集電極都連到電源,發射極連到一起:

           因此,我們所學的有關由繼電器構造邏輯閘和其他部件的知識也適用於電晶體。繼電器、電子管和電晶體最初主要用來放大訊號,但也可用同樣的方法連線成邏輯閘來建造計算機。第一臺電晶體計算機制造於 1 9 5 6年,短短几年內,新計算機的設計中就放棄使用電子管了。

           這裡有一個問題:電晶體當然使計算機更可靠,更小和更省電,但電晶體能使計算機的製造更簡單嗎?

           並非如此。雖然電晶體使得在一個小空間裡能安裝更多的邏輯閘,但你還得擔心這些元件的互連。連線電晶體形成邏輯閘像連線繼電器和真空電子管一樣困難,某種程度上,它甚至更困難,因為電晶體較小,不容易掌握。如果想用電晶體建造第 1 7章所建造的計算機及6 4 K B的 R A M陣列,設計工作中的一部分將是設法發明某種能容納所有元件的結構。這些勞動是乏味的,需要在數百萬電晶體之間建立起數百萬連線。

            然而,就像我們所發現的,一些電晶體的連線會重複出現。許多對電晶體幾乎都是先連線成門,門再連線成觸發器、加法器、選擇器或譯碼器,觸發器再組成多位鎖存器或 R A M陣列。如果電晶體事先能連線成通用的結構,那麼組裝一臺計算機就容易多了。

            這種思想應該首先由英國物理學家 G e o ffrey Dummer(1909 出生)在1 9 5 2年5月的一次演講中提出,他說:

            “我想預測一下未來。隨著電晶體的出現及半導體的日益廣泛應用,現在似乎可以設想電子裝置在一個固體塊裡而無需接線。這個塊由隔離、傳導、整理、放大四個層組成,電子功能通過各層的隔離區域直接連線起來。 ”

            然而,真正可用的產品還不得不再等幾年。

           在對D u m m e r的預言毫不知情的情況下, 1 9 5 8年7月,德克薩斯儀器公司的 Jack Kilby(生於1 9 2 3 年)想到了在一個矽片上造出許多電晶體、電阻及其他電子元件的方法。 6個月以後,即 1 9 5 9年1 月, Robert Noyce ( 1 9 2 7—1 9 9 0)也找到了基本上相同的方法。 N o y c e原先曾為S h o c k l e y半導體實驗室工作過,但在 1 9 5 7 年,他和其他 7 位科學家離開實驗室併成立了F a i r c h i l d(仙童)半導體公司。

           在技術史上,同時產生的發明很普遍,可能超出了你的想像。儘管 K i l b y比N o y c e早6個月發明了這項技術,並且德克薩斯儀器公司比仙童公司也早申請專利,但 N o y c e還是首先獲得了專利。法律上的爭鬥隨之而來,但僅過了 1 0年,問題就得到了令他們都滿意的解決。儘管他們從未在一起工作過,但 K i l d y和 N o y c e被認為是積體電路,或稱 I C,更普遍的是叫晶片的共同發明者。

           積體電路要經過複雜的工序才能生產出來,這些工序包括把很薄的矽晶片分層,精確地上塗料,和在不同的區域蝕刻形成微部件。儘管開發一種新的積體電路很昂貴,但收益來自於它的大量生產—生產得越多,就越便宜。

           實際的矽晶片薄且很脆弱,為了保護晶片並提供某種方法使晶片中的部件與別的晶片連線,晶片必須安全地封裝。積體電路的封裝有幾種不同的方式,但通常多采用矩形塑料雙排直插式封裝(或 dual inline package, D I P),有1 4、 1 6或4 0個管腳從旁邊伸出:

            
            這是一個 1 6管腳的晶片。如果你拿著晶片,並使晶片上的凹陷朝左時(如圖),從晶片左下角起環繞到右邊至末端,管腳依次編號為 1 ~1 6,第1 6管腳在左上角。每一邊管腳之間相距

            2 0世紀 6 0年代,空間專案和軍備競賽刺激了早期的積體電路市場。在民用方面,第一個包含有積體電路的商業產品是 1 9 6 4年由 Z e n i t h出售的助聽器。 1 9 7 1 年,德克薩斯儀器公司開始出售第一批袖珍計算器,同時 P u l s a r出售了第一塊數字表(顯然數字手錶中積體電路的封裝完全不同於剛才圖示的例子)。隨後出現了其他很多種包含有積體電路的產品。剛好為 1 / 1 0英寸。

            1 9 6 5年,戈登· E·摩爾(當時在仙童公司,後來是 I n t e l公司的合夥創始人)注意到技術以這樣一種方式在發展: 1 9 5 9年後,可以整合到一塊晶片上的電晶體的數目每年都翻一番。他預測這種趨勢將繼續下去。事實上後來這種趨勢放慢了些,因此摩爾定律(最終這樣命名)修改為預計每 1 8個月在一個晶片上整合的電晶體數量將增長一倍。這仍是一個令人驚異的增長速度,這也就解釋了為什麼家用電腦只用了短短几年好像就已過時了。一些人認為摩爾定律將繼續適用到 2 0 1 5年。

            早期,人們習慣於說小規模積體電路,即 S S I( small-scale integration),指那些少於 1 0個邏輯閘的晶片;中規模積體電路,即 M S I( 1 0~1 0 0個門);大規模積體電路,即 L S I( 1 0 0~5 0 0 0個門) 。隨後的術語為超大規模積體電路,即 V L S I( 5 000 ~50 000 個門);極大規模積體電路,即 S L S I( 5 0 0 0 0~100 000個門);特大規模積體電路,即超過 100 000個門。

            本章的其餘部分和下一章將把時鐘停留在 2 0世紀 7 0年代中期,即第一部《星球大戰》發行前的年代,那時, V L S I剛剛出現,且好幾種技術用來製作構成積體電路的元件,每一種技術有時被稱為一個 I C家族。到 7 0年代中期,兩個“家族”流行開來: T T L和C M O S。

            T T L代表電晶體-電晶體邏輯。 7 0年代中期,如果你是一位數位電路設計工程師(即用 I C來設計大的電路) ,一本 1 . 2 5英寸厚的、德克薩斯儀器公司於 1 9 7 3 年出版的名為《 The TTLData Book for Design Engineer》 ( T T L工程師設計資料手冊)的書(以下簡稱《 T T L資料手冊》 )就會是你書桌上的常客。這是一本關於德克薩斯儀器公司和其他公司出售的 T T L積體電路7 4 0 0系列的完整的參考書,之所以這樣稱呼是因為該家族的 每個積體電路都以開頭是 7 4的數字標識。

           7 4 0 0系列中每一個積體電路由許多預先按特定方式連線的邏輯閘組成。一些具備簡單的預先連線的邏輯閘的晶片可以用來建造更大的元件。還有一些晶片提供通用元件,如:觸發器、加法器、選擇器和譯碼器。

          7 4 0 0系列中第一個積體電路是號碼7 4 0 0本身,它在《T T L資料手冊》裡描述為:“四個雙輸入正與非門”。這意味著這個特定的積體電路包含四個2輸入與非門。它們之所以稱為“正”與非門是因為有一個電壓值與邏輯1對應,沒有電壓值與邏輯0對應。這個積體電路是一個1 4管腳的晶片,資料手冊中的一個小圖展示了管腳對應的輸入和輸出:

            該圖是晶片的俯檢視(管腳在下面),小的凹陷在左邊。

            管腳1 4標為VC C,等同於V符號,它表明是電壓(順便說一下,大寫字母V的雙下標表明是一個電源,下標中的C是指電晶體的集電極輸入,它在內部連線到電源)。管腳7標為G N D,表示接地。在特定電路中所使用的任何積體電路都必須接電源和公共地。

            對於T T L 7 4 0 0系列,VC C必須在4 . 7 5~5 . 2 5 V之間,換句話說,電源電壓必須在5 V±5 %的範圍內。若電壓低於4 . 7 5 V,晶片就無法工作;若超過5 . 2 5 V,晶片則會被燒壞。通常T T L器件不能使用電池供電,即使你剛好有一個5 V的電池,電壓也不可能剛好適合於晶片。T T L通常需要從牆上接入電源。

             7 4 0 0晶片中每一個與非門有兩個輸入和一個輸出,它們獨立工作。前面曾把輸入用1(表明有電壓)和0(表明無電壓)加以區分,實事上與非門的輸入電壓可在0(地)~5 V(VC C)之間變化。T T L中,0~0 . 8 V之間的電壓視為邏輯“ 0”,2~5 V之間的電壓視為邏輯“ 1”,應當避免出現0 . 8~2 V之間的輸入電壓。

             T T L的典型輸出是0 . 2 V代表邏輯“0”,3 . 4 V代表邏輯“1”。由於電壓可能會有點兒變化,積體電路的輸入/輸出有時稱作“高”或“低”,而不是“1”或“ 0”。此外,低電平也可以表示邏輯“1”,高電平也可以表示邏輯“ 0”,這種說法稱為負邏輯。當7 4 0 0晶片稱作“四個雙輸入正與非門”時,“正”就表示上面講到的正邏輯。

             如果T T L的典型輸出是0 . 2 V代表邏輯“ 0”,3 . 4 V代表邏輯“ 1”,則輸出確實是在輸入範圍內,即邏輯“ 0”在0~0 . 8 V、邏輯“ 1”在2~5 V之間,這也是T T L能隔離噪聲的原因。一個“ 1”輸出即使下降1 . 4 V後,電壓仍可以高到作為“ 1”電平輸入;一個“ 0”輸出升高0 . 6 V後,電壓仍可以低到作為“ 0”電平輸入。

             瞭解一個積體電路最重要的事實可能是它的延遲時間,這指的是輸入變化反應到輸出所花費的時間。

            晶片的延遲通常以納秒來計算,納秒縮寫為n s。1納秒非常短暫,千分之一秒為1毫秒,百萬分之一秒為1微秒,十億分之一秒才是1納秒。7 4 0 0晶片與非門的延遲時間要保證少於2 2納秒,也就是0 . 0 0 0 0 0 0 0 2 2秒,或十億分之2 2秒。

            不能感覺納秒的長短不僅僅是你一人,地球上任何人除了對納秒有智力上的理解之外就沒有什麼了。納秒比人所經歷的任何事物要短暫得多,所以它們永遠也不會被理解,任何解釋都只會使納秒變得更難以捉摸。例如,你拿著一本書離你的臉有一英尺遠,那麼1納秒就是光從書到你的眼所用的時間。現在,你能說你對納秒有了更好的認識?

            然而,納秒在計算機中出現是可能的。正如在第1 7章所見,計算機處理器很笨拙地做著簡單的事情—從儲存器中取一個位元組到暫存器,把一個位元組同另一個位元組相加,再把結果存回儲存器。計算機(不是第1 7章中的計算機,而是現在使用的計算機)能做大量事情的唯一原因就是那些操作能迅速執行。引用Robert Noyce的話:“當你理解了納秒之後,在概念上計算機操作就相當簡單了。”

            我們繼續細讀《T T L工程師設計資料手冊》,就會在書中看到許多熟悉的小條目。7 4 0 2晶片有四個雙輸入或非門, 7 4 0 4有六個反相器, 7 4 0 8有四個雙輸入與門, 7 4 3 2有四個雙輸入或門,7 4 3 0有一個8輸入與非門:

            
          圖中縮寫N C表示該引腳沒有連線到內部電路。

          7 4 7 4晶片是聽起來很熟悉的一個晶片,它是“帶預置和清零的雙D型正邊沿觸發器”。如下圖示:
          T T L資料手冊甚至還包含這個晶片的每個觸發器的邏輯圖:

         你會發現這與第1 4章結尾處的圖很相似,只是第1 4章的圖中使用的是或非門。《T T L資料手冊》中的邏輯表也有一點點不同:

         上表中,“H”代表高電平,“L”代表低電平。你也可以把它們想成是1或0。在上述觸發器裡,預置與清零輸入通常為“ 0”,在這裡它們為“1” 

         繼續翻閱《T T L資料手冊》,你會發現7 4 8 3晶片是一個4位二進位制全加器,7 4 1 5 1是一個8 - 1資料選擇器, 7 4 1 5 4是4 - 1 6譯碼器, 7 4 1 6 1是同步4位二進位制計數器, 7 4 1 7 5是四個帶清除功能的D型觸發器。你可以選擇這些晶片中的兩個做一個8位鎖存器。 

       所以現在你該明白從第11章起使用的各種各樣的元件是如何來的了,它們都是從《T T L工程師設計資料手冊》中得來的。

       作為一名數位電路設計工程師,需要花費大量的時間去通讀《T T L資料手冊》,瞭解要使用的T T L晶片的型別。一旦掌握了你所需要的工具,你就可以用T T L晶片實際組裝第1 7章所示例的計算機。把晶片連線起來要比連線電晶體容易得多,然而你可能不想用T T L組成6 4 K B的R A M陣列。在1 9 7 3年的《T T L資料手冊》中,所列最大容量的R A M晶片才2 5 6×1位,需要
2 0 4 8個這種晶片才能組成6 4 K B的R A M!T T L遠不是組織儲存器的最好技術,第2 1章將要更多地談到關於儲存器的事情。

         你可能也想用好一些的振盪器。可以將T T L反相器的輸出端連到輸入端,但使用一個事先可預測頻率的振盪器要更好一些。構造一個這樣的振盪器很容易,就是使用一個石英晶體,在一塊小片上引出兩條線。這些晶體在特定的頻率下產生振盪,通常每秒至少1 0 0萬周。每秒一百萬周稱為兆赫,縮寫為M H z。如果第1 7章所示的計算機是用T T L構造的話,那麼它在1 0 M H z的時鐘頻率下可能會執行地很好。每一條指令需要4 0 0納秒的執行時間。當然,這已經比用繼電器工作時所能想像的要快多了。 

          另一個流行的晶片家族是(現在仍然是) C M O S,它代表由金屬氧化物填充的半導體。如果你是7 0年代中期用C M O S積體電路進行電路設計的業餘愛好者,你可能會使用一本由National Semicondactor(國家半導體公司)出版的參考書,它在你所在地方的電器行就能見到,書名為《CMOS Databook》。此書包含了C M O S積體電路4 0 0 0系列的資訊。

           T T L的電源要求是在4 . 7 5~5 . 2 5伏之間,但C M O S則可以是3~1 8伏之間的任何數值,範圍多麼大呀!此外, C M O S比T T L功耗要小,這就可以使用電池來驅動小型C M O S電路。C M O S的缺陷是速度慢。例如, CMOS 4008 4位全加器在5伏電壓下只能保證7 5 0納秒的延遲。當電源電壓升高時,速度加快—1 0伏時,延遲為2 5 0納秒; 1 5伏時,延遲為1 9 0納秒。但是C M O S裝置不能接近於TTL 4位加法器,TTL 4位加法器的延遲為2 4納秒。(2 5年前,在T T L的速度和C M O S的低功耗之間的權衡是很清楚的,今天,也有低功耗的T T L和高速率的C M O S。)

          實踐上,你可以在塑料麵包板上連線這些晶片進行實驗:

           每一個有5個孔的短行在塑料板下是電導通的。你把晶片插在麵包板上,並使晶片跨在中間的長槽上,管腳插入槽兩邊的孔中。積體電路的每一個管腳都與其他4個孔電連線。你可以將線插入其餘孔中來連線晶片。 

           你也可以使用一種稱為線纏繞的技術使晶片的連線更加牢固。每一個晶片插入帶有長方形柱子的插座上:

           每一個柱子對應於晶片的一個管腳,插座本身也插入打孔的板上。在板的另一邊,你會看到特殊的用線纏繞的插槽緊緊包裹著圍繞柱子的絕緣線。柱子的方形邊緣穿破絕緣層並使它和導線電連線。 

           如果你實際在使用積體電路來構造一個電路,就要使用一塊印刷線路板。以前,這是業餘愛好者可以做的事情。板子上有孔,並覆蓋一層薄的銅箔。首先,你要在需要保護的區域的銅箔上塗上防酸物,並用酸腐蝕其餘部分,然後你把積體電路插座(或積體電路本身)直接焊在板的銅上。由於積體電路之間有許多內部連線,一層銅箔通常是不夠用的,商業製造的印刷線路板有許多內部互連的層。

          到7 0年代早期,已可以在一塊電路板上用積體電路構造一個完整的計算機處理器。把整個處理器做在一塊晶片上已只是時間問題。儘管德克薩斯儀器公司1 9 7 1年為單片計算機申請了專利,但實際的製造榮譽卻屬於I n t e l—一家於1 9 6 8年,由前仙童僱員Robert Noyce 和Gordon Moore 建立的公司。I n t e l的第一個主要產品是1 9 7 0年生產的可儲存1 0 2 4位的儲存器晶片,在當時這是可做在一塊晶片上的最大儲存容量。

          I n t e l在為由日本的B u s i c o m公司生產的可程式設計計算器設計晶片時,決定採用不同的方法。正如I n t e l公司的工程師Ted Hoff寫的:“不是想使他們的裝置成為一個帶有程式設計能力的計算器,而是想使它作為通常目的計算機可程式設計為一個計算器”。這就產生了Intel 4004,第一個“晶片上的計算機”或微處理器。1 9 7 1年11月,4 0 0 4投入使用,它帶有2 3 0 0個電晶體。(根據摩爾定
律,1 8年後微處理器應該有4 0 0 0倍數量的電晶體,即大約1 0 0 0萬個,這是相當準確的預計。)

          有了電晶體的數量,下面將描述4 0 0 4的其他三個很重要的特性。自4 0 0 4誕生以來,這三個指標經常用來作為微處理器相互比較的標準。

        第一, 4 0 0 4是4位的微處理器。這意味著處理器的資料通路寬度只有4位,做加、減法運算時,它一次只處理4位。相比較,第1 7章中開發的計算機有8位資料通路,所以它是8位處理器。正如我們將看到的4位微處理器很快就被8位微處理器所超越,沒有人會停滯不前。7 0年代後期, 1 6位微處理器出現了。回想一樣第1 7章的內容,以及在8位處理器上進行兩個1 6位數
相加所需要的指令程式碼,你就會欣賞1 6位處理器帶給你的好處。8 0年代中期, 3 2位微處理器出現了,並從那以後一直作為家用計算機的主流微處理器。

        第二, 4 0 0 4有最大每秒108 000周的時鐘頻率,即1 0 8 K H z。時鐘頻率是可連線到微處理器並能執行的振盪器的最大頻率。再要快的話,微處理器就可能出錯。到1 9 9 9年,家用計算機微處理器的時鐘頻率已達到5 0 0 M H z—大約4 0 0 4執行速率的5 0 0 0倍。

        第三,4 0 0 4可定址的儲存器是6 4 0個位元組。這看起來是一個小得可笑的數字,然而這和當時可用的儲存晶片的容量是相匹配的。下一章你就會看到,兩年內微處理器可達到6 4 K B的定址空間,這是第1 7章所提及的機器的容量。到1 9 9 9年,I n t e l的微處理器已達6 4 T B的可定址空間,儘管大多數人家用電腦的R A M容量還低於2 5 6 M B。

       這三個數字不會影響一臺計算機的能力。例如,一個4位處理器要進行3 2位數的加法,只要簡單地按4位一次進行。某種意義上,所有數字計算機都是相同的。如果一個處理器的硬體能做別的處理器做不了的,那麼別的處理器可以用軟體實現,最終它們能做同樣的事情。這也就是圖靈1 9 7 3年的論文裡有關計算能力的含義。

       然而,處理器根本的不同是在速度上。同時,速度也是我們為什麼使用計算機的一個重要原因。

       最大時鐘頻率是影響處理器總體速度的一個顯著因素,時鐘頻率決定了每一條指令的執行速度。處理器的資料寬度也影響其執行速度。雖然一個4位處理器可進行3 2位數的加法運算,但它的執行速度不可能與3 2位處理器一樣。然而,令人迷惑的是,處理器可定址的最大儲存器容量也是影響速度的一個因素。最初,定址空間看起來好像與處理器速度無關,而只反映了處理器在執行某些需要大量儲存空間的功能時處理器的能力限度。但處理器通過利用儲存器地址來控制用於儲存或提取資訊的其他媒體,可避開儲存容量的限制。(例如,假設寫到某個儲存地址的每個位元組實際上都是在紙帶上穿孔,從儲存地址讀的每個位元組都是從紙帶上讀。)然而這種做法減慢了整個計算機的處理速度—又是速度問題。

        當然,這三個數字都只是初略地顯示了微處理器的執行速度。這些數字沒有告訴任何有關微處理器內部體系結構或機器碼指令的效率和能力的問題。處理器越來越複雜,許多以前用軟體來實現的普通工作現在可以用微處理器來實現。我們在後面的各章中可看到這種趨勢的一些例子。

        即使所有的數字計算機都具有同等的能力,即使它們只能做與圖靈設計的原始計算機器一樣的工作,處理器的執行速度最終也會影響計算機系統的總體用途。例如,比人類大腦的計算速度還慢的計算機是毫無用處的。當我們在現代計算機的螢幕上看電影時,如果處理器需要花費1分鐘的時間來處理每一幀,我們也是無法忍受的。

         回到2 0世紀7 0年代中期,先不說4 0 0 4的侷限性,但畢竟它是一個開始。1 9 7 2年4月,I n t e l釋出了8 0 0 8—一個8位微處理器,時鐘頻率為2 0 0 K H z,可定址1 6 K B的儲存空間。(僅用三個數來總結一個處理器是多麼容易。)後來,1 9 7 4年5月期間, I n t e l和M o t o r o l a公司同時釋出了對8 0 0 8進行改進的微處理器,這兩種晶片改變了整個世界。