- 計算機系統(tǒng)解密:從理解計算機到編寫高效代碼
- (美)喬納森·E.斯坦哈特
- 2954字
- 2021-09-27 16:57:01
2.3 為位構建硬件
現(xiàn)在你已經(jīng)知道了為什么要在硬件中使用位,那么可以準備學習如何構建硬件了。直接跳到現(xiàn)代的電子實現(xiàn)技術可能讓人望而生畏,所以我將從其他更容易理解的經(jīng)典技術開始討論。雖然其中一些例子已經(jīng)不再應用于如今的計算機,但仍然可能在與計算機并行的系統(tǒng)中遇到,所以這些例子還是值得了解的。
2.3.1 繼電器
早在電子技術發(fā)明之前,電流就已經(jīng)被用來給計算機供能了。丹麥物理學家Hans Christian ?rsted(1777—1851)在1820年發(fā)現(xiàn)了電和磁之間的關系。如果將一束導線卷成線圈,并讓電流通過它,它將變成電磁鐵。電磁鐵可以人為控制磁性有無,并且可以用來移動物體,也可以用來控制水閥,控制水閥這點是大多數(shù)自動噴水滅火系統(tǒng)的工作原理。也有一些巧妙的方法可以利用電磁學來制造馬達。在線圈周圍移動磁鐵能產(chǎn)生電流,這也是發(fā)電機的工作原理。事實上,生活中大部分的電力都是通過這種方式獲得的。切斷電磁鐵的電源就相當于在線圈附近快速揮動磁鐵。這個經(jīng)驗令人震驚,這種效果稱為反電動勢,它是汽車點火線圈為火花塞制造火花的原理,也是電柵欄的工作原理。
繼電器是用電磁鐵控制開關的裝置。圖2-20是單極雙擲繼電器的符號,可以看到它的符號很像開關接在了線圈上。

圖2-20 單極雙擲繼電器原理圖
圖2-21是一個單極單擲繼電器的實例,當沒有電流流經(jīng)線圈時,開關是打開的,所以它被稱為常開繼電器。如果在線圈沒有電流的情況下開關是閉合的,那它就是一個常閉繼電器。

圖2-21 常開單極單擲繼電器
圖2-22所示的繼電器底部的連接線與線圈相連,其余的部分看起來像開關的變體。中間觸點的移動取決于線圈是否通電。我們可以通過圖2-22所示的繼電器來實現(xiàn)邏輯功能。

圖2-22 AND和OR功能的繼電器電路
在圖2-22的上方,可以看到只有當兩個繼電器都被激活時,兩根輸出線才會連接到一起,這就是我們對AND功能的定義。同樣,如圖2-22下方,只要任何一個繼電器被激活,兩條輸出線就會連接在一起,這是OR功能。請注意本圖中的小黑點,在原理圖中,這些小黑點表示導線之間的連接點,沒有小黑點的交叉導線并沒有互相連接。
繼電器可以做一些開關無法做到的事情。例如,我們可以構建實現(xiàn)NOT功能的反相器,而NOT功能非常重要,如果沒有NOT功能,布爾代數(shù)將會受到限制。我們可以用AND電路的輸出驅動OR電路的輸入。正是這種能力,使開關可以控制其他的開關,讓我們可以構建計算機所需的復雜邏輯。
人們用繼電器做了很多驚人的事情。例如,有一種單極10擲步進繼電器,它有兩個線圈。一個線圈每次通電時都會把觸點移到下一個位置,另一個線圈則把觸點移回第一個位置,從而使繼電器復位。滿是步進繼電器的巨大設備曾經(jīng)在撥號時,數(shù)出電話號碼的數(shù)字,從而接通電話。電話程控交換機房是非常嘈雜的地方。步進繼電器也是老式彈球機的魅力所在。
關于繼電器的另一個有趣事實是,它的傳遞函數(shù)的閾值是垂直的;無論如何緩慢地增加線圈上的電壓,都會導致開關總是從一個位置突然移動到另一個位置。這讓孩提時的我感到很神秘,直到我大三學習拉格朗日–漢密爾頓方程時,才了解到傳遞函數(shù)的值在閾值處是未定義的,這點導致了開關的突然移動。
繼電器最大的問題是速度慢、耗電量大,而且如果開關觸點有灰塵(或蟲子),繼電器就會停止工作。事實上,術語bug就是來自1947年哈佛大學Mark Ⅱ計算機的一個錯誤,追根溯源,這個錯誤最后追蹤到了一只困在繼電器中的飛蛾上。另一個有趣的問題來自使用開關觸點來控制其他繼電器。記住,關閉線圈電源的瞬間會產(chǎn)生很高的電壓,而空氣在高電壓下會導電。這種現(xiàn)象往往導致開關觸點產(chǎn)生電火花,進而磨損。由于這些弊端,人們開始尋找能夠做到繼電器能做到的、并且沒有活動部件的構件。
2.3.2 真空管
英國物理學家、電氣工程師John Ambrose Fleming爵士發(fā)明了真空管。他根據(jù)命名為熱電子發(fā)射的原理(如果把某樣東西加熱到足夠高的溫度,電子就會躍遷出來)發(fā)明了真空管。真空管有一個加熱器,可以加熱陰極,其作用就像棒球中的投手。在真空中,電子(棒球)從陰極流向陽極(捕球器)。圖2-23是一些真空管示例。

圖2-23 真空管
電子與磁鐵有一些共同的性質,包括相異的電荷互相吸引,相同的電荷互相排斥。真空管可以包含一個額外的“擊球員”元件,稱為柵極,它可以驅趕來自陰極的電子,防止它們進入陽極。包含三個元件(陰極、柵極和陽極)的真空管稱為三極管。圖2-24展示了三極管的原理圖。

圖2-24 三極管原理圖
加熱器加熱陰極,使電子躍遷。電子會落在陽極上,除非柵極把它們打回去。你可以把柵極看成是開關上的把手。
真空管的優(yōu)點是沒有移動的部件,因此比繼電器快得多。缺點是它們會像燈泡一樣,工作久了就很熱很脆弱。加熱器就像燈泡的燈絲一樣會被燒壞。但與繼電器相比,真空管仍然是一個進步,而且真空管使建造更快更可靠的計算機成為可能。
2.3.3 晶體管
如今,晶體管占據(jù)了主導地位。晶體管類似于真空管,但晶體管是用一種稱為半導體的特殊材料制成的,它可以在導體和絕緣體之間轉換。事實上,這種可轉換特性正是制造不含有加熱器和移動部件的電力閥所需要的。但是晶體管也并不完美。我們可以把它們做得非常非常小,但是偏窄的導體會有更大的電阻,從而會產(chǎn)生很多熱量。如何減少晶體管內的熱量確實是一個問題,因為晶體管內部的半導體很容易融化。
你不需要了解晶體管的所有內部結構,重要的是要了解這一點:晶體管是由某種半導體材料(通常是硅)構成的基質或平板制造的。與齒輪、閥門、繼電器和真空管等不同,晶體管不是單獨制造出來的物體。它們是通過一種稱為光刻法的工藝制造出來的,涉及將晶體管的圖片投射到硅片上并將其顯影。這種工藝適合大規(guī)模生產(chǎn),因為可以將大量的晶體管投射到一個硅片上,將其顯影,然后再切成單個元件。
晶體管有許多不同的類型,但兩個主要類型是雙極結晶體管(Bipolar Junction Transistor, BJT)和場效應晶體管(Field Effect Transistor, FET)。制造這二者的過程涉及摻雜,即在基底材料中注入砷等化學物質來改變其特性。摻雜會產(chǎn)生P型和N型材料的區(qū)域,晶體管的制造包括制作P型和N型夾層。圖2-25顯示了某些類型的晶體管原理圖符號。

圖2-25 晶體管原理圖符號
術語NPN、PNP、N型溝道和P型溝道代表的都是夾層結構。你可以把晶體管想象成一個閥門或開關,柵極(或基極)是手柄,當手柄抬起時,電流從頂部流向底部,這與繼電器線圈移動觸點的方式類似。但雙極晶體管與我們目前所見的開關和閥門不同,它的電流只能向一個方向流動。
可以看到,在FET的符號中,柵極和晶體管的其他部分之間有一個間隙。這個間隙象征著FET是利用靜電工作的,就像利用靜電吸附來控制開關一樣。
金屬氧化物半導體場效應晶體管(Metal-Oxide Semiconductor Field Effect Transistor, MOSFET)是FET的一個變體,由于功耗低,在現(xiàn)代計算機芯片中廣泛應用。N型溝道和P型溝道的變體經(jīng)常以互補對的方式使用,這也是CMOS(Complementary Metal Oxide Semiconductor,互補金屬氧化物半導體)一詞的來源。
2.3.4 集成電路
晶體管使邏輯電路變得更小、更快、更可靠,而且功耗更低。但即使是構建簡單的電路,比如實現(xiàn)AND邏輯功能的電路,仍然需要大量的元件。
1958年,美國電氣工程師Jack Kilby(1923—2005)與美國數(shù)學家、物理學家、飛兆半導體和英特爾的創(chuàng)始人之一Robert Noyce(1927—1990)發(fā)明了集成電路,使這一切發(fā)生了改變。有了集成電路,就可以用制造單個晶體管的成本構建出復雜的電路。集成電路因其外觀而被稱芯片。
正如你所看到的,許多相同類型的電路可以用繼電器、真空管、晶體管或集成電路構造。而隨著每一項新技術的出現(xiàn),這些電路變得更小、更便宜、更節(jié)能。下一節(jié)將介紹為組合邏輯而設計的集成電路。
- Django+Vue.js商城項目實戰(zhàn)
- Spring 5企業(yè)級開發(fā)實戰(zhàn)
- Learning Cython Programming(Second Edition)
- Building a Recommendation Engine with Scala
- Java EE 7 Development with NetBeans 8
- HTML5與CSS3基礎教程(第8版)
- Mastering ArcGIS Enterprise Administration
- Learning YARN
- C# Multithreaded and Parallel Programming
- 3ds Max印象 電視欄目包裝動畫與特效制作
- 零代碼實戰(zhàn):企業(yè)級應用搭建與案例詳解
- Backbone.js Testing
- Visual Basic 程序設計實踐教程
- Implementing Microsoft Dynamics NAV(Third Edition)
- 金融商業(yè)數(shù)據(jù)分析:基于Python和SAS