计算机系统解密:从理解计算机到编写高效代码
上QQ阅读APP看书,第一时间看更新

2.3 为位构建硬件

现在你已经知道了为什么要在硬件中使用位,那么可以准备学习如何构建硬件了。直接跳到现代的电子实现技术可能让人望而生畏,所以我将从其他更容易理解的经典技术开始讨论。虽然其中一些例子已经不再应用于如今的计算机,但仍然可能在与计算机并行的系统中遇到,所以这些例子还是值得了解的。

2.3.1 继电器

早在电子技术发明之前,电流就已经被用来给计算机供能了。丹麦物理学家Hans Christian Ørsted(1777—1851)在1820年发现了电和磁之间的关系。如果将一束导线卷成线圈,并让电流通过它,它将变成电磁铁。电磁铁可以人为控制磁性有无,并且可以用来移动物体,也可以用来控制水阀,控制水阀这点是大多数自动喷水灭火系统的工作原理。也有一些巧妙的方法可以利用电磁学来制造马达。在线圈周围移动磁铁能产生电流,这也是发电机的工作原理。事实上,生活中大部分的电力都是通过这种方式获得的。切断电磁铁的电源就相当于在线圈附近快速挥动磁铁。这个经验令人震惊,这种效果称为反电动势,它是汽车点火线圈为火花塞制造火花的原理,也是电栅栏的工作原理。

继电器是用电磁铁控制开关的装置。图2-20是单极双掷继电器的符号,可以看到它的符号很像开关接在了线圈上。

图2-20 单极双掷继电器原理图

图2-21是一个单极单掷继电器的实例,当没有电流流经线圈时,开关是打开的,所以它被称为常开继电器。如果在线圈没有电流的情况下开关是闭合的,那它就是一个常闭继电器。

图2-21 常开单极单掷继电器

图2-22所示的继电器底部的连接线与线圈相连,其余的部分看起来像开关的变体。中间触点的移动取决于线圈是否通电。我们可以通过图2-22所示的继电器来实现逻辑功能。

图2-22 AND和OR功能的继电器电路

在图2-22的上方,可以看到只有当两个继电器都被激活时,两根输出线才会连接到一起,这就是我们对AND功能的定义。同样,如图2-22下方,只要任何一个继电器被激活,两条输出线就会连接在一起,这是OR功能。请注意本图中的小黑点,在原理图中,这些小黑点表示导线之间的连接点,没有小黑点的交叉导线并没有互相连接。

继电器可以做一些开关无法做到的事情。例如,我们可以构建实现NOT功能的反相器,而NOT功能非常重要,如果没有NOT功能,布尔代数将会受到限制。我们可以用AND电路的输出驱动OR电路的输入。正是这种能力,使开关可以控制其他的开关,让我们可以构建计算机所需的复杂逻辑。

人们用继电器做了很多惊人的事情。例如,有一种单极10掷步进继电器,它有两个线圈。一个线圈每次通电时都会把触点移到下一个位置,另一个线圈则把触点移回第一个位置,从而使继电器复位。满是步进继电器的巨大设备曾经在拨号时,数出电话号码的数字,从而接通电话。电话程控交换机房是非常嘈杂的地方。步进继电器也是老式弹球机的魅力所在。

关于继电器的另一个有趣事实是,它的传递函数的阈值是垂直的;无论如何缓慢地增加线圈上的电压,都会导致开关总是从一个位置突然移动到另一个位置。这让孩提时的我感到很神秘,直到我大三学习拉格朗日–汉密尔顿方程时,才了解到传递函数的值在阈值处是未定义的,这点导致了开关的突然移动。

继电器最大的问题是速度慢、耗电量大,而且如果开关触点有灰尘(或虫子),继电器就会停止工作。事实上,术语bug就是来自1947年哈佛大学Mark Ⅱ计算机的一个错误,追根溯源,这个错误最后追踪到了一只困在继电器中的飞蛾上。另一个有趣的问题来自使用开关触点来控制其他继电器。记住,关闭线圈电源的瞬间会产生很高的电压,而空气在高电压下会导电。这种现象往往导致开关触点产生电火花,进而磨损。由于这些弊端,人们开始寻找能够做到继电器能做到的、并且没有活动部件的构件。

2.3.2 真空管

英国物理学家、电气工程师John Ambrose Fleming爵士发明了真空管。他根据命名为热电子发射的原理(如果把某样东西加热到足够高的温度,电子就会跃迁出来)发明了真空管。真空管有一个加热器,可以加热阴极,其作用就像棒球中的投手。在真空中,电子(棒球)从阴极流向阳极(捕球器)。图2-23是一些真空管示例。

图2-23 真空管

电子与磁铁有一些共同的性质,包括相异的电荷互相吸引,相同的电荷互相排斥。真空管可以包含一个额外的“击球员”元件,称为栅极,它可以驱赶来自阴极的电子,防止它们进入阳极。包含三个元件(阴极、栅极和阳极)的真空管称为三极管。图2-24展示了三极管的原理图。

图2-24 三极管原理图

加热器加热阴极,使电子跃迁。电子会落在阳极上,除非栅极把它们打回去。你可以把栅极看成是开关上的把手。

真空管的优点是没有移动的部件,因此比继电器快得多。缺点是它们会像灯泡一样,工作久了就很热很脆弱。加热器就像灯泡的灯丝一样会被烧坏。但与继电器相比,真空管仍然是一个进步,而且真空管使建造更快更可靠的计算机成为可能。

2.3.3 晶体管

如今,晶体管占据了主导地位。晶体管类似于真空管,但晶体管是用一种称为半导体的特殊材料制成的,它可以在导体和绝缘体之间转换。事实上,这种可转换特性正是制造不含有加热器和移动部件的电力阀所需要的。但是晶体管也并不完美。我们可以把它们做得非常非常小,但是偏窄的导体会有更大的电阻,从而会产生很多热量。如何减少晶体管内的热量确实是一个问题,因为晶体管内部的半导体很容易融化。

你不需要了解晶体管的所有内部结构,重要的是要了解这一点:晶体管是由某种半导体材料(通常是硅)构成的基质或平板制造的。与齿轮、阀门、继电器和真空管等不同,晶体管不是单独制造出来的物体。它们是通过一种称为光刻法的工艺制造出来的,涉及将晶体管的图片投射到硅片上并将其显影。这种工艺适合大规模生产,因为可以将大量的晶体管投射到一个硅片上,将其显影,然后再切成单个元件。

晶体管有许多不同的类型,但两个主要类型是双极结晶体管(Bipolar Junction Transistor, BJT)和场效应晶体管(Field Effect Transistor, FET)。制造这二者的过程涉及掺杂,即在基底材料中注入砷等化学物质来改变其特性。掺杂会产生P型和N型材料的区域,晶体管的制造包括制作P型和N型夹层。图2-25显示了某些类型的晶体管原理图符号。

图2-25 晶体管原理图符号

术语NPN、PNP、N型沟道和P型沟道代表的都是夹层结构。你可以把晶体管想象成一个阀门或开关,栅极(或基极)是手柄,当手柄抬起时,电流从顶部流向底部,这与继电器线圈移动触点的方式类似。但双极晶体管与我们目前所见的开关和阀门不同,它的电流只能向一个方向流动。

可以看到,在FET的符号中,栅极和晶体管的其他部分之间有一个间隙。这个间隙象征着FET是利用静电工作的,就像利用静电吸附来控制开关一样。

金属氧化物半导体场效应晶体管(Metal-Oxide Semiconductor Field Effect Transistor, MOSFET)是FET的一个变体,由于功耗低,在现代计算机芯片中广泛应用。N型沟道和P型沟道的变体经常以互补对的方式使用,这也是CMOS(Complementary Metal Oxide Semiconductor,互补金属氧化物半导体)一词的来源。

2.3.4 集成电路

晶体管使逻辑电路变得更小、更快、更可靠,而且功耗更低。但即使是构建简单的电路,比如实现AND逻辑功能的电路,仍然需要大量的元件。

1958年,美国电气工程师Jack Kilby(1923—2005)与美国数学家、物理学家、飞兆半导体和英特尔的创始人之一Robert Noyce(1927—1990)发明了集成电路,使这一切发生了改变。有了集成电路,就可以用制造单个晶体管的成本构建出复杂的电路。集成电路因其外观而被称芯片

正如你所看到的,许多相同类型的电路可以用继电器、真空管、晶体管或集成电路构造。而随着每一项新技术的出现,这些电路变得更小、更便宜、更节能。下一节将介绍为组合逻辑而设计的集成电路。