计算机组成原理优秀PPT.ppt
2023/4/15计算机学院体系结构中心计算机学院体系结构中心2.5 定点运算器的组成定点运算器的组成2.5.1 逻辑运算计算机中除了进行加、减、乘、除等基本算术运算外,还可对两个或一个逻辑数进行逻辑运算。所谓逻辑数,是指不带符号的二进制数。利用逻辑运算可以进行两个数的比较,或者从某个数中选取某几位等操作。计算机中的逻辑运算,主要是指逻辑非逻辑非、逻逻辑加辑加、逻辑乘逻辑乘、逻辑异逻辑异四种基本运算。2023/4/15计算机学院体系结构中心计算机学院体系结构中心1.逻辑非运算逻辑非运算 逻辑非也称求反求反。对某数进行逻辑非运算,就是按位求它的反,常用变量上方加一横来表示。2.逻辑加运算逻辑加运算两数进行逻辑加,就是按位求它们的“或”,所以逻辑加又称逻辑或逻辑或,常用记号“V”或“”来表示。3.逻辑乘运算逻辑乘运算两数逻辑乘,就是按位求它们的“与”,所以逻辑乘又称“逻辑与逻辑与”,常用记号“”或“”来表示。4.逻辑异运算逻辑异运算对两数进行异或就是按位求它们的模2和,所以逻辑异又称“按位加按位加”,常用记号“”表示。2023/4/15计算机学院体系结构中心计算机学院体系结构中心2.5.2 多功能算术多功能算术/逻辑运算单元逻辑运算单元(ALU)由一位全加器(FA)构成的行波进位加法器,它可以实现补码数的加法或减法运算。但是这种加法/减法器存在两个问题:一是由于串行进位它的运算时间很长。假如加法器由n位全加器构成,每一位的进位延迟时间为20ns,那么最坏状况下,进位信号从最低位传递到最高位而最终输出稳定至少须要n*20ns,这在高速计算中明显是不利的。二是就行波进位加法器本身来说,它只能完成加法或减法两种操作而不能完成逻辑操作。本节我们介绍的多功能算术/逻辑运算单元(ALU)不仅具有多种算术运算和逻辑运算的功能,而且具有先行进位逻辑,从而能实现高速运算。2023/4/15计算机学院体系结构中心计算机学院体系结构中心图图2.10ALU的逻辑结构原理框图的逻辑结构原理框图 2023/4/15计算机学院体系结构中心计算机学院体系结构中心1.基本思想一位全加器(FA)的逻辑表达式为 Fi AiBiCi Ci1 AiBiBiCiCiAi 我们将Ai和Bi先组合成由限制参数S0,S1,S2,S3限制的组合函数Xi和Yi,然后再将Xi,Yi和下一位进位数通过全加器进行全加。这样,不同的限制参数可以得到不同的组合函数,因而能够实现多种算术运算和逻辑运算。2023/4/15计算机学院体系结构中心计算机学院体系结构中心一位算术/逻辑运算单元的逻辑表达式为:Fi XiYiCni Cni1 XiYiYiCniCniXi 上式中进位下标用ni代替原来一位全加器中的i,i代表集成在一片电路上的ALU的二进制位数。对于4位一片的ALU,i0,1,2,3。n代表若干片ALU组成更大字长的运算器时每片电路的进位输入,例如当4片组成16位字长的运算器时,n0,4,8,12。2.逻辑表达式 限制参数S0,S1,S2,S3分别限制输入Ai和Bi,产生Y和X的函数。其中Yi是受S0,S1限制的Ai和Bi的组合函数,而Xi是受S2,S3限制的Ai和Bi组合函数,其函数关系如下表2.4所示。S0 S1 Yi S2 S3 Xi 00011011AiAi BiAi Bi0000110111AiBiAiBiAi表2.4 Xi,Yi与限制参数和输入量的关系2023/4/15计算机学院体系结构中心计算机学院体系结构中心 依据上面所列的函数关系,即可列出Xi和Yi的逻辑表达式 XiS2S3S2S3(AiBi)S2S3(AiBi)S2S3Ai YiS0S1AiS0S1AiBiS0S1AiBi进一步化简并代入前面的求和与进位表达式,可得ALU的某一位逻辑表达式如下(2.36)4位之间接受先行进位公式,依据上式(2.36),每一位的进位公式可递推如下:第0位向第1位的进位公式为 Cn1Y0X0Cn 其中Cn是向第0位(末位)的进位。第1位向第2位的进位公式为 Cn2Y1X1Cn1Y1Y0X1X0X1Cn第2位向第3位的进位公式为 Cn3Y2X2Cn2Y2Y1X2Y0X1X2X0X1X2Cn第3位的进位输出(即整个4位运算进位输出)公式为 Cn4Y3X3Cn3Y3Y2X3Y1X2X3 Y0X1X2X3X0X1X2X3Cn设 GY3Y2X3Y1X2X3Y0X1X2X3 PX0X1X2X3 则 Cn4GPCn (2.37)这样对一片ALU来说,可有三个进位输出。其中G称为进位发生输出,P称为进位传送输出。在电路中多加这两个进位输出的目的,是为了便于实现多片(组)ALU之间的先行进位,为此还需一个协作电路称之为先行进位发生器(CLA)。Cn+4是本片(组)的最终进位输出。逻辑表达式表明,这是一个先行进位逻辑。换句话说第0位的进位输入Cn可以干脆传送到最高位上去,因而可以实现高速运算。用正逻辑表示的4位算术/逻辑运算单元(ALU)的逻辑电路图如下,它是依据上面的原始推导公式用TTL电路实现的。这个期间的商业标号为74181ALU。2023/4/15计算机学院体系结构中心计算机学院体系结构中心2023/4/15计算机学院体系结构中心计算机学院体系结构中心3.算术逻辑运算的实现 上图示中除了S0S3四个限制端外,还有一个限制端,它是用来限制ALU是进行算术运算还是进行逻辑运算的。当0时,对进位信号没有任何影响。此时F 不仅与本位的被操作数Y和操作数X 有关,而且与本位的进位输出,即C 有关,因此0时进行算术操作。当1时,封锁了各位的进位输出,即C 0,因此各位的运算结果F 仅与Y 和X 有关,故 1时进行逻辑操作。2023/4/15计算机学院体系结构中心计算机学院体系结构中心 下图示出了工作于负逻辑和正逻辑操作数方式的74181ALU方框图。由书第55页的功能表可看出,这个器件执行的正逻辑输入/输出方式的一组算术运算和逻辑操作与负逻辑输入/输出方式的一组算术运算和逻辑操作是等效的。图2.11 74181ALU的逻辑电路图和方框图 2023/4/15计算机学院体系结构中心计算机学院体系结构中心 参见书中第49页的表2.5列出了74181ALU的运算功能表,它有两种工作方式。对正逻辑操作数来说,算术运算称高电平操作,逻辑运算称正逻辑操作(即高电平为“1”,低电平为“0”)。对于负逻辑操作数来说,正好相反。由于S0S3有16种状态组合,因此对正逻辑输入与输出而言,有16种算术运算功能和16种逻辑运算功能。同样对于负逻辑输入与输出而言,也有16种算术运算功能和16种逻辑运算功能。2023/4/15计算机学院体系结构中心计算机学院体系结构中心4.两级先行进位的两级先行进位的ALU 前面说过,74181ALU设置了P和G两个本组先行进位输出端。假如将四片74181的P,G输出端送入到74182先行进位部件(CLA),又可实现其次级的先行进位,即组与组之间的先行进位。假设4片(组)74181的先行进位输出依次为P0,G0,G1,P1,P2,G2,P3,G3,那么参考式(2.37)的进位逻辑表达式,先行进位部件74182CLA所供应的进位逻辑关系如下:2023/4/15计算机学院体系结构中心计算机学院体系结构中心CnG0P0Cn CnG1P1CnG1G0P1P0P1Cn CnG2P2CnG2G1P2G0P1P2P0P1P2Cn Cn4 G3P3Cn G3G2P3G1P1P2G0P1P2P3P0P1P2P3CnG*P*Cn其中 P*P0P1P2P3 G*G3G2P3G1P1P2G0P1P2P3依据以上表达式,用TTL器件实现的成组先行进位部件74182的逻辑电路图如下,其中G*称为成组进位发生输出,P*称为成组进位传送输出。2023/4/15计算机学院体系结构中心计算机学院体系结构中心2023/4/15计算机学院体系结构中心计算机学院体系结构中心 下图示出了用两个16位全先行进位部件级联组成的32位ALU逻辑方框图。在这个电路中运用了八个74181ALU和两个74182CLA器件。很明显对一个16位来说,CLA部件构成了其次级的先行进位逻辑,即实现四个小组(位片)之间的先行进位,从而使全字长ALU的运算时间大大缩短。图2.13用两个16位全先行进位部件级联组成的32位ALU2023/4/15计算机学院体系结构中心计算机学院体系结构中心2.5.3 内部总线 由于计算机内部的主要工作过程是信息传送和加工的过程,因此在机器内部各部件之间的数据传送特别频繁。为了削减内部的传送线并便于限制,通常将一些寄存器之间数据传送的通路加以归并,组成总线结构,使不同来源的信息在此传输线上分时传送。依据总线所在位置,总线分为内部总线和外部总线两类。内部总线是指CPU内各部件的连线,而外部总线是指系统总线,即CPU与存储器、I/O系统之间的连线。本节只探讨内部总线。2023/4/15计算机学院体系结构中心计算机学院体系结构中心 按总线的逻辑结构来说,总线可分为单向传送总线和双向传送总线。所谓单向总线就是信息只能向一个方向传送。所谓双向总线就是信息可以分两个方向传送,既可以发送数据,也可以接收数据。下图 2.14(a)是带有缓冲驱动器的4位双向数据总线。其中所用的基本电路就是三态逻辑电路。当“发送”信号有效时,数据从左向右传送。反之当“接收”信号有效时,数据从右向左传送。这种类型的缓冲器通常依据它们如何运用而叫作总线扩展器、总线驱动器、总线接收器等等。2023/4/15计算机学院体系结构中心计算机学院体系结构中心图2.14由三态门组成的双向数据总线2023/4/15计算机学院体系结构中心计算机学院体系结构中心 上图2.14(b)中所示的是带有锁存器的4位双向数据总线。它主要由一个DE触发器和一个三态缓冲器组成。DE触发器是在一个一般D触发器上另加一个E输入端(允许端)而构成的。此处E输入端用以限制D的输入。若E0,即使D为“1”,也不能输入。当接收数据时,E1三态门被禁止,因而数据总线上的数据被接收到锁存器。当发送数据时,E0,三态门被允许,因而锁存器的数据发送至数据总线上。2023/4/15计算机学院体系结构中心计算机学院体系结构中心2.5.4 定点运算器的基本结构定点运算器的基本结构 运算器包括ALU阵列乘除器寄存器多路开关三态缓冲器数据总线等逻辑部件。运算器的设计,主要是围绕ALU和寄存器同数据总线之间如何传送操作数和运算结果进行的。在确定方案时,须要考虑数据传送的便利性和操作速度,在微型机和单片机中还要考虑在硅片上制作总线的工艺。计算机的运算器大体有如下三种结构形式:2023/4/15计算机学院体系结构中心计算机学院体系结构中心1.单总线结构的运算器单总线结构的运算器 总线结构的运算器如下图所示。由于全部部件都接到同一总线上,所以数据可以在任何两个寄存器之间,或者在任一个寄存器和ALU之间传送。假如具有阵列乘法器或除法器,那么它们所处的位置应与ALU相当。对这种结构的运算器来说,在同一时间内,只能有一个操作数放在单总线上。为了把两个操作数输入到ALU,须要分两次来做,而且还须要A,B两个缓冲寄存器。这种结构的主要缺点是操作速度较慢,但是由于它只限制一条总线,故限制电路比较简洁。2023/4/15计算机学院体系结构中心计算机学院体系结构中心2023/4/15计算机学院体系结构中心计算机学院体系结构中心2.双总线结构的运算器双总线结构的运算器 双总线结构的运算器如下图所示。在该结构中,两个操作数同时加到ALU进行运算,只需一次操作限制,而且立刻就可以得到运算结果。图中两条总线各自把其数据送至ALU的输入端。特殊寄存器分为两组,它们分别与一条总线交换数据。这样通用寄存器中的数就可进入到任一组特殊寄存器中去,从而使数据传送更为敏捷。ALU的输出不能干脆加到总线上去。这是因为当形成操作结果的输出时,两条总线都被输入数占据,因而必需在ALU输出端设置缓冲寄存器。为此操作的限制要分两步完成:2023/4/15计算机学院体系结构中心计算机学院体系结构中心第一步:在ALU的两个输入端输入操作数,形成结果并送入缓冲寄存器;其次步:把结果送入目的寄存器。假如在总线1,2和ALU输入端之间再各加一个输入缓冲寄存器,并把两个输入数先放至这两个缓冲寄存器,那么ALU输出端就可以干脆把操作结果送至总线1或总线2上去。2023/4/15计算机学院体系结构中心计算机学院体系结构中心2023/4/15计算机学院体系结构中心计算机学院体系结构中心3.三总线结构的运算器三总线结构的运算器 三总线结构的运算器如下图所示。在三总线结构中,ALU的两个输入端分别由两条总线供应,而ALU的输出则与第三条总线相连。这样算术逻辑操作就可以在一步限制之内完成。由于ALU本身有时间延迟,所以打入输出结果的选通脉冲必需考虑到包括这个延迟。另外设置了一个总线旁路器。假如一个操作数不须要修改而干脆从总线2传送到总线3,那么可以通过限制总线旁路器把数据传出;假如一个操作数传送时须要修改那么就借助于ALU。很明显三总线结构的运算器的特点是操作时间快。2023/4/15计算机学院体系结构中心计算机学院体系结构中心