第三章运算器与运算方法1.ppt
第三章 运算器与运算方法3.1基本组成3.2算术与逻辑单元3.3定点加减法运算3.4定点乘法运算3.5定点除法运算3.6浮点运算3.7十进制加减法运算3.1基本组成运算器大致由以下几部分组成算术逻辑运算单元ALU运算器实现对计算机中数据的加工处理,包括数值数据的算术运算,如加、减、乘、除。也对逻辑数据进行逻辑操作,如与、或、非、异或。完成数据算术与逻辑运算的部件称之为算术逻辑运算单元,ALU。ALU是运算器的核心。ALU通常表示为2个输入端口,1个输出端口和多个功能控制信号端的一个逻辑符号。ALU逻辑表示3.1基本组成运算器大致由以下几部分组成通用寄存器组:运算器中提供了暂时存放参加运算的数据和某些中间结果的通用寄存器。若干通用寄存器构成通用寄存器组。通用寄存器数量越多,对提高运算器性能和程序执行速度越有利。运算器中提供了一个操作数并存放运算结果的通用寄存器称为累加器。专用寄存器:记录指令执行过程中的重要状态标记及提供运算前后数据的暂存缓冲的寄存器。有些专用寄存器对程序员是透明的,有些是开放的。附加的控制线路:运算器中增加一些控制电路来使运算速度快,精度高。运算器组成演示3-1.swf3.2算术与逻辑单元运算器的基本功能是对数据进行算术运算和逻辑运算。运算器中各种运算都是分解成加法运算进行的。因此,加法器是计算机中的基本运算单元。两个二进制数进行相加,不考虑低位的进位,称为半加。实现半加操作的电路,称为半加器3.2.1半加器逻辑图和真值表XiYiHiCi0000011010101101符号表示逻辑图逻辑表达式3.2.1全加器多位二进制数据相加,考虑位与位之间的进位,这种加法运算就是全加运算。实现全加运算的电路称为全加器。3.2.2全加器电路及真值表XiYiCi-1Fi Ci00000010101001000110011011010111111全加器全加器演示3-2.swf逻辑图符号表示3.2.2串行进位与并行进位加法器中进位信号是顺序地从低位传递到高位,形成最后稳定的输出。这种加法器的位间进位是串行传送的,任意一位的加法运算,都必须等到低位加法运算做完送来进位才能正确进行,这种进位方式叫做串行进位或行波进位。例3.14位串行加法器效率计算(演示3-3.swf)用4个全加器串行相连组成4位加法器,完成4位运算,需要多少个工作脉冲?4位串行进位加法需4个工作脉冲,n位串行进位加法需n个工作脉冲3.2.2并行进位预先形成各位进位,将进位信号同时送到各位全加器的进位输入端。这种进位方法称为先行进位或并行进位。采用并行进位的加法器为先行进位加法器。定义2个辅助函数Pi=xi+yi,进位传递函数,含义是xi,yi有一个为1,则有低位进位输入,本位就向高位传送进位Gi=xiyi,进位产生函数。当xiyi都为1时,不管低位有否进位,则都一定会向高位产生进位输出。3.2.2先行进位推导过程4位加法器中:C1=X1Y1+(X1+Y1)C0=G1+P1C0C2=X2Y2+(X2+Y2)C1=X2Y2+(X2+Y2)X1Y1+(X2+Y2)(X1+Y1)C0=G2+P2G1+P2P1C0C3=X3Y3+(X3+Y3)C2=X3Y3+(X3+Y3)X2Y2+(X3+Y3)(X2+Y2)X1Y1+(X3+Y3)(X2+Y2)(X1+Y1)C0=G3+P3G2+P3P2G1+P3P2P1C0C4=X4Y4+(X4+Y4)C3=X4Y4+(X4+Y4)X3Y3+(X4+Y4)(X3+Y3)X2Y2+(X4+Y4)(X3+Y3)(X2+Y2)X1Y1+(X4+Y4)(X3+Y3)(X2+Y2)(X1+Y1)C0=G4+P4G3+P4P3G2+P4P3P2G1+P4P3P2P1C03.2.2先行进位产生电路(演示3-4.swf)例3.24位先行进位加法器效率计算(演示3-5.swf)4位先行进位加法器需要3个工作脉冲3.2.2组间串行进位16位加法器n位全加器串行连接起来,可以得到n位的加法器。但是运行速度会很慢。将4位先行进位加法器看成一个加法单元,将n个4位加法器串接起来,就可以构成4n位加法器。各加法单位间,进位信号是串行传送的,而在加法单位内部,进位信号是并行传送的。将4位 先行进位加法器称为组,即组内先行进位,组间串行进位。例3.3计算16位组间串行进位加法器工作效率(演示3-6.swf)由4个4位先行进位加法器组成的组间串行进位16位加法器,完成16位运算需6个工作脉冲3.2.2组间并行进位16位加法器可以将并行进位的概念用于16位加法器,定义Cm为4位加法器的进位输出,Pm为进位传递输出,Gm为进位产生输出。Cmi-1为低位进位输入Pmi=Pi4Pi3Pi2Pi1Gmi=Gi4+Pi4Gi3+Pi4Pi3Gi2+Pi4Pi3Pi2Gi1Cmi=Gmi+PmiCmi-13.2.2组间并行进位16位加法器因此在4个4位并行加法器组成的16位加法器中,第1个加法器输出C4=Cm1=Gm1+Pm1C0Pm1=P4P3P2P1Gm1=G4+P4G3+P4P3G2+P4P3P2G1第2个加法器输出C8=Cm2=Gm2+Pm2C4Pm2=P8P7P6P5Gm2=G8+P8G7+P8P7G6+P8P7P6G5代入C4,有C8=Gm2+Pm2Gm1+Pm2Pm1C03.2.2组间并行进位16位加法器依次类推,有C4=Gm1+Pm1C0 (X14Y14)C8=Gm2+Pm2Gm1+Pm2Pm1C0 (X58Y58)C12=Gm3+Pm3Gm2+Pm3Pm2Gm1+Pm3Pm2Pm1C0(X912Y912)C16=Gm4+Pm4Gm3+Pm4Pm3Gm2+Pm4Pm3Pm2Gm1+Pm4Pm3Pm2Pm1C0(X1316Y1316)例3.4计算组间先行进位16位加法器的效率(演示3-7.swf)16位运算需4个工作脉冲3.2.3ALU部件ALU是一种能够进行多种算术运算和逻辑运算的组合逻辑电路。它的基本逻辑结构是先行进位加法器。国际流行的74181型ALU是4位的中规模集成电路。能对2个4位二进制代码A3A0和B3B0进行16种算术运算和16种逻辑运算。由M选择算术还是逻辑运算。这2类16种运算由S3S2S1S0四位控制选择。算术运算可以选择Cn最低位进位为0还是为1。3.2.3ALU部件3.2.3ALU部件3.2.3ALU部件3.2.3ALU部件根据74181提供的G,P可以很方便地实现芯片间的先行进位。实现多片74181型ALU并行运算的片间先行进位发生器,有74182芯片。3.2.3ALU部件(74182电路图)3.2.3ALU部件CPU核心图