收藏 分享(赏)

第6章计算机的运算方法.ppt

上传人:gnk289057 文档编号:4802525 上传时间:2019-01-13 格式:PPT 页数:75 大小:6.29MB
下载 相关 举报
第6章计算机的运算方法.ppt_第1页
第1页 / 共75页
第6章计算机的运算方法.ppt_第2页
第2页 / 共75页
第6章计算机的运算方法.ppt_第3页
第3页 / 共75页
第6章计算机的运算方法.ppt_第4页
第4页 / 共75页
第6章计算机的运算方法.ppt_第5页
第5页 / 共75页
点击查看更多>>
资源描述

1、第章 计算机的运算方法,6.1 无符号数和有符号数,6.3 定点运算,6.2 数的定点表示和浮点表示,6.4 浮点四则运算,6.5 算术逻辑单元,2,本章要求,掌握数制的概念,特别是各种数制的相互转换; 掌握定点数的表示方法,包括原码、反码、补码和移码的计算过程; 掌握定点数的运算,包括原码定点数的加减运算、补码定点数的加减运算和定点数的乘除运算原理和过程,重点掌握溢出的判断方法; 掌握浮点数表示的概念和规格化过程,特别是IEEE754标准表示方法; 掌握浮点数规格化过程,特别是IEEE754标准表示方法; 掌握浮点数的加减运算原理和过程。 掌握ALU的结构。,3,十进制数串的表示方法,目前,

2、大多数通用性较强的计算机都能直接处理十进制形式表示的数据。十进制数串在计算机内主要有两种表示形式:1.字符串形式 2.压缩的十进制数串形式,4,BCD码,二-十进制码(BCD-Binary Coded Decmal) 又称二进制编码的十进制.用于二-十进制转换. (1)定义:用4位二进制码表示一位十进制码.最简单的是8-4-2-1码.也叫压缩(或组合)的BCD码. 例: 3579D=?BCD码3 5 7 9 0011010101111001BCD0011 0101 0111 1001 (2)BCD码的运算规则:8-4-2-1的BCD码只用015中的前10种状态09,后6种是非法码.所以,当和超

3、过9时,要作+6修正操作.,5,两种格式的BCD码,(3)压缩(组合)与非压缩(非组合)的BCD码 压缩(组合)BCD码: 用8位二进制码表示2位十进制码. 例89D 1000 1001BCD,只占1个字节. 非压缩(非组合)BCD码: 用8位二进制码表示1位十进制码.高4位无意义. 例89D 00001000 00001001BCD,占2个字节.,6,进位计数制,如果进位数制采用R个基本符号,则R称为数制的基数。进位计数制按“逢R进位”的规则。例如:,7,进位记数法与进制转换,进位记数法,N 代表一个数值,r 是这个数制的基 (Radix,该数制所用的符号个数),i 表示这些符号排列的位序号

4、,8,十进制转二进制,整数部分除2取余 小数部分乘2取整,2,1 1,2,2,2,5,2,1,0,1,1,0,1,0.625 * 2,1,0.25 * 2,0,0.5 * 2,1,0.0,除尽为止 求得位数满足要求为止,低,高,高,低,从二进制数求其十进制的值,逐位码权累加求和,9,二到八或十六进制转换,二到八 从小数点向左右三位一分组 (10 011 100 . 01)2 = ( 234 . 2 )8010 010 二到十六 从小数点向左右四位一分组 (1001 1100 . 01)2 = ( 9C . 4 )160100 说明:整数部分不足位数对转换无影响,小数部分不足位数要补零凑足,否则

5、出错。,10,数值的对照,11,数值数据的表示,符号数的表示,把二进制数的最高一位定义为符号位,符号位为0表示正数,符号位为1表示负数 这种在计算机中使用的、连同符号位一起数值化了的数,称为机器数。机器数所表示的真实的数值,称为真值。对于符号数,机器数常用的表示方法有原码、反码和补码三种。数X的原码记作X原,反码记作X反,补码记作X补。最高位表示符号,数值位用二进制绝对值表示的方法,称为原码表示法 一个负数的原码符号位保持不变,其余位取反就是机器数的反码表示法。正数的反码与原码相同。 将负数的反码加1,则得到机器数的补码表示。正数的补码与原码相同。,12,整数表示: Ns N1 N2 Nn,0

6、,X,2n - X,0 X -2n,2n X 0,定义: X原 =,原码的定义,0,X,(2n+1)+X,0 X 0 Mod (2n+1),2n X 0,定义:X反 =,反码的定义,0,X,2n+1 + X,0 X -2n Mod 2n+1,2n X 0,定义:X补 =,模 2 补码的定义,13,定点小数表示: Ns N1 N2 Nn,X,1 - X,-1 X 0,0 X 1,定义: X原 =,原码的定义,X,(2-2-n)-X,-1 X 0 Mod (2-2-n),0 X 1,定义:X反 =,反码的定义,X,2 + X,-1 X 0 Mod 2,0 X 1,定义:X补 =,模 2 补码的定义

7、,14,真值,X=+18=+0010010,X=-18=-0010010,X= +0=+0000000,X= -0=-0000000,原码,X,原,=00010010,X,原,=10010010,X,原,=00000000,X,原,=10000000,符号,符号位,n位原码表示数值的范围是 ,对应的原码是 11110111。 0的原码有两种形式。,原码,15,真值,X=+18=+0010010,X=-18=-0010010,X= +0=+0000000,X= -0=-0000000,反码,X,反,=00010010,X,反,=11101101,X,反,=00000000,X,反,=111111

8、11,符号,符号位,反码,n位反码表示数值的范围是 ,对应的反码是10000111。 0的反码有两种形式。,16,补码,真值,X=+18=+0010010,X=-18=-0010010,X= +0=+0000000,X= -0=-0000000,补码,X,补,=00010010,X,补,=11101110,X,补,=00000000,X,补,=00000000,符号,符号位,n位补码表示数值的范围是 ,对应的补码是10000111。 0的补码只有一种形式。 将补码还原为真值时,如果补码的最高位是0,则为正数,后面的二进制序列值即为真值;如果补码的最高位是1,则为负数,应将其后的数值位按位求反再

9、加1,所得结果才是真值。,17,三种机器数的特点:,三种机器数的最高位均为符号位。符号位和数值部分之间可用“.”(整数)或“,”(小数)隔开。 当真值为正数时,原码、补码和反码的表示形式均相同,即符号位用“0”表示,数值部分与真值相同 当真值为负数时,其符号位相同用“1”表示,原码数值部分为真值,反码为原码的“按位取反”;补码为原码“按位取反再加1”。 原码、反码的“0”均有两种表示方式,而补码“0”只有一种表示方式。,18,移码,真值,X=+18=+0010010,X=-18=-0010010,补码,X,补,=00010010,X,补,=11101110,符号,符号位,当用补码表示数据时,两

10、个数据进行比较: 1110111000010010;这与事实明显不符。 故我们产生了移码 移码:又叫增码, 一般用于整数. 定义:在补码最高位加1, 即X移=2n+X, - 2n X 2n 例2.2.2: 真值 补码 移码+3 0011 10110 0000 1000 补码与移码的符号位相反-3 1101 0101 数值位相同 注意:移码的0也是唯一的,19,计算机数据-非数值数据,逻辑型数据 字符型数据 ASCII 码 EBCDIC 码 字符串 汉字,逻辑型数据只有两个值:真 和 假, 正好可以用二进制码的两个符号分别表示, 例如 1 表示 真则 0 表示 假 不必使用另外的编码规则。 对逻

11、辑型数据可以执行逻辑的 与 或 非等基本逻辑运算。,20,字符存储方式,ASCII (American Standard Code for Information Interchange)字符编码 字符数: 128 英文字母(52)+专用符号(34) +十进制数(10)+控制字符(32) 位数基本代码位7位+1位0 所有小型和微型计算机都用ASCII码.,21,b6 b5 b4 000 001 010 011 100 101 110 111b3 b2 b1 b00000 NUL DLE SP 0 P , p 0001 SOH DC1 ! 1 A Q a q0010 STX DC2 “ 2 B

12、R b r0011 ETX DC3 # 3 C S c s0100 EOT DC4 $ 4 D T d t0101 ENQ NAK % 5 E U e u0110 ACK SYN K k 1100 FF FS , N n 1111 SI US / ? O _ o,ASCII字符编码集,22,计算机数据,计算机数据:存储在计算机的存储设备上的数据就叫做计算机数据 分类:数值数据,非数值数据 数值数据:能够参加数值运算的数据。 定点数:小数点固定的数据 浮点数:小数点不固定的数据 非数值数据:文本、逻辑值等。 注意:无论是数值数据还是非数值数据,在计算机里都是按二进值数据存储的。,23,定点数的表

13、示方法,定点表示:约定机器中所有数据的小数点位置是固定不变的。由于约定在固定的位置,小数点就不再使用记号“.”来表示。通常将数据表示成纯小数或纯整数。,纯小数的表示范围为 0|12n 纯整数的表示范围为 0|2n1,24,机器数的浮点表示,1.机器数的浮点表示法(Floating point) 十进制数N1=3.14159=0.314159*101=0.0314159*102 二进制数N2=0.011B=0.110B*2-1= 0.011B*21 式中,E为数N的阶码(exponent)M为尾数,是数N的有效数字(mantissa)r表示基数 当E变化时,数N的尾数M中的小数点位置也随之向左或

14、向右浮动,称数的浮点表示法.阶符 阶码 数符 尾 数,N=M*rE.,Ef,E,S,M,注意:E为整数M为纯小数,25,2.常见机型的浮点数的表示,Pentium微处理器支持的浮点格式,32位 64位 80位,当浮点数阶码大于最大阶码时,称为“上溢” 当浮点数阶码小于最小阶码时,称为“下溢”,26,3.浮点数的规格化,为了提高浮点数据的精度,其尾数必须为规格化数。 将非规格化数转变成规格化数的过程叫做规格化。,规格化过程: 当基数为2时,尾数最高位为1的数为规格化数。规格化时,尾数左移一位,阶码减1(左规);尾数右移一位,阶码加1(右规)。 当基数为4时,尾数最高位两位不全为0的数为规格化数。

15、规格化时,尾数左移俩位,阶码减1(左规);尾数右移两位,阶码加1(右规)。其他依次可推出基数为2n的规格化过程,27,IEEE 标准,IEEE 标准:阶码用移码,基为2;尾数用原码,阶码用移码,尾数用原码表示浮点数的好处: (1) 机器零为浮点数的所有各位均为零;(2) 二浮点数比大小时,可不必区分阶码位和数据位,可视同比二定点小数一样对待,Ef,E,S,M,阶符 阶码 数符 尾 数,28,浮点数与定点数的比较,(1)当字长一定时,浮点表示的数值范围比定点大,且阶码部分占的位数越多,表示数的范围越大. 举例:8位机(含符号位) 阶码 尾数 定点: Sf .XXXXXXX 浮点: Sf J fX

16、X XXXX定点:0.00000000.1111111 0127/128小浮点:2-11*0.0001 211 *0.1111 1/1287.5 大 (2)浮点数运算分阶码和尾数两部分,步骤复杂,速度较慢. (3)浮点数判溢出比定点容易,只要判断规格化尾数的阶码,而定点数要判数值本身. (4)当浮点数为规格化数的时候,其精度远比定点数高,29,定点运算-加法与减法运算,X Y补 = X补 Y补 X+Y补= X补+ Y补, X-Y补= X补+ -Y补 求-Y补,可 通过对 Y补逐位取反,再在最低位加 1完成 溢出判断,同一件事实,三种不同的叙述方式: (1) 正 + 正 得负 或 负 + 负 得

17、正 (2) 采用双符号位法,这称为“变形补码”或“模4补码” x补=4+x (mod 4) x补+y补=x+y补 (mod 4) 结论:a.当以模4补码运算,运算结果的两符号位相异时,表示溢出;相同时表示未溢出b.模4补码相加的结果,不论溢出与否,最高符号位始终指示正确的符号。 (3) 采用单符号位法,溢出逻辑表达式为 其中Cf为符号位产生的进位,C0为最高有效位产生的进位。,30,补码加减法运算实例,X=0.1011 Y= -0.0101 模 4 补码(双符号位) X补 = 00 1011, Y补 = 11 1011 -Y补 = 00 0101,00 1011+ 11 10111 00 01

18、10,00 1011+ 00 010101 0110,X+Y,去掉最高位进位,X-Y,结果溢出,31,定点运算-移位运算,移位运算:移位运算又叫做移位操作。对于计算机使用的二进制编码数据对于小数点作n位左移或右移时,实际就是对该数据乘以或除以2n(n=1,2,n) 移位运算的应用:当我们在计算机里进行乘除法运算的时候,可以采用加法和移位运算进行实现 (1)逻辑移位:无符号数的移位叫做逻辑移位。逻辑移位的规则,逻辑左移时,高位移出,低位添0;逻辑右移时,低位移出,高位添0。 (2)算术移位:,32,例 设机器数字长为8位(含1位符号位),若A=+26或-26,写出三种机器数左、右移一位和两位后的

19、表示形式及对应真值,并分析结果的正确性。 解:(1)A=+26=(+11010)2 则A原=A补=A反=0,0011010 移位结果如表所示,表 对A=+26移位后的结果,定点运算-移位运算,33,定点运算-移位运算,可见,对于正数,三种机器数移位后符号位均不变,左移时最高数位丢1,结果出错;右移时最低数位丢1,影响精度。 (2)A=-26=(-11010)2,34,一般乘法运算,常见的乘法运算规则: A=0.1101 B=0.1011 求A*B,0.1101* 0.10111101110100001101 0.10001111,此运算规则存在的困难: 将四个位积一次相加,机器难于实现; 结果

20、位数增加一倍,造成器材的浪费和运算时间的增加.,35,乘法运算规则,由推理可得出式子: A*B=A*0.1011=2-1A+2-10*A+2-1(A+2-1(A+0) 归纳: 乘法运算可用移位和加法来实现,当两个四位数相乘,总共需做四次加法和四次移位. 由乘数的末位值确定被乘数是否与原部分积相加,然后右移一位,形成新的部分积;同时,乘积也右移一位,由次低位作新的末位,空出最高位放部分积的最低位 每次做加法时,被乘数仅仅与原部分积的高位相加,其低位被移至乘数所空出的高位位置,36,原码一位乘法,算法描述 设X原=Xs.Xn-1Xn-2XiX1X0=Xs.XvY原=Ys.Yn-1Yn-2YiY1Y

21、0=Ys.Yv 则乘积Z原=Zs.Zv=(Xs Ys).(XvYv) 运算规则 (1) 符号单独处理,同号为正,异号为负; (2) 令乘数的最低位为判断位,若为1,加被乘数,若为0,加0; (3) 累加后的部分积右移一位。,定点乘法及除法运算,37,原码一位乘法,例题 已知X=-0.1011,Y=0.1001,求XY原 解: X原=1.1011,Y原=0.1001|X| = 0.1011,|Y| = 0.1001 按原码一位乘法运算规则,求XY原的数值部分。 |X|Y| = 0.01100011, 而Zs = Xs Ys = 1 0 =1 最后求得XY原 = 1.01100011,38,例题之

22、原码一位乘法运算过程,例原码一位乘法运算过程,39,原码两位乘法,原码两位乘法运算规则 参加运算的操作数取其绝对值; 符号位单独处理 欠账触发器Cj初始值为0; 根据乘数的最低两位Yn-1Yn和欠账触发器Cj的值决定每次应执行的操作,见下表; -|X|通过+|X|变补实现,所以右移按补码规则进行; 当乘数的数值位为n位(不连符号位),应作n/2次累加和移位,如有欠账,再作一次加法。,40,其中的+3x的运算,用普通的加法器不能一次完成。如果分为两次执行,则又降低了速度。我们可将3x当做(4x-x)来处理,本次操作执行-x,用一个欠账触发器Cj记下欠账,下一次操作时再补上+4x。由于本次累加后部

23、分积要右移两位,从相对关系来看,相当于被乘数左移了两位,因而下一次实际上只需执行+x,就等于前次完成了+4x操作,下面通过一个实例说明这一关系。 设A=0.0001 X=0.0101,41,由于运算有+2|X|,累加时产生的进位可能侵占符号位,所以被乘数和部分积应取三符号位。乘数需凑足偶数位,以便于两位一组的运算,由于最后可能会有欠账,故乘数应取双符号位,以便最后一次能处理前面留下的欠账。 例 设x=0.111111,y=-0.111001,用原码两位乘法求xy原。 解:x*=0.111111,-x*=1.000001,2x*=1.111110,y*=0.111001,步骤如下表所示,42,4

24、3,定点乘法-补码一位乘法,补码一位乘法-校正法将x补和y补按原码规则运算,所得结果根据情况再加以校正,从而得到xy补。下面分两种情况讨论: 被乘数x的符号任意,乘数y为正数x补y补=xy补 (mod 2)当乘数y0时,不管被乘数x的符号如何都可直接按原码乘法运算,只是移位时按补码规则进行。 例 x补=1.0101,y补=0.1101,求xy补,44,校正法(y0)-例题之解题步骤,所以 xy补=1.01110001,45,被乘数x的符号任意,乘数y为负数x补y补=x补(0.y1y2yn)+-x补其中y补=1.y1y2yn,当乘数y0时,把乘数的补码y补去掉符号位,当成一个正数与x补相乘,然后

25、加上-x补校正(相当于乘以y的符号位),也称校正法。 例 x补=0.1101,y补=1.0101,求xy补解:-x补=1.0011,|y补|=0.0101C,0A,46,所以 xy补=1.01110001,校正法(y0)-例题之解题步骤,47,补码一位乘法-比较法(Booth乘法),Booth乘法的规则如下: 参加运算的数用补码表示; 符号位参加运算; 乘数最低位后面增加一位附加位Yn+1,其初值为0; 根据乘数的最低两位YnYn+1的值决定每次应执行的操作,见表; 移位按补码右移规则进行; 共需做n+1次累加,n次移位。,48,例 已知:X=-0.1101,Y=0.1011,求XY X补=1

26、.0011B Y补=0.1011C 0A -X补=0.1101,XY补=1.01110001,49,补码两位乘法,运算规则: 参加运算的数用补码表示; 符号位参加运算; 乘数最低位后面增加一位附加位Yn+1,其初值为0 根据乘数的最低三位Yn-1YnYn+1的值决定每次应执行的操作,见表; 移位按补码右移规则进行,Z取三符号位,乘数的数值位n为偶数时,取双符号位,n为奇数时,取一个符号位,但最后一次只需移一位,50,例:X=0.0110011,Y=-0.0110010,求XY X补B, Y补=1.1001110C,0A 2X补=000.1100110,-X补=111.1001101,2-X补=

27、111.0011010,初始化Z=0, Yn-1YnYn+1=100,则Z+2-X补,高 位 积,低 位 积,+) 0 0 0. 0 0 0 0 0 0 0,1 1 1. 1 1 0 0 1 1 0,1 1 1. 0 0 1 1 0 1 0,+) 1 1 1. 0 0 1 1 0 1 0,0 0 0. 0 0 0 0 0 0 0,操作说明,乘 数,右移两位, Yn-1YnYn+1=111,Z+0,数值部分Yn-1YnYn+1,数值位,符号位,部 分 积,1. 1 0 0 1 1 1 0 0,1 0 1 1 0 0 1 1 1,+) 0 0 0. 0 1 1 0 0 1 1,1 1 1. 1 1

28、 1 1 0 0 0,1 1 1. 1 1 0 0 1 1 0,1 0 1 0 1 1 0 0 1,+) 1 1 1. 1 0 0 1 1 0 1,0 0 0. 0 0 0 1 0 1 1,1 1 1. 1 0 1 1 0 0 0,0 0 0. 0 1 0 1 1 0 0,0 0 1 0 1 0 1 1 0,0 0 0 1 0 1 0 1 1,右移两位, Yn-1YnYn+1=001,则Z+X补,右移一位,右移两位, Yn-1YnYn+1=110,则Z+-X补,1 1 1. 1 1 0 1 1 0 0,51,除法运算,在计算机内实现除运算时,存在与乘法运算类似的几个问题:加法器与寄存器的配合,

29、被除数位数更长,商要一位一位地计算出来等。这可以用左移余数得到解决,且被除数的低位部分可以与最终的商合用同一个寄存器,余数与上商同时左移。除法可以用原码或补码计算,都比较方便,也有一次求多位商的快速除法方案,还可以用快速乘法器完成快速除法运算。,52,原码加减交替法 符号位不参加运算 先用被除数减去除数(|X|-|Y|=|X|+|Y|变补); Ri0时,商上“1”,做2Ri-|y|的运算。 Ri0时,商上“0”,做2Ri+|y|的运算。 当第n+1步余数为负时,需加上|Y|得到第n+1步正确的余数(余数与被除数同号)。,53,例:X=-0.1011,Y=0.1101,求XY原 X原=1.101

30、1,X*=0.1011 Y原=0.1101,Y*=0.1101,-Y*补=1.0011,商的符号位为 X Y=1 0=1,54,补码加减交替法 补码除法的商也是用补码表示的,上商的规则是:如果X补和Y补同号,则商为正数,上商规则与原码除法相同,即够减时上商“1”,不够减时上商“0”;如果X补和Y补异号,则商为负数,上商规则与同号时相反,即够减时上商“0”,不够减时上商“1”。,55,例:X=0.1000,Y=-0.1010,求XY X补=0.1000 Y补=1.0110,|Y|=0.1101,-Y补=0.1010,56,除法运算总结,57,浮点数算术运算,(1)对阶操作,求阶差: E= EX

31、- EY,使阶码小的数的尾数右移E位,其阶码取大的阶码值; (2)尾数加减; (3)规格化处理; (4)舍入操作,可能带来又一次规格化; (5)判结果的正确性,即检查阶码上下溢出。,浮点数加减运算,58,浮点数加运算举例,X=2010*0.11011011, Y=2100*(-0.10101100) 写出X、Y的正确的浮点数表示:阶码用 4 位移码 尾数用 9 位原码(含符号位 ) (含符号位 )X浮 = 0 1010 11011011Y浮 = 1 1100 10101100 为运算方便,尾数写成模 4 补码形式:MX补= 00 11011011MY补= 11 01010100,59,浮点数加

32、运算举例,X=2010*0.11011011, Y=2100*(-0.10101100) (1)计算阶差: E = EX -EY= EX +(-EY) = 1 010 + 0 100 = 0 110注意:阶码计算结果的符号位在此变了一次反,结果为 -2 的 移码,是X的阶码值小,使其取 Y 的阶码值1100(即 +4);因此,修改 MX补 =00 0011011011(即右移 2 位) (2)尾数求和:00 0011011011+ 11 0101010011 1000101011,60,浮点数加运算举例,X=2010*0.11011011, Y=2100*(-0.10101100) (3)规格

33、化处理: 相加结果的符号位与数值的最高位同值,应执行一次左规操作,故得 MX补 = 1 000101011,EX移 = 1 011 (4)舍入处理:采用 0 舍 1 入方案,要入,在最低位加 111 00010101+ 00 0000000111 00010110 (其原码表示为 1 11101010)(5)检查溢出否:和的阶码为 1011,不溢出 计算后的 X移 = 1 1011 11101010 ,即 23*(-0.11101010),61,浮点数算术运算,(1) 阶码加、减:乘:EX+EY ,除:EX- EY (2) 尾数乘、除:乘:MX*MY , 除:MX / MY (3) 规格化处理

34、; (4) 舍入操作,可能带来又一次规格化; (5) 判结果的正确性,即检查阶码上下溢出。,浮点数乘除运算,62,浮点数乘法运算举例,X=2010*0.1011, Y=2100*(-0.1101)写出X、Y的正确的浮点数表示:阶码用 4 位移码 尾数用 9 位原码(含符号位 ) (含符号位 )X浮 = 0 1010 1011Y浮 = 1 1100 1101,63,浮点数乘运算举例,X=2010*0.1011, Y=2100*(-0.1101)(1)阶码相加: 积的阶码 = EX + EY = 1 010 + 1 100 = 1 110注意:计算结果的阶码符号位在此变了一次反,结果为 +6 的

35、移码(2)尾数相乘:MX*MY = 0.1011*(-0.1101)= -0.10001111(3) (4) (5) 已是规格化数, 不必舍入, 也不溢出最众乘积 MX移 = 1 1110 10001111,即 26 * (-0.10001111),64,浮点数除运算举例,X=2010*0.1011, Y=2100*(-0.1101)(1)阶码相减: 积的阶码 = EX - EY = EX + (-EY) = 1 010 + 0 100 = 0 110注意:计算结果的阶码符号位在此变了一次反,为移码 -2 (2)尾数相除:MX/MY = 0.1011/(-0.1101)= -0.1101(3)

36、(4)(5)已是规格化数, 不必舍入, 也不溢出最众的商 MX移 = 1 0110 1101,即 2-2 *(-0.1101),65,定点运算器的功能与组成,(1)ALU的功能运算器是CPU的重要组成部分,由ALU、寄存器组、执行部件和控制电路等部分构成。算术逻辑单元是中央处理器(CPU)的执行单元,是所有中央处理器的核心组成部分。由与或门等构成的算术逻辑单元,主要功能是进行二进制的算术运算和逻辑运算。 (2)ALU的结构ALU是一种功能较强的组合逻辑电路,如下图所示,Ki取值不同得到的Fi也不同。ALU的基本逻辑结构是超前进位加法器,它通过改变加法器的进位产生函数G和进位传递函数P来获取多种

37、运算能力。,图 ALU的基本结构,66,基本的二进制加法/减法器,全加器的表达式为:Si = Ai Bi Ci Ci+1 = AiBi + BiCi + AiCi,67,基本的二进制加法/减法器,利用全加器可以实现两数的和或差 1、串行加法:从低位开始,每步只完成一位运算的加法。 串行加法器只需要一个全加器和一个进位触发器 计算两个n位数之和,需要n+1步(1位符号位),或n+2步(2位符号位)运算。 高位运算只有等低位运算完成后才能进行,速度较慢 2、并行加法器:可在同一时刻完成n位数的运算。 若采用变形补码表示一个机器数,则符号位需2位,这时需要n+2个加法器。 运算速度比串行进位加法器高

38、很多,这是用足够多的硬件设备换来的,1. 并行加法器,= Ai Bi + (Ai+Bi)Ci-1,di = Ai Bi 本地进位,ti = Ai + Bi 传送条件,则 Ci = di + tiCi-1,2. 串行进位链,进位链,传送进位的电路,串行进位链,进位串行传送,以 4 位全加器为例,每一位的进位表达式为,C0 = d0 + t0C-1,C1 = d1 + t1C0,C2 = d2 + t2C1,C3 = d3 + t3C2,4 位 全加器产生进位的全部时间为 8ty,n 位全加器产生进位的全部时间为 2nty,设与非门的级延迟时间为ty,70,下图给出了补码加法器,图中A0,B0分别为两个操作数的符 号位,A1,B1分别为操作数的最高有效位,要求: 1增加能实现减法运算的逻辑电路,并说明加,减法是如何被控制实现的。 2增加以变形补码进行运算,并且具有溢出检测功能的逻辑电路。,71,减法运算时,加数变补后再与被加数相加,72,定点运算器的基本结构,1.单总线结构的运算器 2.双总线结构的运算器 3.三总线结构的运算器,73,单总线结构的运算器,74,双总线结构的运算器,75,三总线结构的运算器,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 网络科技 > 计算机原理

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报