《第2章运算方法和运算器课件.ppt》由会员分享,可在线阅读,更多相关《第2章运算方法和运算器课件.ppt(116页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、2.5.1 逻辑运算n计算机中除了进行加、减、乘、除等基本算计算机中除了进行加、减、乘、除等基本算术运算外,还可对两个或一个逻辑数进行逻术运算外,还可对两个或一个逻辑数进行逻辑运算。辑运算。n所谓所谓逻辑数逻辑数是指不带符号的二进制数。利用是指不带符号的二进制数。利用逻辑运算可以进行两个数的比较,或者从某逻辑运算可以进行两个数的比较,或者从某个数中选取某几位等操作。个数中选取某几位等操作。n计算机中的逻辑运算,主要是指计算机中的逻辑运算,主要是指逻辑非逻辑非、逻逻辑加辑加、逻辑乘逻辑乘、逻辑异逻辑异四种基本运算。四种基本运算。2.5.1 逻辑运算(续(续1 1)n逻辑非也称逻辑非也称求反求反。
2、对某数进行逻辑非运算,就是按对某数进行逻辑非运算,就是按位求反位求反,常用变量上方加一横来表示。,常用变量上方加一横来表示。设一个数设一个数表示成:表示成:x0 x1x2 xn 对对求逻辑非,则有:求逻辑非,则有:z0z1z2 zn zi xi(i0,1,2,n)1.逻辑非运算逻辑非运算 2.5.1 逻辑运算(续(续2 2)例例2121:x101001011,x211110000 求求x1,x2 解:解:x1 10110100 x2 000011112.5.1 逻辑运算(续(续4 4)例例2222:10100001,10011011,求求。解:解:1 0 1 0 0 0 0 1 1 0 0 1
3、 1 0 1 1 1 0 1 1 1 0 1 1 即即 101110112.5.1 逻辑运算(续(续5 5)n 对两数进行逻辑乘对两数进行逻辑乘,就是按位求它们的就是按位求它们的“与与”,所以逻辑乘又称所以逻辑乘又称“逻辑与逻辑与”,常用记号常用记号“”或或“”来表示。来表示。n设有两数设有两数和和,它们表示为,它们表示为 x0 x1x2 xn y y0y1y2 yn若若 z0z1z2 zn则则 zi xiyi (i0,1,2,n)3.逻辑乘运算逻辑乘运算 2.5.1 逻辑运算(续(续6 6)例例2323:10111001,11110011,求求。解:解:1 0 1 1 1 0 0 1 1 1
4、 1 1 0 0 1 1 1 0 1 1 0 0 0 1 即即 101100012.5.1 逻辑运算(续(续7 7)对两数进行异就是按位求它们的模对两数进行异就是按位求它们的模2和和,所以逻辑异,所以逻辑异又称又称“按位加按位加”,常用记号,常用记号“”表示。表示。n设有两数设有两数和和:x0 x1x2 xn y y0y1y2 yn若若和和的逻辑异为的逻辑异为:z0z1z2 zn则则 zi xi yi (i0,1,2,n)4.逻辑异运算逻辑异运算 2.5.1 逻辑运算(续(续8 8)例例2323:10101011,11001100,求求。解:解:1 0 1 0 1 0 1 1 1 1 0 0
5、1 1 0 0 0 1 1 0 0 1 1 1 即即 01100111 2.5.1 逻辑运算(续(续9 9)事实上事实上,逻辑加还可以通过逻辑乘和逻辑逻辑加还可以通过逻辑乘和逻辑非来实现:非来实现:i ii ii i =i ii i 同样同样,逻辑乘也可以用逻辑加和逻辑非来逻辑乘也可以用逻辑加和逻辑非来实现实现 :i ii ii i i ii i 2.5.2 多功能算术/逻辑运算单元(ALU)n由一位全加器由一位全加器(FA)构成的行波进位加法器,构成的行波进位加法器,它可以实现补码数的加法运算和减法运算。它可以实现补码数的加法运算和减法运算。n这种加法这种加法/减法器存在两个问题:减法器存在
6、两个问题:一一是是由由于于串串行行进进位位,它它的的运运算算时时间间很很长长。假假如如加加法法器器由由n位位全全加加器器构构成成,每每一一位位的的进进位位延延迟迟时时间间为为20ns,那那么么最最坏坏情情况况下下,进进位位信信号号从从最最低低位位传传递递到到最最高高位位而而最最后后输输出出稳稳定定,至至少少需需要要n*20ns,这这在高速计算中显然是不利的。在高速计算中显然是不利的。n二是就行波进位加法器本身来说,它二是就行波进位加法器本身来说,它只能完成只能完成加法和减法两种操作而不能完成逻辑操作加法和减法两种操作而不能完成逻辑操作。本。本节我们介绍的多功能算术节我们介绍的多功能算术/逻辑运
7、算单元逻辑运算单元(ALU)不仅具有多种算术运算和逻辑运算的功能,而不仅具有多种算术运算和逻辑运算的功能,而且具有先行进位逻辑,从而能实现高速运算。且具有先行进位逻辑,从而能实现高速运算。2.5.2 多功能算术/逻辑运算单元(ALU)续续1 1)一位全加器一位全加器(FA)(FA)的逻辑表达式为:的逻辑表达式为:F Fi iA Ai iBBi iCCi i C Ci i1 1A Ai iB Bi iB Bi iC Ci iC Ci iA Ai i 1.1.基本思想基本思想 将将AiAi和和BiBi先组合成由先组合成由控制参数控制参数S0,S1,S2,S3S0,S1,S2,S3控制的控制的组合函
8、数组合函数XiXi和和YiYi,然后然后再将再将Xi,YiXi,Yi和下一位进位数通过全加器进行和下一位进位数通过全加器进行全加。这样全加。这样,不同的控制参数可以得到不同不同的控制参数可以得到不同的组合函数的组合函数,因而能够实现多种算术运算和因而能够实现多种算术运算和逻辑运算。因此逻辑运算。因此,一位算术一位算术/逻辑运算单元逻辑运算单元的逻辑表达式为:的逻辑表达式为:F Fi iX Xi iYYi iCCn ni iC Cn ni i1 1X Xi iY Yi iY Yi iC Cn ni iC Cn ni iX Xi i图图2.10ALU的逻辑结构原理框图的逻辑结构原理框图2.5.2
9、多功能算术/逻辑运算单元(ALU)续续2 2 上式中进位下标用上式中进位下标用n ni i代替原来全加代替原来全加器中的器中的i i,i i代表集成在一片电路上的代表集成在一片电路上的ALUALU的的二进制位数。对于二进制位数。对于4 4位一片的位一片的ALU,iALU,i0,1,2,30,1,2,3。n n代表若干片代表若干片ALUALU组成更大字长的运算组成更大字长的运算器时每片电路的最低位计数器时每片电路的最低位计数,例如例如当当4 4片组片组成成1616位字长的运算器时位字长的运算器时,n,n0,4,8,120,4,8,12。控制参数控制参数S S0 0,S,S1 1,S,S2 2,S
10、,S3 3 分别控制输入分别控制输入A Ai i和和B Bi i,产生产生Y Y和和X X的函数。其中的函数。其中Y Yi i是受是受S S0 0,S,S1 1控制的控制的A Ai i和和B Bi i的组合函数的组合函数,而而X Xi i是受是受S S2 2,S,S3 3控制的控制的A Ai i和和B Bi i组合函数组合函数,其函数关系如表其函数关系如表2.42.4所示。所示。2.2.逻辑表达式逻辑表达式表表2.4 2.4 与控制参数和输入量的关系与控制参数和输入量的关系Ai 1 101 1Ai+Bi1 0Ai Bi1 0Ai+Bi0 1 Ai Bi0 110 0Ai0 0XiS2 S3Yi
11、S0 S1根据上面所列的函数关系根据上面所列的函数关系,即可列出即可列出Xi和和Yi的逻辑表达式:的逻辑表达式:XiS2S3S2S3(AiBi)S2S3(AiBi)S2S3AiYiS0S1AiS0S1AiBiS0S1AiBi根据上面所列的函数关系,化简根据上面所列的函数关系,化简Yi的逻辑表达式得:的逻辑表达式得:YiS0S1AiS0S1AiBiS0S1AiBiAi(S0S1S0S1BiS0S1Bi)Ai(S0S1(BiBi)S0S1BiS0S1Bi)Ai(S0BiS1Bi)Ai(S0Bi)()(S1Bi)Ai(S0S1S0BiS1Bi)AiS0BiS1Bi根据上面所列的函数关系,化简根据上面
12、所列的函数关系,化简Xi的逻辑表达式得:的逻辑表达式得:XiS2S3S2S3(AiBi)S2S3(AiBi)S2S3AiS2S3S2AiS2BiS3AiS3BiS2S3AiS2S3S2AiS2BiS3BiAi(S3S2)S2S3S2AiS2BiS3BiAiS3AiS2S2S3AiS2BiS3BiAiS3S2S3S2AiAiAiAi(BiBi)S2BiS3BiAiS3BiBiS2(S3AiBi)Ai(S3AiBi)Bi(S3AiBi)(S3AiBi)(S2AiBi)S3AiBiS2AiBiAi 1 101 1Ai+Bi1 0Ai Bi1 0Ai+Bi0 1 Ai Bi0 110 0Ai0 0Xi
13、S2 S3YiS0 S1进一步化简进一步化简可得可得:XiS3AiBiS2AiBiYiAiS0BiS1BiXiYiS3AiBiS2AiBiAiS0BiS1BiYi将将Xi和和Yi代代入前面的进位表达式,可简化为:入前面的进位表达式,可简化为:Cn+i+1YiXiCn+i=S3AiBiS2AiBiAiS0BiS1BiAiS0BiS1BiYi 定点运算器的组成定点运算器的组成综上所述,综上所述,ALU的某一位逻辑表达式如下:的某一位逻辑表达式如下:XiS3AiBiS2AiBiYiAiS0BiS1BiFiX Xi iYYi iCCn ni iCn+i+1YiXiCn+i(2.36)4 4位之间采用先
14、行进位公式位之间采用先行进位公式,根据式根据式(2.362.36),每一每一位的进位公式可递推如下:位的进位公式可递推如下:第第0 0位向第位向第1 1位的进位公式为:位的进位公式为:C Cn n1 1Y Y0 0X X0 0C Cn n其中其中C Cn n是向是向第第0 0位(末位)的进位。位(末位)的进位。第第1 1位向第位向第2 2位的进位公式为:位的进位公式为:C Cn n2 2Y Y1 1X X1 1C Cn n1 1Y Y1 1Y Y0 0X X1 1X X0 0X X1 1C Cn n第第2 2位向第位向第3 3位的进位公式为:位的进位公式为:C Cn n3 3Y Y2 2X X
15、2 2C Cn n2 2Y Y2 2Y Y1 1X X1 1Y Y0 0X X1 1X X2 2X X0 0X X1 1X X2 2C Cn n第第3 3位的进位输出(即整个位的进位输出(即整个4 4位运算进位输出)公式为:位运算进位输出)公式为:C Cn n4 4Y Y3 3X X3 3C Cn n3 3Y Y3 3Y Y2 2X X3 3Y Y1 1X X2 2X X3 3Y Y0 0X X1 1X X2 2X X3 3X X0 0X X1 1X X2 2X X3 3C Cn n定点运算器的组成定点运算器的组成设:设:GY3Y2X3Y1X2X3Y0X1X2X3PX0X1X2X3则:则:Cn
16、4GPCnG G称为称为进位发生输出进位发生输出,P,P称为称为进位传送输出进位传送输出。在电路中多。在电路中多加这两个进位输出的目的加这两个进位输出的目的,是为了便于实现多片(组)是为了便于实现多片(组)ALUALU之间的先行进位之间的先行进位,为此还需一个配合电路为此还需一个配合电路,称之为称之为先先行进位发生器行进位发生器(CLA)(CLA)。C Cn+4n+4是本片是本片(组组)的最后进位输出。逻辑表达式表明的最后进位输出。逻辑表达式表明,这是一个先行进位逻辑。换句话说这是一个先行进位逻辑。换句话说,第第0 0位的进位输入位的进位输入C Cn n可以直接传送到最高位上去可以直接传送到最
17、高位上去,因而可以实现高速运算。因而可以实现高速运算。设:设:GY3Y2X3Y1X2X3Y0X1X2X3PX0X1X2X3则:则:Cn4GPCn定点运算器的组成定点运算器的组成 图图2.11(a)2.11(a)示出了用负逻辑表示的示出了用负逻辑表示的4 4位位算术算术/逻辑运算单元逻辑运算单元(ALU)(ALU)的逻辑电路图的逻辑电路图(CAICAI演示演示),它是根据上面的原始推导公它是根据上面的原始推导公式用式用TTLTTL电路实现的。电路实现的。这个器件的商业标号这个器件的商业标号为为74181ALU74181ALU。M(YM(Y2 2Y Y1 1X X2 2 Y Y0 0X X1 1X
18、 X2 2X X0 0X X1 1X X2 2C Cn n)M M C Cn n3 3M(YM(Y1 1Y Y0 0X X1 1X X0 0X X1 1C Cn n)M M C Cn n2 2Y3Y2X3Y1X2X3Y0X1X2X3GX0X1X2X3PPG+CnG=G+PCn=Cn+4=Cn+4YiAiS0BiS1BiXiS3AiBiS2AiBiM(YM(Y0 0X X0 0C Cn n)M M C Cn n1 1 除了除了S S0 0S S3 3四个控制端外四个控制端外,还有一个控制端还有一个控制端,它使用来控制它使用来控制ALUALU是进行算术运算还是进行逻是进行算术运算还是进行逻辑运算的
19、。辑运算的。当当0 0时时,进行进行算术操作。算术操作。对进位信号没对进位信号没有任何影响。此时有任何影响。此时F F不仅与本位的被操作数不仅与本位的被操作数Y Y和操和操作数作数X X有关有关,而且与本位的进位输出而且与本位的进位输出,即即C C有关。有关。当当1 1时时,进行进行逻辑操作。逻辑操作。封锁了各位的进封锁了各位的进位输出位输出,即即C C 0,0,各位的运算结果各位的运算结果F F仅与仅与Y Y和和X X有关。有关。3.算术逻辑运算的实现算术逻辑运算的实现 2.5.2多功能算术/逻辑运算单元(ALU)续续8 8 图图2.11(b)2.11(b)示出了工作于负逻辑和正逻辑示出了工
20、作于负逻辑和正逻辑操作数方式的操作数方式的74181ALU74181ALU方框图。显然方框图。显然,这个器这个器件执行的正逻辑输入件执行的正逻辑输入/输出方式的一组算术运输出方式的一组算术运算和逻辑操作与负逻辑输入算和逻辑操作与负逻辑输入/输出方式的一组输出方式的一组算术运算和逻辑操作是等效的。算术运算和逻辑操作是等效的。表表2.52.5列出列出了了74181ALU74181ALU的运算功能表的运算功能表,它有两种工它有两种工作方式。对正逻辑操作数来说作方式。对正逻辑操作数来说,算术运算称算术运算称高电平操高电平操作作,逻辑运算称逻辑运算称正逻辑操作正逻辑操作(即高电平为即高电平为“1”,1”
21、,低电平低电平为为“0”)0”)。对于负逻辑操作数来说。对于负逻辑操作数来说,正好相反。由于正好相反。由于S S0 0S S3 3有有1616种种状态组合状态组合,因此对正逻辑输入与输出而言因此对正逻辑输入与输出而言,有有1616种算术运算功能和种算术运算功能和1616种逻辑运算功能。同样种逻辑运算功能。同样,对于负对于负逻辑输入与输出而言逻辑输入与输出而言,也有也有1616种算术运算功能和种算术运算功能和1616种种逻辑运算功能。逻辑运算功能。表表2.5 74181ALU算术算术/逻辑运算功能表逻辑运算功能表 注意:注意:表表2.52.5中算术运算操作是用补码表示法来表示中算术运算操作是用补
22、码表示法来表示的。其中的。其中“加加”是指是指算术加算术加,运算时要考虑进位运算时要考虑进位,而而符号符号“”是指是指“逻辑加逻辑加”。其次。其次,减法是用减法是用补码补码方方法法进行的进行的,其中数的反码是内部产生其中数的反码是内部产生的的,而结果输出而结果输出“A A减减B B减减1 1”,因此做减法时需在最末位产生一个因此做减法时需在最末位产生一个强强迫进位迫进位(加加1)1),以便产生以便产生“A A减减B B”的结果。的结果。另外另外,“A AB B”输出端可指示两个数相等输出端可指示两个数相等,因此因此它与其他它与其他ALUALU的的“A AB B”输出端按输出端按“与与”逻辑连接
23、逻辑连接后后,可以检测两个数的可以检测两个数的相等相等条件。条件。2.5.2多功能算术/逻辑运算单元(ALU)续续13134.两级先行进位的两级先行进位的ALU 74181ALU74181ALU设置了设置了P P和和G G两个本组先行进位输出两个本组先行进位输出端。如果将四片端。如果将四片7418174181的的P,GP,G输出端送入到输出端送入到7418274182先行进位部件(先行进位部件(CLACLA),又可实现第二级的先行进又可实现第二级的先行进位位,即组与组之间的先行进位。即组与组之间的先行进位。假设假设4 4片(组片(组)7418174181的先行进位输出依次为的先行进位输出依次为
24、P P0 0,G,G0 0,G,G1 1,P P1 1,P,P2 2,G,G2 2,P,P3 3,G,G3 3,74182CLA,74182CLA所提供的进位所提供的进位逻辑关系如下:逻辑关系如下:2.5.2多功能算术/逻辑运算单元(ALU)续续1414 C Cn nG G0 0P P0 0C Cn nC Cn nG G1 1P P1 1C Cn nG G1 1G G0 0P P1 1P P0 0P P1 1C Cn nC Cn nG G2 2P P2 2C Cn nG G2 2G G1 1P P2 2G G0 0P P1 1P P2 2P P0 0P P1 1P P2 2C Cn n (2.
25、38)(2.38)C Cn n4 4 G G3 3P P3 3C Cn nG G3 3G G2 2P P3 3G G1 1P P2 2P P3 3G G0 0P P1 1P P2 2P P3 3P P0 0P P1 1P P2 2P P3 3C Cn nG G*P P*C Cn n其中:其中:成组进位传送输出:成组进位传送输出:P*P0P1P2P3成组进位发生输出:成组进位发生输出:G*G3G2P3G1P2P3G0P1P2P3 根据以上表达式根据以上表达式,用用TTLTTL器件实现的成组器件实现的成组先行进位部件先行进位部件7418274182的逻辑电路图如的逻辑电路图如图图2.122.12所
26、所示示 其中其中G G*称为称为成组进位发生输出成组进位发生输出,P P*称为称为成组成组进位传送输出进位传送输出。CAIP*=P0P1P2P3=P0+P1+P2+P3G*=G3G2P3G1P2P3G0P1P2P3=G3(G2P3)(G1P2P3)(G0P1P2P3)=G3P3P2G2G3P1G1G2G3G0G1G2G32.5.2多功能算术/逻辑运算单元(ALU)续续1515n如何用若干个如何用若干个74181ALU位片,与配套的位片,与配套的74182 CLA在一起,构成一个全字长的在一起,构成一个全字长的ALU。n下图示出了用两个下图示出了用两个16位全先行进位部件级联组成位全先行进位部件
27、级联组成的的32位位ALU逻辑方框图。在这个电路中使用了逻辑方框图。在这个电路中使用了8个个74181ALU和和2个个74182CLA器件。对一个器件。对一个16位位来说,来说,CLA部件构成了第二级的先行进位逻辑,即部件构成了第二级的先行进位逻辑,即实现四个小组(位片)之间的先行进位,从而使全实现四个小组(位片)之间的先行进位,从而使全字长字长ALU的运算时间大大缩短。的运算时间大大缩短。图图2.132.13用两个用两个1616位全先行进位部件级联组成位全先行进位部件级联组成的的3232位位ALUALU(组内先行进位,组间串行进位组内先行进位,组间串行进位)进位同时生成进位同时生成用两级CL
28、A(74182)级联组成的6464位具有全先行进位的位具有全先行进位的ALUALU由于计算机内部的由于计算机内部的主要工作过程主要工作过程是是信息传送和信息传送和加工加工的过程的过程,因此在机器内部各部件之间的数据因此在机器内部各部件之间的数据传送非常频繁。为了传送非常频繁。为了减少减少内部的传送线并便于内部的传送线并便于控制控制,通常将一些寄存器之间数据传送的通路加通常将一些寄存器之间数据传送的通路加以归并以归并,组成组成总线结构总线结构,使不同来源的信息在此,使不同来源的信息在此传输线上传输线上分时传送分时传送。(总线是计算机内各部件之总线是计算机内各部件之间传送信息的公用的一组连线间传送
29、信息的公用的一组连线)2.5.3 内部总线2.5.3 内部总线(续续1)n根据总线所在位置,总线分为根据总线所在位置,总线分为内部总线内部总线和和外部总外部总线线两类。两类。n内部总线内部总线是指是指CPU内各部件的连线内各部件的连线n外部总线外部总线是指系统总线,即是指系统总线,即CPU与存储器、与存储器、I/O系统之间的连线。系统之间的连线。n本节只讨论内部总线。本节只讨论内部总线。2.5.3 内部总线(续续2)n按总线的逻辑结构来说,总线可分为按总线的逻辑结构来说,总线可分为单向传送总单向传送总线线和和双向传送总线双向传送总线。n所谓所谓单向总线单向总线,就是信息只能向一个方向传送,就是
30、信息只能向一个方向传送n所谓所谓双向总线双向总线,就是信息可以分两个方向传送,就是信息可以分两个方向传送,既可以发送数据,也可以接收数据。既可以发送数据,也可以接收数据。2.5.3 内部总线(续续3)图图2.14(a)2.14(a)是带有缓冲驱动器的是带有缓冲驱动器的4 4位双向数据总线。位双向数据总线。其中所用的基本电路就是三态逻辑电路。其中所用的基本电路就是三态逻辑电路。当当“发送发送”信号有效时信号有效时,数据从左向右传送。数据从左向右传送。当当“接收接收”信号有效时信号有效时,数据从右向左传送。数据从右向左传送。这种类型的缓冲器通常根据它们的不同用途而分这种类型的缓冲器通常根据它们的不
31、同用途而分别称为别称为总线扩展器总线扩展器、总线驱动器总线驱动器、总线接收器总线接收器等等等等。发送发送接收接收发送发送接收接收 若若E E0,0,触发器触发器Q Q保保持原值,数据持原值,数据D D被封被封锁,不接收锁,不接收。而三态而三态门被打开,锁存器的门被打开,锁存器的数据经三态门数据经三态门发送发送到到数据总线数据总线D D上。上。若若E E1 1,触发器接触发器接收数据收数据D D,Q=DQ=D。而三而三态门被禁止态门被禁止,因而数因而数据总线据总线D D上的数据只上的数据只能被能被接收接收到锁存器。到锁存器。E E输入端控制输入端控制D D的输入的输入发送发送接收接收 图图2.1
32、4(b)2.14(b)所示的是带有锁存器所示的是带有锁存器的的4 4位双向数据总位双向数据总线。它主要由一个线。它主要由一个DEDE触发器和一个三态缓冲器组成。触发器和一个三态缓冲器组成。DEDE触发器是在一个普通触发器是在一个普通D D触发器上另加一个触发器上另加一个E E输入端输入端(允许端)而构成的。此处(允许端)而构成的。此处E E输入端用以控制输入端用以控制D D的输入。的输入。若若E E0,0,触发器的输入触发器的输入D D被封锁,即使被封锁,即使D D为为“1 1”,也不也不能能输入。输入。当接收数据时当接收数据时,E,E1 1,三态门被禁止三态门被禁止,因而数据总因而数据总线上
33、的数据只能被线上的数据只能被接收接收到锁存器。到锁存器。当发送数据时当发送数据时,E,E0 0,触发器的输入触发器的输入D D被封锁,而被封锁,而三态门被打开,因而锁存器的数据经三态门三态门被打开,因而锁存器的数据经三态门发送发送到数到数据总线上。据总线上。2.5.4 定点运算器的基本结构 n 运算器包括运算器包括ALU阵列乘除器阵列乘除器寄存器寄存器多路开关多路开关三态缓冲器三态缓冲器数据总线等逻辑部件数据总线等逻辑部件。n运算器的设计,主要是围绕运算器的设计,主要是围绕ALU和寄存器同数据总和寄存器同数据总线之间如何传送操作数和运算结果进行的。线之间如何传送操作数和运算结果进行的。n在决定
34、方案时,需要考虑数据传送的方便性和操作在决定方案时,需要考虑数据传送的方便性和操作速度,在微型机和单片机中还要考虑在硅片上制速度,在微型机和单片机中还要考虑在硅片上制作总线的工艺。作总线的工艺。n 计算机的运算器大体有如下三种结构形式计算机的运算器大体有如下三种结构形式2.5.4 定点运算器的基本结构(续续1)1)1.单总线结构的运算器单总线结构的运算器 单总线结构的运算器如单总线结构的运算器如(a)(a)所示。所有部件都接所示。所有部件都接同一总线上同一总线上,所以数据可以在任何两个寄存器之所以数据可以在任何两个寄存器之间间,或者在任一个寄存器和或者在任一个寄存器和ALUALU之间传送。如果
35、具之间传送。如果具有阵列乘法器或除法器有阵列乘法器或除法器,那么它们所处的位置应那么它们所处的位置应与与ALUALU相当。相当。在同一时间内在同一时间内,只能有一个操作数放在只能有一个操作数放在单总线上。为了把两个操作数输入到单总线上。为了把两个操作数输入到ALU,ALU,需要分需要分两次来做两次来做,而且还需要而且还需要A,BA,B两个缓冲寄存器。这种两个缓冲寄存器。这种结构的主要结构的主要缺点缺点是操作速度较慢。是操作速度较慢。注意到注意到:虽然在这种结构中,输入数据和操作结果需虽然在这种结构中,输入数据和操作结果需要要三次串行的选通三次串行的选通操作操作,但它并不会对每种指令都但它并不会
36、对每种指令都增加很多执行时间。只有在对全都是增加很多执行时间。只有在对全都是CPUCPU寄存器中寄存器中的两个操作数的两个操作数进行操作时进行操作时,单总线结构的运算器才单总线结构的运算器才会造成一定的时间损失。但是由于它只控制一条会造成一定的时间损失。但是由于它只控制一条总线总线,故故控制电路比较简单控制电路比较简单。2.5.4 定点运算器的基本结构(续续2)2)n双总线结构的运算器如双总线结构的运算器如(b)所示。所示。n 在这种结构中,两个操作数同时加到在这种结构中,两个操作数同时加到ALU进行运算,只进行运算,只需一次操作控制,而且马上就可以得到运算结果需一次操作控制,而且马上就可以得
37、到运算结果n两条总线各自把其数据送至两条总线各自把其数据送至ALU的输入端。特殊寄存器分的输入端。特殊寄存器分为两组,分别与一条总线交换数据。通用寄存器中的数就为两组,分别与一条总线交换数据。通用寄存器中的数就可进入到任一组特殊寄存器中,使数据传送更为灵活。可进入到任一组特殊寄存器中,使数据传送更为灵活。nALU的输出不能直接加到总线上去。的输出不能直接加到总线上去。因为因为,当形成操作结,当形成操作结果的输出时,两条总线都被输入数占据,因而必须在果的输出时,两条总线都被输入数占据,因而必须在ALU输出端设置缓冲寄存器。输出端设置缓冲寄存器。2.双总线结构的运算器双总线结构的运算器 在双总线结
38、构的运算其中,操作的控制要分在双总线结构的运算其中,操作的控制要分两步完成两步完成:1.1.在在ALUALU的两个输入端输入操作数的两个输入端输入操作数,形成结果形成结果并送入缓冲寄存器并送入缓冲寄存器;2.2.把结果送入目的寄存器。假如在总线把结果送入目的寄存器。假如在总线1,21,2和和ALUALU输入端之间再各加一个输入端之间再各加一个输入缓冲寄存器输入缓冲寄存器,并并把把两个输入数先放至这两个缓冲寄存器两个输入数先放至这两个缓冲寄存器,那么那么,ALU,ALU输输出端就可以直接把操作结果送至出端就可以直接把操作结果送至 总线总线1 1或或总线总线2 2上上去。去。2.5.4 定点运算器
39、的基本结构(续续3)3)nALU的输入端分别由两条总线供给,ALU的输出与第3三条总线相连。运算操作可以在一步控制内完成。n 由于ALU本身有时间延迟,所以打入输出结果的选通脉冲必须考虑到包括这个延迟。n总线旁路器。如果一个操作数不需要修改,而直接从总线2传送到总线3,可以通过控制总线旁路器把数据传出;如果一个操作数传送时需要修改,那么就借助于ALU。n三总线结构的运算器的特点是操作时间快。三总线结构的运算器的特点是操作时间快。3.三总线结构的运算器三总线结构的运算器 2.6 浮点运算方法和浮点运算器n2.6.1 浮点加法、减法运算n2.6.2 浮点乘法、除法运算n2.6.3 浮点运算流水线n
40、2.6.4 浮点运算器实例2.6.1 浮点加法、减法运算 设有两个浮点数设有两个浮点数和和,它们分别为:它们分别为:2 2E EM M2 2E EM M其中其中E E和和E E分别为数分别为数和和的阶码的阶码,M M和和M M为数为数和和的尾数。的尾数。两浮点数进行加法和减法的运算规则是:两浮点数进行加法和减法的运算规则是:(M M2 2E EE EM M)2 2E E,E E E E2.6.1 浮点加法、减法运算(续续1)1)n完成浮点加减运算的操作过程大体分为四步:完成浮点加减运算的操作过程大体分为四步:1.0 操作数的检查;操作数的检查;2.比较阶码大小并完成对阶;比较阶码大小并完成对阶
41、;3.尾数进行加或减运算;尾数进行加或减运算;4.结果规格化并进行舍入处理。结果规格化并进行舍入处理。n浮点加减运算的操作流程浮点加减运算的操作流程 浮点运算浮点运算0操作数检查操作数检查对阶操作对阶操作尾数相加尾数相加(CAICAI演示演示)2.6.1 浮点加法、减法运算(续续2)2)0 操作数检查操作数检查n浮点加减运算过程比定点运算过程复杂。如果判知浮点加减运算过程比定点运算过程复杂。如果判知两个操作数两个操作数或或中有一个数为中有一个数为0,即可得知运算,即可得知运算结果而没有必要再进行后续的一系列操作以节省结果而没有必要再进行后续的一系列操作以节省运算时间。运算时间。n0操作数检查步
42、骤则用来完成这一功能。操作数检查步骤则用来完成这一功能。2.6.1 浮点加法、减法运算(续续3)3)比较阶码大小并完成对阶比较阶码大小并完成对阶n两浮点数进行加减,首先要看两数的阶码是否相两浮点数进行加减,首先要看两数的阶码是否相同,即小数点位置是否对齐。若二数阶码相同,同,即小数点位置是否对齐。若二数阶码相同,表示小数点是对齐的,就可以进行尾数的加减运表示小数点是对齐的,就可以进行尾数的加减运算。若二数阶码不同,表示小数点位置没有对齐,算。若二数阶码不同,表示小数点位置没有对齐,必须使二数阶码相同,这个过程叫作必须使二数阶码相同,这个过程叫作对阶对阶。n要对阶,首先应求出两数阶码要对阶,首先
43、应求出两数阶码E和和E之差,即之差,即 E EE2.6.1 浮点加法、减法运算(续续4)4)nE 0,表示表示EE,两数阶码相等;两数阶码相等;nE 0,表示表示E0,表示表示EE。n当当EE 时,通过尾数的移动以改变时,通过尾数的移动以改变E或或E使之相等使之相等n原则上,既可以通过原则上,既可以通过M移位以改变移位以改变E来达到来达到EE,也可以通过,也可以通过M移位以改变移位以改变E来实现来实现EE。但是但是,由于浮点表示的数多是规格化的由于浮点表示的数多是规格化的,尾数尾数左移左移会引起会引起最高有效位最高有效位的丢失的丢失,造成造成很大误差很大误差。尾数。尾数右移右移虽引起虽引起最低
44、有效位最低有效位的丢失的丢失,但造成但造成误差较小误差较小。因此。因此,对阶操作规定使尾数对阶操作规定使尾数右移右移,尾数右移后阶码作相应增尾数右移后阶码作相应增加加,其数值保持不变。显然其数值保持不变。显然,一个增加后的阶码与另一个增加后的阶码与另一个阶码相等一个阶码相等,增加的阶码的一定是小阶。因此在对增加的阶码的一定是小阶。因此在对阶时阶时,总是使总是使小阶向大阶看齐小阶向大阶看齐,即小阶的尾数向右移即小阶的尾数向右移位位(相当于小数点左移)每右移一位相当于小数点左移)每右移一位,其阶码加其阶码加1,1,直直到两数的阶码相等为止到两数的阶码相等为止,右移的位数等于阶差右移的位数等于阶差E
45、 E。2.6.1 浮点加法、减法运算(续续5)5)尾数求和运算尾数求和运算n对阶结束后,即可进行尾数的求和运算。对阶结束后,即可进行尾数的求和运算。不论加法运算还是减法运算,都按加法不论加法运算还是减法运算,都按加法进行操作,其方法与定点加减法运算完进行操作,其方法与定点加减法运算完全一样。全一样。2.6.1 浮点加法、减法运算(续续6)6)结果规格化结果规格化n在浮点加减运算时,尾数求和的结果也可以得到在浮点加减运算时,尾数求和的结果也可以得到01.或或10.,即两符号位不等,这在即两符号位不等,这在定点加减法运算中称为溢出,是不允许的。但在定点加减法运算中称为溢出,是不允许的。但在浮点运算
46、中,它表明尾数求和结果的绝对值大于浮点运算中,它表明尾数求和结果的绝对值大于1,向左破坏了规格化。此时将运算结果右移以,向左破坏了规格化。此时将运算结果右移以实现规格化表示,称为实现规格化表示,称为向右规格化,简称右规向右规格化,简称右规。规则是规则是:尾数右移:尾数右移1位,阶码加位,阶码加1。n尾数不是尾数不是1.M形式时,需向左规格化,简称左规形式时,需向左规格化,简称左规。2.6.1 浮点加法、减法运算(续续7)7)舍入处理舍入处理n在对阶或向右规格化时,尾数要向右移位,被右移在对阶或向右规格化时,尾数要向右移位,被右移的尾数的低位部分会被丢掉,从而造成一定误差,的尾数的低位部分会被丢
47、掉,从而造成一定误差,因此要进行因此要进行舍入处理舍入处理。n简单的舍入方法有两种:简单的舍入方法有两种:n一种是一种是“0舍舍1入入”法,即如果右移时被丢掉数法,即如果右移时被丢掉数位的最高位为位的最高位为0则舍去,则舍去,1则将尾数的末位加则将尾数的末位加“1”。n另一种是另一种是“恒置恒置1”法,即只要数位被移掉,就法,即只要数位被移掉,就在尾数的末尾恒置在尾数的末尾恒置1。2.6.1 浮点加法、减法运算(续续8)8)nIEEE754标准中,舍入处理提供了标准中,舍入处理提供了四种可选方法四种可选方法:n就近舍入就近舍入 就是通常所说的就是通常所说的“四舍五入四舍五入”。例如,尾数超出规
48、定的例如,尾数超出规定的23位的多余位数字是位的多余位数字是10010(10000),多余位的值超过规定的最低,多余位的值超过规定的最低有效位值的一半有效位值的一半(16),故最低有效位应增,故最低有效位应增1。若多余的若多余的5位是位是01111(10000),则简单的截,则简单的截尾即可。尾即可。对多余的对多余的5位位10000这种特殊情况:若最低有效这种特殊情况:若最低有效位为位为0则截尾;若为则截尾;若为1,则向上进一位使其变为,则向上进一位使其变为 0。2.6.1 浮点加法、减法运算(续续9)9)n朝朝0舍入舍入 朝数轴原点方向舍入,就是简单的截尾。朝数轴原点方向舍入,就是简单的截尾
49、。无论尾数是正还是负,截尾都使取值的绝对值比无论尾数是正还是负,截尾都使取值的绝对值比原值的绝对值小。这种方法容易导致误差积累。原值的绝对值小。这种方法容易导致误差积累。n朝朝舍入舍入 对正数,只要多余位不全为对正数,只要多余位不全为0则向最低则向最低有效位进有效位进1;对负数,则是简单的截尾。;对负数,则是简单的截尾。n朝朝舍入舍入 处理方法正好与处理方法正好与 朝朝舍入情况相反。舍入情况相反。对正数,只要多余位不全为对正数,只要多余位不全为0则简单截尾;对负数,则简单截尾;对负数,向最低有效位进向最低有效位进1。2.6.1 浮点加法、减法运算(续续10)10)浮点数的溢出浮点数的溢出n当机
50、器浮点数值大于最大正数当机器浮点数值大于最大正数A值,或小于最小负值,或小于最小负数数B值时,称为值时,称为上溢上溢,这两种情况意味着阶码运算,这两种情况意味着阶码运算值超出了它所表示的范围,机器必须做中断处理。值超出了它所表示的范围,机器必须做中断处理。n当机器浮点数值小于最小正数当机器浮点数值小于最小正数a值,或大于最大负数值,或大于最大负数b值时,称为值时,称为下溢下溢。下溢不是一个严重问题,通常。下溢不是一个严重问题,通常看作为机器零。看作为机器零。2.6.1 浮点加法、减法运算(续续12)12)阶码上溢阶码上溢 超过了阶码可能表示的最大值的正超过了阶码可能表示的最大值的正 指数值指数