计算机组成原理(第3章).ppt
《计算机组成原理(第3章).ppt》由会员分享,可在线阅读,更多相关《计算机组成原理(第3章).ppt(151页珍藏版)》请在三一办公上搜索。
1、第3章 运算器与运算方法,本章学习导读:(1)运算器由哪几部分组成?(2)如何实现定点/浮点的加、减、乘、除和移位等操作?(3)为了提高运算器速度采取了哪些措施?,运算器部件是计算机中的执行部件,它可以对二进制数据进行各种算术和逻辑运算;运算器也是计算机内部数据信息的重要通路。,本章重点介绍运算器的核心部件算术逻辑运算单元ALU的组成与工作原理,以及数据在运算器的基本运算方法。,3.1 基本组成,1.算术逻辑运算单元ALU,运算器实现了对计算机中数据的加工处理;包括数值数据的算术运算和逻辑数据的逻辑操作。,运算器中完成数据算术与逻辑运算的部件称之为算术与逻辑运算单元(Arithmetic an
2、d Logic Unit,简称ALU)。ALU是运算器的核心。,ALU通常表示为两个输入端口,一个输出端口和多个功能控制信号端的这样的一个逻辑符号。,图3.1 ALU的逻辑符号表示与多路开关,2.通用寄存器组,运算器内设有若干通用寄存器,构成通用寄存器组;用于暂时存放参加运算的数据和某些中间结果。,在运算器中用来提供一个操作数并存放运算结果的通用寄存器称作为累加器。,通用寄存器的数量越多,对提高运算器性能和程序执行速度越有利。,通用寄存器组是对用户开放的,用户可以通过指令去使用这些寄存器。,如:ADD A,Rj,3.专用寄存器,运算器需要记录下指令执行过程中的重要状态标记,以及提供运算前后数据
3、的暂存缓冲等,这通过在运算器中设置若干专用寄存器来实现。,循环计数器对程序员是透明的。,程序状态字PSW(Program Status Word),它存放着指令执行结果的某些状态;如是否溢出、是否为零、是否有进位/借位、是否为负等。它对程序员是开放的。,堆栈指针SP(Stack Pointer),它指示了堆栈的使用情况。,4.附加的控制线路,在运算器中附加一些控制线路;以达到运算速度快,运算精度高的目的,。,如:运算器中的乘除运算和某些逻辑运算是通过移位操作来实现的。在ALU的输出端设置移位线路来实现左移、右移和直送。,移位线路是一个多路选择器。,图3.2 实现移位功能的多路选择器,3.2 算
4、术与逻辑单元 半加器与全加器,运算器中各种运算都是分解成加法运算进行的,因此加法器是计算机中最基本的运算单元。,1.半加器,两个一位二进制数相加(不考虑低位的进位),称为半加。实现半加操作的电路,称为半加器。,Xi Yi Hi Ci,0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1,表3.1 半加运算的真值表,HA,Xi Yi Xi Yi,Hi Ci Hi Ci,图 3.3(a)逻辑图(b)符号表示,表3.1 是两个一位二进制数Xi、Yi相加的真值表,Hi和Ci的逻辑表达式如下:,2.全加器,考虑低位进位的加法运算就是全加运算,实现全加运算的电路称为全加器。,根据真值表表3.2可
5、写出Fi和Ci的逻辑表达式:,表 3.2 全加运算的真值表,图 3.4 全加器的逻辑图和符号表示,实现逻辑表达式的全加器逻辑图和全加器的符号表示,3.2.2 串行进位与并行进位,n个全加器相连可得n位的加法器;图 3.5是串行进位或行波进位加法器。,图3.5 n位加法器,先行进位或并行进位加法器,预先形成各位进位,将进位信号同时送到各位全加器的进位输入端。,就4位加法器,讨论一下其进位C1、C2、C3和C4的产生条件:,下述条件中任一条满足就可生成C1=1:1)X1、Y1均为“1”;2)X1、Y1任一个为“1”,且进位C0为“1”。,可得C1的表达式为:C1=X1Y1+(X1+Y1)C0,下述
6、条件中任一条满足,就可生成C2=1。1)X2、Y2均为“1”;2)X2、Y2任一个为“1”,且进位C1为“1”。,可得C2的表达式为:C2=X2Y2+(X2+Y2)C1=X2Y2+(X2+Y2)X1Y1+(X2+Y2)(X1+Y1)C0,同理,可得C3的表达式为:C3=X3Y3+(X3+Y3)C2=X3Y3+(X3+Y3)X2Y2+(X2+Y2)X1Y1+(X2+Y2)(X1+Y1)C0,=X3Y3+(X3+Y3)X2Y2+(X3+Y3)(X2+Y2)X1Y1+(X3+Y3)(X2+Y2)(X1+Y1)C0,同理,可得C4的表达式为:C4=X4Y4+(X4+Y4)C3,=X4Y4+(X4+Y4
7、)X3Y3+(X3+Y3)X2Y2+(X3+Y3)(X2+Y2)X1Y1+(X3+Y3)(X2+Y2)(X1+Y1)C0,=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,定义两个辅助函数:Pi=Xi+Yi Gi=XiYi,Pi表示进位传递函数,当Xi、Yi中有一个为“1”时,若有低位进位输入,则本位向高位传送进位。,Gi表示进位产生函数,当Xi、Yi均为“1”时,不管有无低位进位输入,本位一定向高位产生进位输出。,将Pi、Gi代入前面的C1C4式,可得:C
8、1=G1+P1C0 C2=G2+P2 G1+P2P1C0 C3=G3+P3 G2+P3 P2 G1+P3 P2P1C0 C4=G4+P4 G3+P4P3 G2+P4P3 P2 G1+P4P3 P2P1C0,“先行进位产生电路”(图 3.6(a))及“4位先行进位加法器”的逻辑图(图 3.6(b)),图3.6(a)先行进位产生电路,图3.6(b)4位先行进位加法器,四个4位先行进位加法器串接起来构成16位加法器,在各加法单元之间,进位信号是串行传送的,而在加法单元内,进位信号是并行传送的。,图3.7 组间为串行进位构成的16位加法器,并行进位的概念可用于16位加法器;进一步提高16位加法器的运算
9、速度。,Cm表示4位加法器的进位输出,Pm表示4位加法器的进位传递输出,Gm表示4位加法器的进位产生输出。,Cm=Gm+PmC0,Pm 和Gm分别为:Pm=P4P3P2P1Gm=G4+P4 G3+P4P3G2+P4P3P2G1,应用于四个4位先行进位加法器,则有:Cm1=Gm1+Pm1C0,Cm2=Gm2+Pm2Cm1=Gm2+Pm2Gm1+Pm2 Pm1C0,Cm3=Gm3+Pm3Cm2=Gm3+Pm3Gm2+Pm3Pm2Gm1+Pm3 Pm2 Pm1C0,Cm4=Gm4+Pm4Cm3=Gm4+Pm4Gm3+Pm4Pm3Gm2+Pm4Pm3Pm2 Gm1+Pm4Pm3Pm2P m1C0,图3
10、.8 组间由先行进位链构成的16位加法器,可将并行进位的概念用于更大位数的加法器上,随着加法器位数的增加,加法电路变得越来越复杂。,3.2.3 ALU部件,ALU是一种能进行多种算术运算与逻辑运算的组合逻辑电路,它的基本逻辑结构是先行进位加法器。,74181型4位ALU中规模集成电路工作原理,能对两个4位二进制代码A3A2A1A0和B3B2B1B0进行16种算术运算(当M为低电位时)和16种逻辑运算(当M为高电位时),产生结果F3F2F1F0。,16种运算操作由S3S2S1S0四位控制选择,Cn是ALU的最低位进位输入,低电平有效,即Cn=L表示有进位输入;Cn+4是ALU进位输出信号。,图3
11、.9 是74181型4位ALU的逻辑图及其在正逻辑下的功能表,图3.9(a)正逻辑功能表,图3.9(b)74181型ALU逻辑图,1ALU实现加法操作的原理,当S3S2S1S0=HLLH,M=L时,ALU实现对A3A2A1A0和B3B2B1B0两个4位二进制代码在进位输入Cn参与下的加法运算;即:Fi=AiBiCn+i(i=3,2,1,0)。,设Xi=Ai,Yi=Bi;可推导Xi、Yi 和 Ai、Bi的关系:,Xi+Yi=AiBiXiYi=Ai+BiXiYi=AiBi,ALU就可以改画成以Xi、Yi为输入的结构较简单的单元;可证明GiPi=XiYi。,图3.10 是一个由先行进位加法器组成的单
12、元,电路输出:Fi=XiYi Cn+i=AiBi Cn+I。,由图3.9可知:Pi=AiBiS2+AiBiS3=Xi+Yi Gi=Ai+BiS0+BiS1=XiYi,图3.10 74181作加法运算时的简化逻辑图,2ALU单元实现逻辑运算,当M=H时,由图3.9 可知,进位门1316均被封锁,Fi=PiGi,位间不发生关系,电路执行逻辑运算。,S3S2S1S0=HLLH时,Fi=PiGi=AiBi,对输入数据A3A2A1A0和B3B2B1B0执行逻辑“同或”(异或非)操作。,S3S2S1S0=HHHH时,Fi=PiGi=A i,即F=A,此时,电路执行“传送A”的操作。,按以上方法,可全面分析
13、、理解74181的逻辑图和真值表。,左图是 74181ALU在正逻辑下的图形符号,图3.12 用四片74181构成的16位ALU,下图 是用4片74181组成的16位ALU,芯片内用先行进位方法,但片间为串行进位。,在图3.9的74181的逻辑图中,用先行进位方法产生的进位输出Cn+4和图中P、G的输出信号用表达式:,考虑算术运算,M=LP=P3P2P1P0G=G3+P3G2+P3P2G1+P3P2P1G0 Cn+4=G P3P2P1P0 Cn=G+P Cn=G P+G Cn,P称为片间进位传递函数,G称为片间进位产生函数,根据74181提供的G、P信号,很容易实现芯片之间的先行进位。,在图3
14、.12 中,高三片74181的片间进位输入可以表示为如下表达式:,Cn+4=G(0)+P(0)Cn=G(0)P(0)+G(0)CnCn+8=G(1)+P(1)Cn+4=G(1)+P(1)(G(0)+P(0)Cn)=G(1)P(1)+G(1)G(0)P(0)+G(1)G(0)Cn Cn+12=G(2)+P(2)Cn+8=G(2)+P(2)G(1)P(1)+G(1)G(0)P(0)+G(1)G(0)Cn=G(2)P(2)+G(2)G(1)P(1)+G(2)G(1)G(0)P(0)+G(2)G(1)G(0)Cn,P=P(3)P(2)P(1)P(0),图3.13 片间先行进位产生电路(74182),G
15、=G(3)P(3)+G(3)G(2)P(2)+G(3)G(2)G(1)P(1)+G(3)G(2)G(1)G(0),用四片74181和一片74182芯片组成的16位快速ALU;利用16片74181和5片74182芯片可以很容易组成64位快速ALU。,图3.14 四片74181和一片74182构成的快速16位ALU,33 定点加、减法运算,计算机的一个重要特点是它只能用有限的数码位数来表示操作数和操作结果,制定用来表示正、负数的各种码制;通过数据编码来简化数据的运算,特别是补码,把加法和减法巧妙地结合起来。,定点加、减法运算只有在遵守模运算规则的限制条件下其结果才是正确的,否则就会出现结果“溢出”
16、。,3.3.1 补码定点加、减法,补码制的加、减法运算公式:X+Y补=(X补+Y 补)MOD 2n X-Y补=(X补+-Y 补)MOD 2n,在补码制方法下,无论X、Y是正数还是负数,加、减法运算统一采用加法来处理;,X补和Y补的符号位和数值位一起参与求和运算,加、减运算结果的符号位也在求和运算中直接得出。,例1:已知X补=01001,Y补=11100;求X+Y补,X-Y补。,则-Y补=00100,X+Y补=(X补+Y补)MOD 2 5=(01001+11100)MOD 2 5=00101,X-Y补=(X补+-Y补)MOD 2 5=(01001+00100)MOD 2 5=01101,若结果超
17、过了允许表示的最小负数时,产生的溢出称为下溢。,当算术运算的结果超出了数码位数允许的数据范围时,就产生溢出。,对于n位的二进制码表示的补码整数(符号位占一位),它可表示的数据范围为-2n-12n-1-1。,若结果超过了允许表示的最大正数时,产生的溢出称为上溢;,在运算器中应设有溢出判别线路和溢出标志位。,例2:已知X补=01010,Y补=01010 X+Y补=(01010+01010)MOD 2 5=10100 溢出,例3:已知X补=10010,Y补=00100 X-Y补=(10010+11100)MOD 2 5=01110 溢出,1010+1010=201015 产生上溢,-1410-410
18、=-1810-16 产生下溢,溢出常用的判别方法:,两个补码数实现加、减运算时,若最高数值位向符号位的进位值Cn-1与符号位产生的进位输出值Cn不相同,表明加减运算产生了溢出OVR;,可以表示为:OVR=Cn-1Cn OVR=1表示结果有溢出,OVR=0表示结果正确。,在例1中,求X+Y补时:OVR=Cn-1Cn=11=0,结果正确。,在例2中,求X+Y补时:OVR=Cn-1Cn=10=1,结果溢出。,在例3中,求X-Y补时:OVR=Cn-1Cn=01=1,结果溢出。,常用双符号位方法来判别加、减法运算是否有溢出,正数的双符号位是00,负数的双符号位是11。,两个正数双符号位的运算为00+00
19、=00时,结果不溢出;,两个正数双符号位的运算为00+00+1=01时,结果上溢。,两个负数的双符号位运算为(11+11+1)MOD 4=11时,结果不溢出;,两个负数的双符号位的运算为(11+11)MOD 4=10时,结果下溢。,采用模4补码运算,其运算结果的两个符号位不一致时,产生溢出。,实现补码加、减法运算的逻辑电路(图3.15),图3.15 实现补码加减法运算的逻辑电路,它的核心部件是二进制并行加法器F,它接收来自寄存器X和寄存器Y的两个操作数。,在补码加、减法运算中,寄存器X和寄存器Y分别存放补码形式的数据。,设置特征信息的判别线路和保存特征信息的标志寄存器。,进位控制信号1F时,加
20、法器接收进位输入,实现和的末位+1操作。,如果给出1F的同时执行YF,则实现Y取补操作。,加法结果存入寄存器X。,特征信息有加、减运算结果的溢出信号、运算产生的进位/借位信号、结果为负信号、及结果为零信号等。,每个特征信号对应标志寄存器中的一个标志位(Flag)。,用图3.15 来实现加法X+Y补的逻辑操作步骤如下:,X补寄存器X,Y补寄存器Y。,给出控制信号:X F=1,YF=1,且1F=0。X补和Y补送入加法器F的两个输入端。,并行加法器F接收X补和Y 补,完成X补+Y 补的加法过程,输出X+Y补,并置溢出、进位等信号到标志寄存器。,给出控制信号:FX=1,加法器F的输出结果送入寄存器X。
21、加法运算结束。,用图3.15 来实现减法X-Y补的逻辑操作步骤如下:X补寄存器X,Y补寄存器Y。,给出控制信号:XF=1,YF=1。X补和Y补=yn-1yn-2y0送入加法器F的两个输入端。,给出控制信号:1F=1,并行加法器F接收X补、Y 补和进位信号1,完成X补+yn-1yn-2 y0+1=X补+-Y 补的加法过程,输出X-Y补,并置溢出、进位等信号到标志寄存器。,给出控制信号:FX=1,加法器F的输出结果 X-Y补送入寄存器X。减法运算结束。,当寄存器X或寄存器Y的内容送到加法器F时,将符号位等值扩充一位,形成双符号位;双符号位只在加法器中执行加法运算时是必要的。,寄存器X、寄存器Y和加
22、法器F的二进制位数对运算数据和运算结果的大小有限制作用,当超过了这些运算结构所能表示的数据范围时,就产生溢出。,以加法器和通用寄存器的二进制位数定义为计算机的字长。计算机的字长通常是8的整数倍。,3.3.2 原码定点加、减法,原码是用符号位和绝对值来表示的一种数据编码,在原码加、减法运算中,符号位和数值位是分开来计算的;,符号位在运算过程中起判断和控制作用,并且对结果的符号位产生影响。,加、减法运算在数值位上进行。,原码加、减法运算规则:,比较两操作数的符号,对加法实行“同号求和,异号求差”,对减法实行“异号求和,同号求差”。,求和:和的数值位:两操作数的数值位相加。如数值最高位产生进位,则结
23、果溢出。和的符号位:采用被加数(被减数)的符号。,求差:差的数值位:被加数(被减数)的数值位加上加数(减数)的数值位的补码。分二种情况。,2)最高数值位没有产生进位,表明加法结果为负,得到的是数值位的补码形式,因此,对加法结果求补,还原为绝对值形式的数值位。,差的符号位:在上述1)的情况下,符号位采用被加数(被减数)的符号。在上述2)的情况下,符号位采用被加数(被减数)的符号取反。,1)最高数值位产生进位,表明加法结果为正,所得数值位正确。,例1:已知 X原=10011 Y原=11010 计算X+Y原,1)两数同号,所以采用加法求和。,2)和的数值位:0011+1010=1101,和的符号位:
24、采用X原的符号位,为1,所以 X+Y原=11101,例2:已知 X原=10011 Y原=11010 计算X-Y原,1)两数同号,所以采用减法求差。,2)差的数值位:0011+(1010)补=0011+0110=1001,最高数值位没有产生进位,表明加法结果为负,,对1001求补,还原为绝对值形式的数值位,(1001)补=0111,差的符号位:采用X 原的符号位取反,为0 所以 X-Y原=00111,3.4 定点乘法运算,常规的乘法运算方法(定点小数),笔-纸乘法方法,,原码乘法,,带符号位运算的补码乘法,,用组合逻辑线路构成的阵列乘法器。,3.4.1 原码一位乘法,用原码实现乘法运算时,符号位
25、与数值位是分开计算的;,原码乘法运算分为二步;,第二步是计算乘积的数值位;乘积的数值部分为两数的绝对值之积。,第一步是计算乘积的符号位;乘积的符号为相乘二数符号的异或值。,用数学表达式描述原码乘法运算,设:X原=x0 x1xn,Y原=y0y1yn(其中x0、y0分别为它们的符号位),若 X*Y原=z0z1z2n(其中z0 为结果之符号位)则 z0=x0 y0,z1z2n=(x1xn)*(y1yn),笔-纸乘法方法,例1.X=0.1011,Y=0.1101,X*Y的笔-纸乘法过程:,0.1011 被乘数X=0.x1x2x3x4=0.1011*0.1101 乘数Y=0.y1y2y3y4=0.110
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 组成 原理
链接地址:https://www.31ppt.com/p-6432921.html