3第三章 运算方法与运算器1.ppt
《3第三章 运算方法与运算器1.ppt》由会员分享,可在线阅读,更多相关《3第三章 运算方法与运算器1.ppt(91页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第三章第三章 运算方法与运算器运算方法与运算器本章主要内容:本章主要内容:运算方法运算方法:定点和浮点数的四则运算方法和逻辑运算方法定点和浮点数的四则运算方法和逻辑运算方法运算器的基本原理与设计:运算器的基本原理与设计:快速进位原理快速进位原理运算器的扩充运算器的扩充1、定点小数补码加法、定点小数补码加法 X补补+Y补补=X+Y补补 mod 2该公式隐含的条件是:该公式隐含的条件是:|X|1|Y|1|X+Y|0,Y0 则则X+Y0,由补码的定义有由补码的定义有:X补补=X Y补补=Y X+Y补补=X+Y 所以所以:X补补+Y补补=X+Y补补 mod 2一、定点数的加法、减法运算一、定点数的加法
2、、减法运算 X补补=X Y补补=2+Y X补补+Y补补=2+Y+X 若若X+Y0,则则 2+X+Y2 所以所以:X补补+Y补补=2+Y+X=X+Y =X+Y补补 mod 2若若X+Y0,Y0,Y0 证明方法同证明方法同(2)(4)X0,Y0 则则X+Y0,由补码的定义知由补码的定义知:X补补=2+X Y补补=2+Y X补补+Y补补=2+2+Y+X 因为因为:X+Y0,所以所以02+X+Y2 所以所以:2+2+X+Y=2+X+Y mod 2 =X+Y补补 mod 2 所以所以:X补补+Y补补=2+Y+X=X+Y补补 综上所述综上所述:X补补+Y补补=X+Y补补 topolgy已知已知 X=+0.
3、1011 Y=-0.0101 求求X+Y解解:X补补=0.1011 Y补补=1.1011 X+Y补补=X补补+Y补补=0.1011+1.1011 =0.0110 所以所以:X+Y=+0.01102、补码加法举例、补码加法举例 X-Y补补=X补补+Y补补=X补补 Y补补 证明:证明:X-Y补补=X+(-Y)补补=X补补+-Y补补-Y补补=X-Y补补-X补补 .(1)又又 X+Y补补=X补补+Y补补 Y补补=X+Y补补-X补补 .(2)(1)+(2)得得 Y补补+-Y补补=X+Y补补+X-Y补补-X补补-X补补=X+Y+X-Y补补-X补补 X补补=X补补+X补补-X补补 X补补=0 -Y补补=-Y
4、补补 原命题成立原命题成立 3、补码的减法、补码的减法例例1 已知已知 Y补补=1.1011 求求 Y补补 解法解法1:Y补补=1.1011 Y=0.0101 -Y=0.0101 -Y补补=0.0101补补=0.01014、补码减法举例、补码减法举例解法解法2:由由-Y补补=-Y补补(!)求求 Y补补 可直接对可直接对Y补补 连同符号位在内连同符号位在内,求反然后求反然后在在 最低位加最低位加1实现实现 -Y补补=0.0101 -X补补=+2-n例例2 若若X补补=X0.X1X2X3Xn ,则则-X补补=?例例3 已知已知X=+0.1011 Y=+0.0110 求求 X-Y 解解:X补补=0.
5、1011 Y补补=0.0110 -Y补补=1.1010 X-Y补补=X补补+-Y补补 =0.1011+1.1010=0.0111 X-Y=0.0111topolgy1)溢出的概念溢出的概念 运算的结果超出了某种数据表示的范围。运算的结果超出了某种数据表示的范围。2)举例举例 例例1 已知已知X=+0.1011 Y=+0.1001 求求 X+Y 解解:X补补=0.1011 Y补补=0.1001 X+Y补补=X补补+Y补补 =0.1011 +0.1001 =1.0100 X-Y=-0.1100 两个正数之和为负数两个正数之和为负数5、溢出与溢出检测方法、溢出与溢出检测方法例例2 已知已知X=0.1
6、101 Y=0.1011 求求 X+Y 解解:X补补=1.0011 Y补补=1.0101 X+Y补补=X补补+Y补补 =1.0011 +1.0101 =0.1000 X+Y=0.1000 两个负数之和为正数两个负数之和为正数上面两个例子的异常都是由上面两个例子的异常都是由于发生了溢出的缘故,其中于发生了溢出的缘故,其中例例1是发生了是发生了上溢上溢、例例2是发是发生了生了下溢下溢。溢出溢出?运算的结果超出了某种数据运算的结果超出了某种数据类型能够表示的数据范围的类型能够表示的数据范围的现象。现象。3)溢出的检测与判断溢出的检测与判断(重要内容重要内容)溢出只可能发生在同符号的数相加时溢出只可能
7、发生在同符号的数相加时(1)方法方法1:对操作数和运算结果的符号位进行检测:对操作数和运算结果的符号位进行检测溢出发生的条件:溢出发生的条件:结果的符号位与操作数的符号不相同结果的符号位与操作数的符号不相同溢出判断方法溢出判断方法 (设设X0,Y0 为为参加运算数的符号位,参加运算数的符号位,S0 为结果的符号位为结果的符号位)V=X0Y0S0+X0Y0S0当当V=1时,表示运算结果溢出。时,表示运算结果溢出。根据上述表达式可以画出相应电路根据上述表达式可以画出相应电路该图为该图为具有加具有加/减法控制,能进行溢出检测的运算部件。减法控制,能进行溢出检测的运算部件。当当V取值为取值为1时,表示
8、发生了溢出。时,表示发生了溢出。P:加:加/减操作控制减操作控制 P=0 加法运算加法运算11011 0000011011P=1 减法运算减法运算11011 1111100100(2)对最高有效进位和符号进位进行检测对最高有效进位和符号进位进行检测设运算时最高有效数据位产生的进位信号为设运算时最高有效数据位产生的进位信号为C1,符号位产生符号位产生的进位信号为的进位信号为C0,检测电路为:检测电路为:V=C0 C 1直观理解:直观理解:a)当参加运算的两个数均为正数,则当参加运算的两个数均为正数,则C0=0(且符号位和为且符号位和为0),此时若此时若C1=1,则会改变结果的符号,发生了溢出。则
9、会改变结果的符号,发生了溢出。b)当参加运算的是两负数,则当参加运算的是两负数,则 C0=1(且符号位和为且符号位和为0),此时此时若若C1=0,则会改变运算结果的符号,发生了溢出。则会改变运算结果的符号,发生了溢出。根据上述表达式可以设计溢出检测电路。根据上述表达式可以设计溢出检测电路。V=C0 C 1 a.变形补码变形补码 X补补=X 2 X 0 4+X 0 X 2 mod 4此时此时 X补补=Xf1Xf2.X1X2X3Xnb.溢出的检测溢出的检测上溢:双符号位为上溢:双符号位为 01下溢:下溢:双符号位为双符号位为10 溢出的判断溢出的判断:V=Xf1 Xf2最高符号位为结果的真实符号最
10、高符号位为结果的真实符号(3)方法方法3:采用变形补码的双符号:采用变形补码的双符号位位topolgy例例3 已知已知X=+0.1011 Y=+0.1001 用变形补码求用变形补码求 X+Y 解解:X补补=00.1011 Y补补=00.1001 X+Y补补=X补补+Y补补 =00.1011 +00.1001 =01.0100 发生了上溢发生了上溢例例4 已知已知X=0.1101 Y=0.1011 求求 X+Y 解解:X补补=11.0011 Y补补=11.0101 X+Y补补=X补补+Y补补 =11.0011 +11.0101 =10.1000 发生了下溢发生了下溢(4)溢出检测的实现溢出检测的
11、实现 方式方式 CPU设计者必须决定如何处理算数运算时发生的溢出:设计者必须决定如何处理算数运算时发生的溢出:部分程序设计语言部分程序设计语言(C)将此类异常交给硬件设计者完成将此类异常交给硬件设计者完成;另外一些程序设计语言另外一些程序设计语言(Ada Fortran等等)要求发生此类异常要求发生此类异常时通知相应程序,并由程序员或编译系统确定如何处理。时通知相应程序,并由程序员或编译系统确定如何处理。1、构成运算器的基本算术、构成运算器的基本算术/逻辑运算单元逻辑运算单元二、运算器及其数据通路设计二、运算器及其数据通路设计sabc与与或或非非多多路路选选择择器器if(s=0,c=a;els
12、e c=b)0101abcsFA本位和及进位表示式:本位和及进位表示式:Si=A i B i C i-1 Ci+1=A iB i+(B i+A i)Ci-1topolgy2、具有简单算术、具有简单算术/逻辑运算功能的逻辑运算功能的ALU设计设计S1S0=00且且 S3S2=0时时,F=ab ;S1S0=01且且 S3S2=0时时 F=a+b;S1S0=10且且 S3S2=0时时,执行全加器功能执行全加器功能,输出为从输出为从F和和Cout;S1S0=10且且 S3S2=0,Cin=1时,执行时,执行a减减b的功能;的功能;S1S0=00且且 S3S2=1时时,F=a+bS1S0=01且且 S3
13、S2=1时时,F=ab逻辑符号逻辑符号3、串行运算器、串行运算器FAB2A2F2FAB3A3F3 FAB1A1F1FAB0A0F0C0C1 C2 C3 C3 C1=A 0B 0+(B0+A0)C0Ci+1=A iB i+(B i+A i)Ci-1C2=A 1B 1+(B1+A1)C1C 3=A 2B 2+(B2+A2)C2C 4=A 3B 3+(B3+A3)C3串串行行进进位位、并行运算器、并行运算器C1=A 0B 0+(B0+A0)C0C2=A 1B 1+(B1+A1)C1C3=A 2B 2+(B2+A2)C2C4=A 3B 3+(B3+A3)C3=A 1B 1+(A1+B1)A 0B 0+
14、(A1+B1)(A0+B0)C0=A2B2+(B2+A2)(A 1B 1+(B1+A1)A 0B 0+(A1+B1)(A0+B0)C0)=A2B2+(A2+B2)(A1B1+(A1+B1)A0B0)+(A2+B2)(A1+B1)(A0+B0)C0=A3B3+(A3+B3)(A2B2+(A2+B2)(A 1B 1+(A1+B1)A 0B 0)+(B3+A3)(B2+A2)(A1+B1)(A0+B0)C0 先行进位或并行进位先行进位或并行进位FAB2A2F2FAB3A3F3 FAB1A1F1FAB0A0F0C0C1 C2 C3 C A 1B 1+(A1+B1)A 0B 0+(A1+B1)(A0+B
15、0)C0 A2B2+(A2+B2)(A1B1+(A1+B1)A0B0)+(A2+B2)(A1+B1)(A0+B0)C0 A 0B 0+(A0+B0)C0 A3B3+(A3+B3)(A2B2+(A2+B2)(A 1B 1+(A1+B1)A 0B 0)+(B3+A3)(B2+A2)(A1+B1)(A0+B0)C0 令令G=A3B3+(A3+B3)(A2B2+(A2+B2)(A 1B 1+(A1+B1)A 0B 0)为进位产生函数为进位产生函数令令P=(B3+A3)(B2+A2)(A1+B1)(A0+B0)C0 为进位传递函数为进位传递函数5.多功能算术逻辑运算单元多功能算术逻辑运算单元74181的
16、设计的设计FAYiCn+iCn+i+1XiFiS0S1S2S3函数发生器函数发生器AiBiFA的逻辑表达式:的逻辑表达式:Fi=Xi Yi C n+iC n+i+1=XiYi+YiC n+i+XiC n+I .(1)修改后的修改后的FA的逻辑表达式:的逻辑表达式:Fi=Ai Bi Cn+i C n+i+1=AiBi+BiCn+i+Cn+iAitopolgy(1)逻辑表达式逻辑表达式S0 S1 YiS2 S3 Xi0 0 Ai0 010 1AiBi0 1Ai+Bi1 0Ai Bi1 0Ai+Bi1 101 1AiXi=S2S3+S2S3(Ai+Bi)+S2S3(Ai+Bi)+S2S3Ai Yi=
17、S0S1A i+S0S1AiBi+S0S1AiBi 进一步化简:进一步化简:Xi=S3AiBi+S2AiBi Yi=A i+S0Bi+S1Bi将将Xi 、Yi 代入公式代入公式(1)的进位位,并化简得:的进位位,并化简得:C n+i+1=Yi+Cn+iXi由经过修改后的由经过修改后的FA构成的某一位逻辑表达式为:构成的某一位逻辑表达式为:Yi=A i+S0Bi+S1BiXi=S3AiBi+S2AiBi Fi=Xi Yi Cn+i C n+i+1=Yi+Cn+iXi(2)FAY3C4X3F3C3 FAY1X1F1FAY0X0F0C0C1FAX2Y2C2F2C n+1=Y0+X0C0C n+2=Y
18、1+Y0 X1+X0X1C0C n+3=Y2+Y1 X2+Y0 X1 X2+X0X1X2C0C n+4=Y3+Y2 X3+Y1 X2 X3+Y0 X1 X2 X3+X0X1X2 X3 C0C n+1C n+2C n+3C n+4(2)74181是一个是一个4位算术逻辑运算单元位算术逻辑运算单元,四位之间采用先行进四位之间采用先行进位位GP与与C n+1有关有关与与C n+2有关有关与与C n+3有关有关与与C n+4有关有关(3)74181的内部电路的内部电路(4)功功能能表表topolgy 输输 入入 输出输出 F3F2F1F0S3S2S1S0A4A3A2A1B4B3B2B1当当M=1时时当
19、当M=0、CN=0时时当当M=0、CN=1时时0000101001011111101110100001101001010000000011110010101001010101101110100011101001010000000011110100111100011110111011010101111100011110111011010110111100011110111011010111111100011110111011011000111111111111111111101001111111111111111111101010111111111111111111101011111111111
20、11111111110110001011111111110111010110101011111010101010100111001011111111110111010111101011111010101010100(5)对对74181的几点说明的几点说明有正逻辑和负逻辑两种工作方有正逻辑和负逻辑两种工作方式,它们的逻辑功能等效式,它们的逻辑功能等效有有16 种算术运算和逻辑运算种算术运算和逻辑运算选择功能,受选择功能,受S0S3 的控制的控制 M是运算选择符,是运算选择符,M=H时逻辑运算,时逻辑运算,M=L 时算术运算时算术运算(并非全部并非全部)加、减表示算术运算,加、减表示算术运算,+表
21、示逻辑运算表示逻辑运算算术运算结果和过程均用补码表示算术运算结果和过程均用补码表示减法时减数的反码由电路内部产生,故得到的结果为减法时减数的反码由电路内部产生,故得到的结果为A减减B 减减1,要得到要得到A减减B 的结果,则应该在最低位加的结果,则应该在最低位加1;此时,对于负逻辑;此时,对于负逻辑而言而言 Cn=H,对于正逻辑而言对于正逻辑而言 Cn=L(因为进位输入是求反输入因为进位输入是求反输入)(6)两级先行进位的两级先行进位的ALUa.问题的提出问题的提出 大于大于4位的两个数运算,如何实现并行进位?位的两个数运算,如何实现并行进位?b.解决问题的可能方法解决问题的可能方法 改变原来
22、改变原来ALU的结构的结构,实现多位间的并行进位实现多位间的并行进位 设计设计ALU外部的并行进位部件外部的并行进位部件,不改变原不改变原ALU内部结构内部结构c.设计思想设计思想 利用原来利用原来74181提供的进位传输输出提供的进位传输输出P 和和 进位发生输出进位发生输出G(7)两级先行进位电路的两级先行进位电路的设计设计设设4片片74181的先行进位输出分别为的先行进位输出分别为 P0、G0、P1、G1、P2、G2、P3、G3。则四片间的串行进位关系为则四片间的串行进位关系为C n+x=G0+CnP0C n+y=G1+Cn+xP1C n+z=G2+Cn+yP2C n+4=G3+Cn+z
23、P3=G1+(G0+CnP0)P1=G1+G0 P1+P0P1Cn=G2+G1 P1+G0 P1 P2+P0P1P2Cn=G3+G2 P3+G1 P2 P3+G0 P1 P2 P3+P0P1P2 P3 Cn此即为此即为74182内部电路所采用的逻辑表达式内部电路所采用的逻辑表达式若若令:令:G*=G3+G2 P3+G1 P2 P3+G0 P1 P2 P3 P*=P0P1P2 P3则:则:C n+4=G*+CnP*其中其中 P*称为称为成组成组进位传输输出、进位传输输出、G*称为称为成组成组进位发生输出。进位发生输出。增加这两个输出的目的是为了实现更多位之间的先行进位。增加这两个输出的目的是为了
24、实现更多位之间的先行进位。74182的内部结构如下图所示的内部结构如下图所示:C n+4=G3+G2 P3+G1 P2 P3+G0 P1 P2 P3+P0P1P2 P3 CnCn+y=G1+G0 P1+P0P1CnCn+z=G2+G1 P1+G0 P1 P2+P0P1P2Cn(8)74181和和74182的应用的应用例例1:用用74181构成构成16位行波进位的位行波进位的ALUA3A0B3B0C074181F3F0741817418174181A7A4B11B8A15A12B7B4A11A8B15B12C15F7F4F11F8F15F12例例2、利用、利用74181和和74182设计设计16
25、位并行进位的位并行进位的ALU7418274181741817418174181GGGGPPPPP0P2P3P1G0G1G3G2Cn+zCn+yCn+xCnC n+x=G0+CnP0Cn+y=G1+G0 P1+P0P1CnCn+z=G2+G1 P1+G0 P1 P2+P0P1P2Cn例例3、用、用74181和和74182构造两级行波进位的构造两级行波进位的32位位ALU,要求低要求低16位和高位和高16位之间是行波进位,而位之间是行波进位,而16内部是并行进位。内部是并行进位。P0G0G1G3G274182GPP2P3P1Cn+zCn+yCn+x74181741817418174181CnP0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 3第三章 运算方法与运算器1 第三 运算 方法 运算器
限制150内