已阅读5页,还剩72页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1,第三章 运算方法与运算器,计算机中的运算包括两大类: 算术运算 和 逻辑运算 算术运算带符号的定点数和浮点数的加,减, 乘,除法运算 逻辑运算不带符号,不考虑进位的逻辑数(整 数)位到位的运算 本章讨论重点:各种运算方法及其实现,最后讨论 计算机中的重要部件运算器,2,本 章 内 容,一、定点补码加/减法运算 二、定点乘法运算 三、定点除法运算 四、浮点数运算 五、逻辑运算及其实现 六、运算器组织,3,一、定点补码加/减法运算及其实现 (P38),在计算机中,进行定点加/减法运算基本上都是采用补码。 本节讨论计算机中最常用的补码加,减法运算,运算中的溢出问题及补码加,减法运算的实现,4,1.定点补码的加减法运算 基本公式: X + Y补 = X补+ Y补 X-Y补= X补 - Y补= X补+ -Y补 - Y补= Y补求补 “ Y补求补”表示求- Y的方法是:对Y补各位 (包括符合位)取反,然后末位加1 公式的证明见P38P39,5,2-1 0.1B0.5 2-2 0.01B0.25 2-3 0.001B0.125 2-4 0.0001B0.0625,定点补码的加减法运算举例(书P39),6,加减法运算,其运算规则如下: (1)加减法运算操作的数都用补码表示。 (2)求差时将减数求补,用求和代替求差。 (3)数据的符号与数据一样参加运算,能够自然得到运算结果的正确符号。 (4)运算结果为补码。如果符号位为0,表明运算结果为正;如果符号位为1,则表明运算结果为负。 (5)符号位的进位为模值,自然丢掉,不会影响运算结果。,7,2. 定点加减法运算中的溢出问题(P41),1) 溢出: 机器采用定点小数,数的表示范围为x1,如果出现运算结果超出数的表示范围的现象,就称为溢出。 在采用定点整数的情况下,由于机器字长一定,所以能表示的数据范围也是有限的,故存在溢出问题。 产生溢出就会丢失有效数字,计算结果将是错误的,因此,必须解决溢出的判断问题。判断若出现溢出,计算机应能作出相应的处理。,8,例1 x=0.1011,y=0.1101,求x+y补=? x补=0.1011 y补=0.1101 x补 0.1011 y补 0.1101 x+y补= 1.1000 两个正数相加,运算结果是负数,显然结果是错误的-产生了溢出.,9,例2: X=一0.1011,y=一0.1100,求x+y补=? x补=1.0101,y补=10100 x补 1.0101 y补 1.0100 x+y补 0.1001 两个负数相加结果成了正数,运算结果同样是错误的-产生了溢出,归纳: 产生溢出的情况: 正 + 正 得负 或 负 + 负 得正,10,2) 补码加法的几种情况及其溢出检测,溢出检测方法:,采用变形补码判断溢出,利用符号位的进位信号判断溢出,11,(双符号数溢出检测),OF Sf1 Sf2,采用变形补码判断溢出,12,符号位进位Cn,最高位进位Cn1,利用符号位的进位信号判断溢出,(单符号数溢出检测),13,单符号数溢出检测,溢出信号OF对应的真值表,OF=CnCn1,实现:只需要增设一个半加器来产生溢出标志,14,加法运算的逻辑实现(P43),X补X0 X1Xn,Y补Y0 Y1.Yn,+,?0 ? 1.?n,多位加法运算依赖于各位逐位相加的运算, 所以我们先讨论一位全加器,15,一 位 全 加 器,全 加 器真值表,16,一位全加器逻辑表达式,注意:逻辑表达式可以变形,故电路形式不是唯一的。,P44:改错,17,18,一位全加器逻辑电路实现,一位全加器,一位全加器时间延迟时间 书 P44,19,串行进位加/减法器电路实现,1、N个全加器整合起来 2、M控制加减(M0:加法;M1:减法) 3、 串行进位加法器的运算速度取决于进位信号的传输速度,而不在于全加器电路方案的选择。,Cn-1,C1,C0,Cn-2,xn-1 yn-1 xn-2 yn-2 xn-3 yn-3 x1 y1 x0 y0,sn-1 sn-2 sn-3 s1 s0,C1,n-1,n-2,n-3,1,0,M,溢出,20,先行进位加法器,提前产生各位的进位输入 使得各位的加法运算能并行进行 提高多位加法器运算速度,end,21,二、定点乘法运算及其实现P(45),1、原码乘法运算方法 2、原码乘法运算方法的实现 3、补码乘法运算方法 4、补码乘法运算方法的实现,22,1. 原码一位乘法运算,设被乘数 x原=xf . x1x2xn 乘 数 y原=yf . y1y2yn 乘 积 P原=(xf yf)(0. x1x2xn)(0. y1y2yn) 符号处理 : 可由异或运算得到。 Pf= xf yf,原码乘法定义:符号位单独运算,将两个操作数的数码位相乘,最后给乘积冠以正确的符号(原码一位乘法:从乘数的最低位开始,每次取一位乘数与被乘数相乘,最后累加结果),23,原码一位乘法操作过程类似十进制乘法的运算过程,例:x=0.1101 y=0.1011 手算: 0.1101 0.1011 .1101 .1101 位积,每次左移一位。 .0000 + .1101 0.10001111,在计算机中实现存在两个问题: 乘积的尾数为2n位,加法器需2n位长。,因此, 机器做乘法时,需改进。,4个部分积一次相加,实现困难,且n个部分积还需要n个存储单元存放.,24,0.1101 0.1011 1101 0110 1 + 1101 10011 1 1001 11 + 0000 1001 11 0100 111 + 1101 10001 111 1000 1111,手算算法的改进: 每获得一次部分积,立即与上一次的部分积相加,然后将结果右移一位,n次的“相加右移”操作结束,乘法运算操作结束,xy = 0. 1 0 0 0 1 1 11,x=0.1101 y=0.1011,例:手工计算;12511,25,例:x= 0.1101 y=0.1011,求xy?,部分积 乘数判断位 说明 0.0000 yf.1011 P0=0 0.1101 yn=1,X 0.1101 0.0110 1 yf.1011 右移一位得P1 0.1101 yn=1,X 1.0011 1 0.1001 11 yf.1011 右移一位,得P2 0.0000 yn=0,0 0.1001 11 0.0100 111 yf.1011 右移一位,得P3 +0.1101 yn=1,X 1.0001 111 0.1000 1111 右移一位,得P4,由于 Pf= xf yf= 00 = 0 所以 x y 0. 1 0 0 0 1 1 1 1,n为4,所以进行4次 “相加右移”操作,部分积初值为“0”,注意:部分积右移时左边补的一位应与原符号位相同,26,原码乘法 算法流程图,利用相加、移位实现了乘法运算,27,2. 原码乘法运算的实现(逻辑结构),加法器,R0, R1 均为n1位,因为符号位参加了运算,28,3. 补码一位乘法,补码乘法定义:采用操作数的补码进行乘法运算,最后乘积仍然是补码,且能够自然得到乘积的正确符号。,补码一位乘法:从乘数的最低位开始,每次取一位乘数与被乘数相乘,经过(n1)次“相加右移”,完成乘法运算的过程,补码乘法的运算规则:比较法(Booth法) 具体如下,29,比较法(Booth法)的来由:,基于补码乘法公式: x补.y补. x.y补 x补 . y,30,P(50)补码一位乘法运算规则(比较法),1)符号位参与运算,运算数均以补码表示 2)部分积的初值为0 3)乘数末位增设附加位yn+1,其值设为0 4)从乘数附加位yn+1 开始,每次取两位yn yn+1 作为为判断位,按如下规定完成“相加右移” 操作:,31,. yn yn+1 为判断位, 根据判断结果进行如下操作: yn yn+1 yn+1 yn 操作 0 0 0 + 0, 部分积右移1位 0 1 1 + x补 ,部分积右移1位 1 0 1 + x补 ,部分积右移1位 1 1 0 + 0 , 部分积右移1位,补码一位乘法运算规则(续),5)以上操作需要进行n1次,最后一次不移位,即 可得到乘积的补码,32,3、实例和运算规则,例:x = - 0.1101, y = - 0.1011, 求x.y?,被乘数: X补 = 1.0 0 1 1 - X补 = 0.1 1 0 1 乘数: y补 = 1. 0 1 0 1,33,设寄存器初值: 初始部分积: P0= 0.0000 被乘数:X补 = 1.0011 乘数:C = y补=1.0101 -X补 = 0.1101,步数 条件 P C Cn Cn+1,注意:部分积右移时左边补的一位应与原符号位相同,34,运算结果: x.y补 0. 1 0 0 0 1 1 1 1 x .y 0. 1 0 0 0 1 1 1 1 143,35,4、补码一位乘法逻辑结构,end,36,三、定点除法运算及其实现,1、原码除法运算方法 2、补码除法运算方法(自学),37,1. 原 码 除 法 运 算,1. 恢 复 余 数 法 2. 加 减 交 替 法,符号位单独运算,两个操作数的绝对值相除,最后给商和余数冠以正确的符号,38,设:被除数x的原码 x原=xf.x1x2xn 除 数 y的原码 y原=yf.y1y2yn 商q = x/y的原码 q原 = (xfyf) (x1x2xn / y1y2yn) 商的符号 qf= xfyf 单独处理,39,商的数值部分:若x1x2xny1y2yn 要求:1)不能产生溢出 如果商1-产生溢出.(定点除法商的小数点前面一位不能为”1“) 故在执行除法前,先要判溢出。不溢出才能进行除法运算操作。 2) 另外除数不能为0! 例 x=0.1001 y=0.1011 求xy=?,40,1.手算 0.1101 0.1011 0.10010 R0 商0, 被除数小于除数, - 0.01011 2-1y 商1, 除数右移1位,减除数 0.001110 R1 得余数R1 - 0.001011 2 -2y 商1 除数右移1位,减除数 0.0000110 R2 得余数R2 0.0001011 2 -3y 商0 除数右移1位,不减除数 0.00001100 R3 得余数R3(= R2 ) - 0.00001011 2 -4y 商1 除数右移1位,减除数 0.00000001 R4 得余数R4 除数右移四次,共求得四位商,至此除法完毕。 得的 商 为 q=0.1101 余数为R=0.00000001 够减商上1,不够减商上0,x=0.1001 y=0.1011 求xy=?,除 法 运 算上商的过程也就是余数和除数相减 进行大小比较的过程),41,机器 做 除 法 运 算 时,:,手算: 62.526 25 = ?,变减法为加法,考虑如何减少加法器位数 变右移为左移,改进:,42,1. 恢 复 余 数 法,每次操作先做一次减法,由被除数减除数, 由余数的符号判产生溢出否来决定后面的操作。(符号为正,溢出,为负:未溢出,加回除数以恢复被除数,往下进行除法操作) 余数为负,不够减,商“0”,加除数,即将被减余数恢复还原 余数为正, 够减, 商”1“,余数左移一位补0,得到新余数,运算规则:,43,余数恢复还原以后再左移一位补0 ,得到新的余数(故称 恢 复 余 数 法)。 机器中减法采用补码运算,减法变为加法 例 : x=0.1001 y = 0.1011 求x y = ? x补=0.1001 y补= 0.1011 -y补= 1.0101,44,0. 1 0 0 1 商 +-y补 1. 0 1 0 1 x-y 1. 1 1 1 0 R00 0 1 0. 1 1 1 0 R1 +-y补 1 . 0 1 0 1 0. 0 0 11 R20 0 1 1 0. 0 1 1 0 R2 +-y补 1. 0 1 0 1 1. 1 0 1 1 R30 0 1 1 0 1,注:如果R40时,要恢复余数,即需要再加一次y补,q=0.1101 R=0.0001 2-4,例: x=0.1001 y=0.1011 求x / y = ?,“ 2-4”是因为运算过程中左移了4次,所以需要还原,x补=0.1001 y补= 0.1011 -y补= 1.0101,45,恢 复 余 数 法 缺点: 商“0”时需要恢复余数,影响了除法运算速度 不同的操作数,恢复的次数不同,操作步数不定。 符号位需要单独运算,46,2. 加减交替法(不恢 复 余 数 法 ),运算规则: 1)余数为正,商1,余数左移一位,减 除数; 2)余数为负 ,商0,余数左移一位,加 除数; 3)重复1)2),包括符号位共做n+1步。 4)如果最后一次操作所得余数为负 值,要加一次+y补 ,以纠正余数,47,得到被恢复的余数Ri1 ,然后进入下一轮的操作是: Ri1左移一位,再减去y,可得到第i+1次的操作结果:,Ri1 2(2 Ri y) y =4 Ri y,2(2 Ri) y 4 Ri y,Ri1 (2 Riy)y2 Ri,Ri1 (2 Riy );,改进:当 Ri1 0时,商0以后,不恢复余数,直接进入下一轮的操作:将Ri1左移一位后,是加上y而不是减去y 。即第i+1次的操作结果为:,“加减交替法”的产生讨论:恢复余数算法第i+1次的操作过程为:,即将余数Ri左移一位后减去除数y 得到新的余数Ri1 ,当 Ri1 0时,商“0”以后,要恢复余数,就要进行“+y”的操作,于是有:,48,分析结果说明,恢复余数的操作并不是必须的,而是可以将恢复余数改进为:,运算规则:1)余数为正,商1,余数左移一位,减除数; 即当 Ri1 0时,商1,下次作2 Ri1 - Y 2)余数为负 , 商0,(直接进入下次操作):余数左移一位,加除数; 即当 Ri1 0时,商0,下次作2 Ri1 Y,“加减交替法”由此得名,NO!,49,0. 1 0 0 1 商 +-y补 1. 0 1 0 1 x-y 1. 1 1 1 0 R00 01 0. 1 1 1 0 R1 +-y补 1. 0 1 0 1 0. 0 0 11 R20 01 1 0. 0 1 1 0 R2 +-y补 1. 0 1 0 1 1. 1 0 1 1 R30 01 1 0 1 qf= xfyf =0 0=0,q=0.1101 R =0.0001 2-4,“加减交替法” 例: x=0.1001 y=0.1011 求x / y = ?,50,注:如果最后一次操作所得余数为负值,要加一次+y补 ,以纠正余数 例: 见书P58例2,51,补 码 除 法 运 算 P书6061(自学),end,52,四、浮点数的加减法运算,浮点数的加减法运算操作数采用补码,减 法转换为加法运算,设有两个浮点数和,它们分别为 2m M 2n M 其中m和n分别为数和的阶码,M和M为数和的尾数。,53,当两数阶码 mn时,只需要对M和M按定点数加减法运算即可, 2m 不变。 即 x+y = 2m (Mx+My),(浮点数的加减法运算),54,五个基本步骤 对阶 尾数求和 规格化(左规,右规) 舍入(截去、0舍1入) 检查溢出,当两数阶码 m n 时,浮点数的加减法运算则需按以下步骤进行,55,(1)对阶:使两数阶码相等(小数点位置 对齐,尾数对应权值相同)。,(3)对阶操作:小阶阶码增大,尾数右移。 尾数右移1位,阶码加1.,(2)对阶规则: 小阶向大阶对齐。,(4)阶码比较:比较线路或减法。 (浮点运算部件中设置了专门的阶码加法器来 实现阶码加减法运算),1. 对 阶,56,2.尾数运算- 与定点加、减法相同,3.结果规格化 正数 00.1 负数 11.0,当尾数的两位符号位相异时,则需要进行规格化处理: 1)尾数符号位为01或10时,需要右规,尾数右移1位 阶码加1一次: 经规格化的尾数为 00.1XXX 或 11.0XXX 2)尾数符号位为11.1或00.0时,需要左规,尾数左 移1位,阶码减1一次: 经规格化的尾数为11.0XXX 或 00.1XXX,尾数符号位扩展为两位,57,4.舍入 只有在右移时(对阶,右规),才会遇到舍入问题。常用的方法为 “0舍1入” 或“末位恒置1”法 例如 00. 0101 (尾数保留4位) 右移1位 00. 0010 1 对1的处理方法: 1) 0舍1入 00.0011 2)末位恒置1 00.0011,58,5.溢出判断 结果的阶码是否超出了它所能表示的范围.,1)尾数符号位为01或10,不表示溢出,需要规格化, 2)在浮点数中,阶码的位数决定数的表示范围。当阶码的符号位出现溢出时表示运算结果溢出。 阶码符号位为01或10,表示溢出 尾数符号为正:正溢出 尾数符号为负:负溢出,59,例1: x=20100.110101,y=2100(- 0.101010), 求x+y补 (0舍1入) 解: x补=00010,00.110101 y补= 00100,11.010110 Ey补 =11100 1.对阶 求阶差 ExEy 00010 + 11100 11110 - 010 - 2 Ex向Ey看齐,即将x尾数右移2次,使得Ex=Ey. (0舍1入) : x补= 20110.0110101= 20110.011011 = 21000.0011011= 21000.001110,60,2.尾数相加 00.001110 + 11.010110 11.100100 3.规格化 因出现 11.1,所以应左 规.(尾数左移1位,阶码减1) x+y补 = 210011.100100 = 201111.001000,x补= 00100, 00.001110 y补= 00100, 11.010110,61,例2: x=2100.1101, y=2010.1011, 求x+y补 (0舍1入) 解:x补=0010,00.1101 y补= 0001,00.1011 1.对阶 求阶差 ExEy 0001 + 1111 0001 - 1 Ey向Ex看齐,即将y右移1次,使得Ex=Ey. y补= 2100.01011= 2100.0110 2.尾数相加 00.1101 + 00.0110 01.0011 3.规格化 因出现 01.1,所以应右规.(尾数右移1位,阶码加1) x+y补 = 21001.0011= 21100.10011 4.舍入 = 21100.1010 5.无溢出,62,例3 设x=2-1010.110100, y=2-100(-0.101111) 求x-y补=? 采用0舍1入法。 解 1)求阶差(是用补码进行运算) + 阶差为,x的阶码比y的阶码小 2)对阶-x的阶码向y的阶码看齐,阶码加1,尾数右移1位。 x=2111000.011010 3)尾数运算 4)规格化 尾数右移1位,阶码加1 x-y补=21110001.001001 =21110100.1001001 采用0舍1入后 =21110100.100101, x-y补 =2111010.100101,63,五. 逻辑运算及其实现,64,六、 运算器的分析和组成 运算器是数据的加工处理部件 是CPU的重要组成部分 其核心是加法器,65,1、运算器的功能,1. 对数据进行算术运算和逻辑运算 2. 暂时存放参加运算的数据及运算的中间结果 3. 选取相应部件中的数据参与运算 4. 反映运算处理的状态,66,一位全加器逻辑电路实现,一位全加器,67,串行进位加/减法器电路实现,加法器的运算速度取决于进位信号的传输速度,而不在于全 加器电路方案的选择。,(一位全加器时间延迟时间 书 P44),68,如何提高
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司齿轮装配工合规化技术规程
- 公司过程控制系统点检员岗位安全技术规程
- 经编工岗前基础应用考核试卷含答案
- 农村建房换地协议书
- 频带分配的规范化管理方案
- 高精度运动控制前馈补偿配置方案
- 湖北省黄冈市蕲春县2025-2026学年七年级上学期10月月考语文试题(含答案)
- 黑龙江省牡丹江市某中学2024-2025学年高二年级下册期末考试数学试卷(含答案解析)
- 河北省唐山市丰润区2024-2025学年三年级上学期语文期中考试试卷(含答案)
- 第十三章 三角形全章培优测试卷(必考点分类集训)(人教版2024)(解析版)
- 国企笔试题库及答案
- 全国大学生职业规划大赛《智慧健康养老服务与管理》专业生涯发展展示【高职(专科)】
- 纪检工作管理制度汇编
- 打击反诈宣传课件
- 相见欢课件教学
- 2025年中国嘧霉胺行业市场分析及投资价值评估前景预测报告
- 库房消防应急预案方案
- 2025年事业单位招聘考试《林业基础知识》题库及答案解析
- 2025年科研伦理与学术规范考核试卷答案及解析
- 倒闸操作安全培训课件
- GB/T 46122.8-2025烟花爆竹特定化学物质检测方法第8部分:砷含量的测定氢化物发生-原子荧光光谱法
评论
0/150
提交评论