计算机系统概论第三章.doc
《计算机系统概论第三章.doc》由会员分享,可在线阅读,更多相关《计算机系统概论第三章.doc(15页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第三章 数字逻辑结构 在第一章中,我们提到计算机是由数量巨大的非常简单的结构所组成。例如,Intel的Pentium 微处理器,2000年推向市场,是由超过4千2百万个MOS晶体管制造的。IBM Power PC 750 FX,2002年推出,是由超过3千8百万个MOS晶体管组成。在本章中,我们将解释MOS晶体管作为逻辑单元的工作原理,如何将这些晶体管连接起来组成逻辑门,以及逻辑门是如何被互相连接起来而组成更大的制造计算机所需的单元。在第四章,我们将把这些更大的单元连接起来组成计算机。 首先介绍晶体管。3.1 晶体管今天的大多数计算机,或者说是大多数微处理器(所对应的计算机的核心)是由MOS晶
2、体管组成的。MOS是金属氧化物半导体的英文缩写。关于半导体的电子特性超出了本书的范围,它位于本书所描述的最底层的抽象之下,也就是说,如果晶体管出现差错,我们就受其控制,无法解决该问题了。不过,也不太可能遇到晶体管出现问题的情况。在此,我们只需了解MOS晶体管的两种类型:P型和N型。它们都是进行逻辑运算的,其工作原理与墙上的电开关类似。图3.1显示了最基本的电子电路,包括电源、一个墙上的开关和一盏灯。为了让灯发光,电子必须流动;而为了使电子流动,必须存在一个从电源到灯、再回到电源的闭合电路。通过操作开关可以控制电路的合与开,进而使灯打开或关闭。我们使用一个N型或P型半导体晶体管来代替开关,控制电
3、路的闭合。图3.2是一个N型晶体管的示意图,(a)单独出现的晶体管(b)出现在电路中的晶体管。注意,在图3.2a中的晶体管有三个终端,它们分别被称为栅极、源极和漏极,其命名原因不在本书范围之内。如果N型晶体管的栅极被加以2.9伏电压,从源极到漏极的连接就相当于一段电线。使用电子术语来说就是:在源极和漏极之间存在一个闭合回路,即导通。如果N型晶体管的栅极被加以0伏电压,在源极和漏极之间的连接就被断开,在源极和漏极之间存在一个断路,即截止。图3.2b显示了一个包括一个N型晶体管、一个电池组和一个灯泡的电路。当栅极被加以2.9伏电压时,晶体管就相当于一段导线,从而形成回路,灯泡发光。当栅极被加以0伏
4、电压时,晶体管则相当于一个断路,电路被断开,灯泡不亮。 图3.2c为描述图3.2b中电路的速记表示法。电子工程师通常只显示电源端,而不总是显示出电源和完整的电路。事实上,电源本身对实现完整的电路的贡献是很容易理解的,所以通常不需显示出来。P型晶体管的工作原理与N型晶体管恰恰相反。图3.3是P型晶体管的示意图。当给栅极提供的电压为0伏时,P型晶体管像一段电线,构成闭合回路;当所提供的电压为2.9伏时,就出现断路。因为P型和N型晶体管以互补的方式工作,我们称既包含P型晶体管又包含N型晶体管的电路为CMOS电路,即互补金属氧化物半导体电路。3.2 逻辑门 晶体管之上是逻辑门。也就是说,我们只用MOS
5、晶体管就可以构建基本的逻辑结构。在第二章,我们学习了与、或、非函数的特性。在本章,我们将构建晶体管电路,以实现每一种逻辑函数,相应的电路我们分别称为与门、或门、非门。3.2.1 非门(或反相器)图3.4显示了在计算机中最简单的逻辑结构,它由两个MOS晶体管构成:一个P型晶体管和一个N型晶体管。图3.4a是其电路的示意表示。图3.4b显示了当输入电压为0伏时该电路的工作情况,注意:P型导通而N型截止,因此,输出与2.9伏一端连接。另一方面,如果输入为2.9伏,P型截止而N型导通,输出与地(即0伏)连接。电路的完整表现可以通过列表的方式描述,如图3.4c所示。如果我们使用符号0代替0伏,用符号1代
6、替2.9伏,就得到补或非函数的真值表(图3.4d),与第二章相同。我们已经显示了如何构建第二章所讨论的非函数的电子电路。我们称该电路为非门,或反相器。3.2.2 或门与非或门图3.5显示了一个非或门。图3.5a是实现非或门的电路示意图。它包含两个P型和两个N型晶体管。图3.5b显示了如果A被加以0伏,B被加以2.9伏时电路的表现。在这种情况下,两个P型晶体管下面出现一个断路,输出C与2.9伏的电源不相连。然而,最左边的N型晶体管的作用像一根电线,将输出C与0伏相连。注意如果A和B都被加以0伏,两个P型晶体管导通,输出C被连到2.9伏。同时可以注意到,既然两个N型晶体管的作用都是形成断路,所以C
7、与地不相连。ABC0伏0伏2.9伏0伏2.9伏0伏2.9伏0伏0伏2.9伏2.9伏0伏图3.5非或门如果给A或B提供2.9伏电压,则对应的P型晶体管为断路。那就足够切断从C到2.9伏电源的连接。然而提供给其中一个N型晶体管的栅极的2.9伏则足以使晶体管导通,使得C接地(即0伏)。图3.5c总结了图3.5a中电路的全部特性。它表明给A和B提供4组不同电压的电路特征。这四组分别为A=0伏 B=0伏A=0伏 B=2.9伏A=2.9伏 B=0伏A=2.9伏 B=2.9伏如果使用等价的逻辑值代替电压,就得到图3.5d所示的真值表。注意到C的输出恰恰就是与第二章中讨论的逻辑或函数相反的结果。实际上它是非或
8、函数,其缩写为NOR。我们把实现非或函数的电路叫做非或门。如果我们在输出端增加一个反相器,扩大图3.5a的电路,如图3.6所示,输出D就是逻辑函数或的结果。图3.6a 中的电路就是或门。图3.6b表示了如果输入变量A是0并且输入变量B是1时的电路结果。图3.6c显示了该电路的真值表。3.2.3 与门和非与门电路 图3.7显示了一个与门电路。注意,如果当A、B中有一个输入是0V的电压时,都有C直接连接到2.9V的电源上。C有2.9V的电压表明栅极与C相连的N型晶体管提供了一条从D到地的通路。因此,只要A、B中有一个为0,图3.7电路的输出D就为0。 同时,当A、B中至少有一个被提供0V电压时,表
9、明栅极和A或B相连的两个N型晶体管中至少有一个为断路,因此,C不接地。此外,C为2.9V意味着栅极和C相连的P型晶体管为断路,因此,D不与2.9V相连。 另一方面,当A、B都被供给2.9V的时候,和它们相对应的P型晶体管都是断路。然而,和它们相对应的N型晶体管就像电线,直接使C接地。因为C接地,所以最右端的P型晶体管就像闭合电路,让D有2.9V的电压。 图3.7b使用真值表总结了图3.7a中的电路特性。这个电路就是与门电路。而虚线里的电路(即输出是C)是一个非与门电路。 以上门电路在数字逻辑电路和数字计算机中应用非常普遍。在Pentium 微处理器里有上百万个反相器(非门)。为了方便起见,我们
10、使用图3.8中的标准符号来表示上面的每一种门电路。在反相器、非与门和非或门电路中的圈表示补(即非)函数。 从现在开始,我们将不再画那些显示出单个晶体管的电路,而是使用图3.8中的符号来表示,提升抽象的层次。3.2.4 德摩根定律 图3.9a中可以在进入门电路前先对输入做非函数。考虑两个输入的与门,如果我们把A和B应用了非函数后再输入门,并且与门的输出也取非的效果。与门电路输入前的圈表示A和B在输入与门之前就取了非。 图3.9b显示了A=0,B=1这一输入组合的结构特性。为了方便起见,我们把圈从与门电路的输入和输出上移开。这样,我们就可以很容易的看到每个值经过圈时发生了怎样的变化。 图3.9c采
11、用真值表的方式列出了图3.9a的逻辑电路中全部四种输入组合的特性。注意A取非用表示。 我们可以使用代数式来描述这个电路的特征:我们也可以使用语言来表述这一特征:“只有A和B都为假时,输出才为假”,等价于“A和B至少有一个为真时,输出就为真”。这个等式就是著名的德摩根定律。如果把或门的两个输入都取非,输出也取非,会有类似的结果吗?3.2.5 更大的门 在结束逻辑门这个主题之前,我们应当注意到存在更多输入的与门,或门,非与门,非或门的表示方法。比如,我们可以构建一个三个输入的与门或者四个输入的或门。一个有N个输入的与门仅当所有的输入变量都为1时,输出才为1。只要有一个为0结果就为0。一个有N个输入
12、的或门只要任何一个输入变量为1输出就为1。也就是说仅当所有的输入变量都为0时输出才为0。 图3.10是一个三个输入的与门。图3.10a给出了它的真值表。图3.10b给出了有三个输入的与门的符号表示。 你能画出一个有三个输入的与门的晶体管级的电路吗?一个有四个输入的或门呢?3.3 组合逻辑电路 我们已经理解了基本逻辑门的工作原理,下一步就是构建一些组成计算机微结构的重要组件的逻辑结构。 有两种基本的逻辑结构,一种包括信息的存储,另一种则不包括。在3.4、3.5和3.6节,我们将讨论存储信息的逻辑结构。这一节我们讨论另一种。这些结构有时被称为“判定元件”。通常,它们被称为组合逻辑结构,因为它们的输
13、出是仅由当前输入值的组合决定的。它们的输出不由任何过去的存储在其中的信息决定,因为信息不能被存储在组合逻辑电路中。我们现在来了解译码器,多路选择器,全加法器。3.3.1 译码器图3.11表示一个有两个输入的译码器的逻辑门描述。译码器的特性为:只有一个输出为1,其它全为0。输出为逻辑1的是对应于要被检测的输入组合的输出。通常,译码器有n个输入,2n个输出。被检测的输入组合的输出线被设定,即输出为1,所有其它的输出则为0。在图3.11中,在输入A和B的四种可能的组合中,在任意时刻,只有一个输出为1。在图3.11b中,译码器的输入是10,结果第三根输出线被设定。译码器用来判断如何解释一个位组合。我们
14、将在第五章中看到,在LC-3中每一条指令执行的工作是由一个4位的位组合决定的,它被称为操作码,是指令的一部分。一个4-16的译码器是一个简单的组合逻辑电路,它能识别出每一条指令执行的工作是什么。3.3.2 多路选择器 图3.12a表示一个有两个输入的多路器,或多路选择器的门级描述。这种多路选择器的功能就是选择其中一个输入,并把它连接到输出。选择信号(图3.12中的S)决定哪个输入是连接到输出的。图3.12的多路选择器工作如下:假设S=0,如图3.12b。因为除非所有的输入都为1,否则与门的输出就为0,那么,最右边的与门输出为1。并且,最左边的与门的输出与A的输入相同。那就是说,如果A=0,那么
15、最左边的与门是0;如果A=1,那么输出就为1。因为最右边的与门输出为0,所以对或门不起作用。因此,C处的输出与最左边的与门的输出一样。综上所述,如果S=0,那么C端的输出就是A端的输入。 另一方面,如果S=1,那么B与1做与运算,结果就是或门的输出将是B的值。 总之,C的输出要么与A的输入有关,要么与B的输入有关取决于选择线S的值。我们说S选择多路选择器的来源(A或者B)发送到输出端C。图3.12c显示了一个多路选择器的标准表示方法。 一般说来,一个多路选择器由n条选择线和2n个输入组成。图3.13a表示一个有四个输入的多路选择器的门级描述。它需要两条选择线。图3.13b显示一个四个输入的多路
16、选择器的标准表示方法。 你能构建一个有八个输入的多路选择器的门级表示方法吗?需要多少根选择线?3.3.3 全加法电路在第二章中,我们讨论了二进制加法。那个简单的加法运算与你经常做的十进制加法的算法是一样的,从右向左,一次一列,两个值中的两位和进位作加法,产生一个和位和一个向下一位的进位。区别只是它在1后得到进位而不是在9之后。图3.14是表示两个位操作数的某一列进行二进制加法的结果的真值表。每一列都有三个要做加法的值:两个操作数中各取一位,以及前一列来的进位。我们定义这三位分别为ai,bi和carryi。有两个输出,一个是和(si),另一个是向下一列的进位(carryi+1)。当ai,bi和c
17、arryi中只有一个数是1时,我们能得到和si为1,进位carryi+1为0。如果三个数中有两个等于1,我们能得到和为0而进位为1。如果三个数都等于1,和为3,在二进制的加法中对应和与进位都是1。图3.15是图3.14的真值表的门电路表示。注意图3.15中,对于ai,bi和carryi的8种输入组合之一,都有一个与门产生一个输出1。当输入组合是图3.14中Ci+1的输出为1的相应组合时,或门的输出Ci+1必为1。因此产生输出Ci+1的或门的输入,就是那些相应的组合经过与门产生的输出。类似的,产生输出Si的或门的输入,就是那些图3.14中 Si的输出为1的输入组合,经过与门产生的输出。注意,既然
18、输入组合000对于Si或Ci+1都不会产生值为1的输出,它对应的与门就不是任意一个或门的输入。我们称这个提供了3个输入(ai,bi和carryi)得到两个输出(和si与进到下一列的进位carryi+1)的图3.15中的逻辑电路为全加法器(full adder)。图3.16表示一个能做两个四位的二进制加法的逻辑电路图,由四个图3.15表示的全加法器组成。注意第i列的进位是第i1列进行加法运算的一个输入。3.3.4 可编程逻辑阵列(PLA)图3.17显示的是可以实现一个人想实现的任意逻辑函数的通用组件。这个组件被称为可编程逻辑阵列(PLA)。它由一组与门(被称为与阵列),以及后面的一组或门(被称为
19、或阵列)组成。与门的数目对应于真值表中输入组合(行)的数目。对于n个输入的逻辑函数,我们需要一个拥有2n个输入的与门的PLA。在图3.17中,我们共有23个3个输入的与门。或门的数目对应于真值表中输出的列数。实现算法就是对于真值表的输出列中产生一个输出1的对应的行,就简单的将该与门的输出与或门的输入相连,因此被称为可编程。也就是说,我们通过对与门的输出与或门的输入的连接进行编程,来实现我们想实现的逻辑函数。图3.15显示了8个与门连接到2个或门,因为我们需要3个输入变量来实现2个函数(和与进位)。图3.17显示的PLA可以实现3个变量的任意4种函数,通过适当的将与门的输出连接到或门的输入即可。
20、3.3.5 逻辑完备性(logical completeness)在我们结束组合逻辑电路的主题前,关于组成逻辑电路的组件有个值得注意的特性:逻辑完备性。在3.3.4中,我们想实现的任意逻辑函数都可以通过一个PLA来完成。我们看到PLA只由与门、或门和非门组成。这就意味着,我们想实现的任意逻辑函数,只要提供足够多的与门、或门、非门,都可以完成。我们说门集合与、或、非在逻辑上是完备的,因为我们不需要使用任何其他种类的门就可以实现任何一个真值表的电路。也就是说,由于一定量的与门、或门和非门足以构建实现任意真值表的逻辑电路,所以门集合与、或、非在逻辑上是完备的。门的数目可能很大,但关键是,我们不需要任
21、何其它种类的门就可以实现。3.4 基本存储单元在3.3节开头,我们介绍了两种不同的逻辑结构,一种能够存储信息,另一种不能。我们已经讨论了三个不存储信息的例子:译码器,多路选择器,全加法器。现在我们准备来讨论能够存储信息的逻辑结构。3.4.1 R-S锁存器 存储单元的一个简单例子就是R-S锁存器。它能存储一个比特的信息。R-S锁有很多种实现方式,其中最简单的如图3.18所示。两个有两个输入的非与门连在一起,其中任意一个的输出都是另外一个的一个输入。其余的输入R和S通常被赋以逻辑值1。R-S锁工作如下:我们从所谓的静止状态开始,即S和R输入都为逻辑值1。我们先考虑输出a为1的情况,那也意味A的输入
22、为1(同时我们知道R输入也为1,因为我们在静止状态),b输出一定为0。同时也意味着B的输入为0,因此导致输出a为1。只要R和S保持为1,该电路的状态就不会变。这样我们称R-S锁存储了一个值1(a输出的值)。另一方面,如果我们假设a的输出为0,则A输入必定为0,同时b输出一定为1,这样,接下来,B的输入为1,并结合输入S为1(因为我们在静止状态),这导致a输出的值为0。同样的,只要R和S的输入保持为1,这个电路的状态就不会改变。在这种情况下,我们说R-S锁存储了值0。我们可以通过保持R的值为1并将S的值瞬间设为0的方式把这个锁设为值1。类似地,这个锁可以通过将R瞬间设为0并保持S的值为1被设为0
23、。我们用“设置”来把一个变量设为0或1,如“设为0”或“设为1”。另外,我们常用“清空”来表示把一个变量设为0。如果我们清空S,则a等于1,这将引起A为1。因为R也为1,所以 b的值为0。这引起B的值为0,这样使a的值为1。如果我们把S的值返回到1,它将不会影响a的值,因为B的值仍为0,而且非与门的输入中只有一个值为0就可以确保非与门的输出为1。这样锁在S返回1后很久,仍能存储一个值1。同样的方式我们可以通过把R瞬间地设为0,清空这个锁(把它设为0)。我们也应该注意为了使R-S锁正常地工作,必须小心千万不要把R和S的值同时设为0。如果那种情况发生,则a和b的输出都为1,那么这个锁的最后状态将取
24、决于组成门的晶体管的电子特性而不是取决于被操作的逻辑值。而晶体管的电子特性如何决定最后的状态不属于本书的范围。3.4.2 门控D锁存器(The Gated D Latch)为了更具实用价值,我们有必要控制一个锁存器何时设置,何时清空,有一个简单的方法就是使用门控锁存器。.图3.19展示了一个实现一个门控D锁存器的逻辑电路。它包括在图3.18中显示的R-S锁存器,只是加了两个额外的门,使仅当WE被设置为1时,锁存器才能被设为D输入端的值。WE(Write Enable)代表写使能。当WE没有被设定为1时(即WE等于0), S和R都等于1。因为S和R也是锁存器的输入端,如果它们的值是1,存储在锁存
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机系统 概论 第三
限制150内