收藏 分享(赏)

计算机组成原理——2.ppt

上传人:fcgy86390 文档编号:8024344 上传时间:2019-06-04 格式:PPT 页数:174 大小:2.48MB
下载 相关 举报
计算机组成原理——2.ppt_第1页
第1页 / 共174页
计算机组成原理——2.ppt_第2页
第2页 / 共174页
计算机组成原理——2.ppt_第3页
第3页 / 共174页
计算机组成原理——2.ppt_第4页
第4页 / 共174页
计算机组成原理——2.ppt_第5页
第5页 / 共174页
点击查看更多>>
资源描述

1、第2章 运算方法和运算部件,第二章 运算方法和运算部件,2.1 数据的表示方法和转换 2.2带符号的二进制数据在计算机中的表示方法及加减法运算 2.3 二进制乘法运算 2.4 二进制除法运算 2.5 浮点数的运算方法 2.6 运算部件 2.7 数据校验码,1.二进制、八进制、十进制和十六进制的概念、表示 及互换。 2.什么是真值?什么是机器数?机器数的正负如何表示? 2.什么是BCD码? 4.什么是有权码?什么是无权码?常见的无权码有哪几种? 5.数字串在计算机有哪几种表示方法?各有什么特点?,2.1 数据的表示方法和转换,2.1 数据的表示方法和转换,2.1.1 数值型数据的表示和转换, 数

2、制,任意一个十进制数(N)10可表示为:,任意一个八进制数可表示为:,任意一个二进制数可表示为,2.1 数据的表示方法和转换,2.1.1 数值型数据的表示和转换, 数制,任意一个十六进制数可表示为:,二、八、十六和十进制数的对应关系,二进制数 八进制数 十六进制数 十进制数,0 0 0 0 0 0 0 0,0 0 0 1 0 1 1 1,0 0 1 0 0 2 2 2,0 0 1 1 0 3 3 3,0 1 0 0 0 4 4 4,0 1 0 1 0 5 5 5,0 1 1 0 0 6 6 6,0 1 1 1 0 7 7 7,1 0 0 0 1 0 8 8,1 0 0 1 1 1 9 9,1

3、0 1 0 1 2 A 1 0,1 0 1 1 1 3 B 1 1,1 1 0 0 1 4 C 1 2,1 1 0 1 1 5 D 1 3,1 1 1 0 1 6 E 1 4,1 1 1 1 1 7 F 1 5,不同数制间的数据转换,二进制数或十六进制数转换为十进制数,方法:按权展开,十进制整数转换为二或十六进制数,整数部分转换:用除法 十进制数整数部分不断除以基数2或16,并记下余数,直到商为0为止 由最后一个余数起逆向取各个余数,则为转换成的二进制和十六进制数,2.1 数据的表示方法和转换,2.1.1 数值型数据的表示和转换,2.1 数据的表示方法和转换,2.1.1 数值型数据的表示和转换

4、,不同数制间的数据转换,十进制小数转换为二或十六进制数,小数部分转换:用乘法 分别乘以各自的基数,记录整数部分,直到小数部分为0为止 小数转换会发生总是无法乘到为0的情况 可选取一定位数(精度) 将产生无法避免的转换误差,2.1.2 十进制数的编码与运算, 有权码:表示一位十进制数的二进制码,其每一 位有确定的权。(BCD码), 十进制数的编码与运算,2.1 数据的表示方法和转换,二进制数,自然码,8421码,2421码,5421码,四位有权码,5211码,0,1,2,3,4,5,6,7,8,9, 无权码: 表示一位十进制数的二进制码,其每一 位没有确定的权。,0 1 2 3 4 5 6 7

5、8 9,0011 0100 0101 0110 0111 1000 1001 1010 1011 1100,0000 0001 0011 0010 0110 1110 1010 1000 1100 0100,0000 0100 0110 0010 1010 1011 0011 0001 1001 1000,2.1.2 十进制数的编码与运算, 十进制数的编码与运算, 数字串在计算机内的表示与存储,主要有两种形式:, 字符形式:一个字节存放一位十进制数或符号位。, 压缩的十进制数形式:一个字节存放二位十进制数。,2.1.2 十进制数的编码与运算,2.1 数据的表示方法和转换,十进制数串的表示方法,

6、1.字符串形式每个十进制的数位或符号位都用一个字节存放,-38,2.压缩的十进制数串形式一个字节存放两个十进制的数位,+12,123,-12,每个数位可用BCD码或ASCII码,2.1.2 十进制数的编码与运算,ASCII码 汉字的表示,2.1.2 字符编码,2.1 数据的表示方法和转换, ASCII码,“美国标准信息交换代码”(American Standard Code for Information Interchange),简称ASCII码。7位二进制编码,可表示27=128个字符。 ASCII码中,编码值031不对应任何可印刷(或称有字形)字符,通常称它们为控制字符,用于通信中的通信

7、控制或对计算机设备的功能控制。编码值为32的是空格(或间隔)字符SP。编码值为127的是删除控制DEL码。其余的94个字符称为可印刷字符。,2.1.2 字符编码,2.1 数据的表示方法和转换,ASCII字符编码表,0-3位,4-7位,汉字的表示,特点: (1)汉字是一种象形文字,据统计,从甲骨文至今约有六万左右的汉字。目前常见的汉字有约七千个。 (2)汉字字形结构复杂,笔划繁多。 (3)汉字同音字多,多音字多。涉及多种编码:,2.1.2 字符编码,2.1 数据的表示方法和转换,汉字的输入编码,数字编码 国标区位码,用数字串代表一个汉字输入 字音编码 以汉字拼音为基础的输入方法 字形编码 用汉字

8、的形状(笔划)来进行的编码 例如五笔字形 混合编码,汉字交换码,汉字交换码是不同的汉字处理系统之间交换信息用的编码,汉字内码,汉字内码是用于汉字信息的存储、检索等操作的机内代码,一般采用两个字节表示 汉字内码有多种方案,常以国标码为基础的编码例如,将国标码两字节的最高位置1后形成汉字“啊”的国标码3021H (0011 0000 0010 0001)对应的汉字内码B0A1H (1011 0000 1010 0001),字模码,汉字的字模码为: 16位 16位=32字节,汉字字模点阵及编码,汉字的表示方法,汉字的输入编码、交换码、汉字内码、字模码是计算机中用于输入、内部处理、交换、输出四种不同用

9、途的编码。,字符代码化(输入),2.2.1 无符号数和带符号数,8 位 0 255,16 位 0 65535,2.2 带符号数的表示方法及加减法运算,无符号数,带符号的数 符号数字化的数,+ 0.1011,+ 1100, 1100, 0.1011,真值 机器数,6.1,2.2.1 无符号数和带符号数,2.2 带符号数的表示方法及加减法运算,带符号数,2.2 带符号数的表示方法及加减法运算,2.2.2 原码、补码、反码、移码,原码表示法,规则:机器数的最高一位表示符号,“0”表示正号;“1”表示负号,后面各位用数的绝对值表示。,定点整数的原码形式为x0x1x2 xn,+0原 =00000000

10、-0原 =10000000,2.2 带符号数的表示方法及加减法运算,2.2.2 原码、补码、反码、移码,原码表示法,定点小数的原码形式为x0.x1x2 xn,+0原 = 0.00 -0原 = 1.00,原码表示的优缺点 优点:数的原码与真值之间的关系比较简单。 缺点:在机器中进行加减法运算的规则比较复杂。两数相加时,同号:数值相加异号:相减相减时,要比较绝对值大小,然后大数减小数,最后还要选择恰当的符号。,2.2 带符号数的表示方法及加减法运算,2.2.2 原码、补码、反码、移码,原码表示法,2.2 带符号数的表示方法及加减法运算,2.2.2 原码、补码、反码、移码,补码表示法,整数的补码X补

11、为整数X的补码,X为任意整数,n为整数的位数。 小数的补码:X补是小数X的补码,X为任意小数,2为模数。,2.2 带符号数的表示方法及加减法运算,2.2.2 原码、补码、反码、移码,补码表示法,X1补= +0.0000补=0.0000X2补= -0.0000补=10.0000-0.0000=10.0000=0.0000 mod 2,结论:数值0的补码表示形式中唯一的。,X=+0.1011, X补=0.1011X=-0.1011, X补=2+X=10.0000+(-0.1011)=1.0101,2.2 带符号数的表示方法及加减法运算,2.2.2 原码、补码、反码、移码,补码表示法,当补码加法运算

12、的结果不超出机器范围时,可得出以下重要结论:用补码表示的两数进行加法运算,其结果仍为补码。不管各数符号如何,都可用补码直接进行加法运算。X+Y补=X补+Y补符号位与数值位一样参与运算,变减法为加法。X-Y补=X补+-Y补,2.2 带符号数的表示方法及加减法运算,2.2.2 原码、补码、反码、移码,补码表示法,若寄存器A、B分别保存了X补、Y补,要求: 描述加法器实现X+Y补A的过程? 描述加法器实现X-Y补A的过程?,2.2 带符号数的表示方法及加减法运算,2.2.2 原码、补码、反码、移码,反码表示法,小数的反码:,整数的反码:,2.2 带符号数的表示方法及加减法运算,2.2.2 原码、补码

13、、反码、移码,反码表示法,0的反码不唯一:整数0 +0反= 000-0反= (2n+1-1) + (-000) = 111 (mod 2n+1-1 )小数0 +0反= 0.000-0反= 2 - 2-n - 0.000 = 1.11 (mod 2-2-n),数据从补码、反码表示形式转换成原码 (1) X补补=X原 (2) X反反=X原,2.2 带符号数的表示方法及加减法运算,2.2.2 原码、补码、反码、移码,三种机器数的小结,对于正数,原码 = 补码 = 反码,例:设机器数字长为 8 位(其中一位为符号位) 对于整数,当其分别代表无符号数、原码、补码和 反码时,对应的真值范围各为多少?,-0

14、,-1,-128,-127,-127,-126,-3,-2,-1,2.2 带符号数的表示方法及加减法运算,2.2.2 原码、补码、反码、移码,移码表示法,x 为真值,n 为 整数的位数,移码在数轴上的表示,即无论x是正还是负,一律加上2n,称2n为基数,2.2 带符号数的表示方法及加减法运算,2.2.2 原码、补码、反码、移码,移码表示法,移码与补码的关系:,真值是正数时,移码是补码的最高位加1;真值是负数时,移码是补码的最高位减1。,设 x = +1100100,x移 = 27 + 1100100,x补 = 01100100,设 x = 1100100,x移 = 27 1100100,x补

15、= 10011100,= 11100100,= 00011100,1,0,0,1,2.1.5 数的机器表示,移码表示法,0的移码唯一:整数0 +0移= 2n + 000 = 1000-0移= 2n - 000 = 1000,用移码表示浮点数的阶码,能方便地判断浮点数的阶码大小,2.1 数据与文字的表示方法,2.2 带符号数的表示方法及加减法运算,真值、补码和移码的对照表,- 1 0 0 0 0 0, 0 0 0 0 0,+ 1 1 1 1 1,0 0 0 0 0 0,1 1 1 1 1 1,0 0 0 0 0 0,1 0 0 0 0 0,2.2 带符号数的表示方法及加减法运算,移码的计算,对于

16、n+1位的二进制整数X=X0X1X2.Xn,移码定义为:,X移2n +X -2n X2n,例:设n=4,X=1010、Y=-1010,求:X移=?Y移=?,解:X移=2n+X= 24+1010=10000101011010Y移=2n+Y= 24+(-1010)=10000-1010=00110,2.2.2 原码、补码、反码、移码,2.2 带符号数的表示方法及加减法运算,移码的计算,例:设n=4,X=0010、Y=0101,求:X+Y移=? 解:本题中取:X+Y=0010+0101=0111X+Y移=2n+(X+Y)= 24+0111=10111,X+Y移=Y移+X移+ 2n,若采用移码进行加法

17、运算,怎样才能得到正确的X+Y移? X移=2n+X= 24+0010=10010Y移=2n+Y= 24+0101=10101Y移+X移=10010+ 10101= 00111X+Y移=Y移+X移+ 2n=00111+10000=10111,2.2.2 原码、补码、反码、移码,2.2 带符号数的表示方法及加减法运算,2.2.2 原码、补码、反码、移码,正数的原码、反码、补码等于真值,只有负数才分别有不同的表示方法 采用补码,减法运算可以用加法运算实现,节省硬件,目前机器中广泛采用补码表示法 有些机器用原码进行存储和传送,运算时改用补码 有些机器做加减法时用补码,做乘除法时用原码 移码表示法主要用

18、于表示浮点数的阶码,可以直接比较大小。表示范围和补码相同,只有最高位相反,总结,2.2 带符号数的表示方法及加减法运算,2.2.3 补码的加减运算及其溢出的处理,加减运算,补码加法运算的公式: x补+y补= + 补,补码减法运算的公式:-补 x补-y补x补 -y补,例:0.1001,0.0101,求,x 补0.1001,y 补0.0101x 补 0.1001 y 补 0.0101 + 补 0.1110 所以 0.1110,2.2 带符号数的表示方法及加减法运算,2.2.3 补码的加减运算及其溢出的处理,加减运算,2.2 带符号数的表示方法及加减法运算,2.2.3 补码的加减运算及其溢出的处理,

19、加减运算,例:+0.1101,+0.0110,求-,x补0.1101, y补0.0110 -y补1.1010 x 补 0.1101 -y 补 1.1010 - 补 10.0111 所以 0.0111,2.2 带符号数的表示方法及加减法运算,2.2.3 补码的加减运算及其溢出的处理,加减运算,A=10 B=710+7 : 0 1010,0 0111,1 0001,A= -10 B= -7-10+(-7):,0 1111,1 0110 1 1001,溢出!,例:,2.2 带符号数的表示方法及加减法运算,2.2.3 补码的加减运算及其溢出的处理,溢出的处理,1、 什么是溢出?当运算结果超出机器数所能

20、表示的范围时,称为溢出。两个异号数相加或两个同号数相减,其结果是不会溢出的。仅当两个同号数相加或者两个异号数相减时,才有可能发生溢出的情况。,两个正数相加,结果为负称为上溢(正溢)。 两个负数相加,结果为正称为下溢(负溢)。,2.2 带符号数的表示方法及加减法运算,2.2.3 补码的加减运算及其溢出的处理,溢出的处理,A=10 B=710+7 : 0 1010,0 0111,1 0001,A= -10 B= -7-10+(-7):,0 1111,1 0110 1 1001,溢出!,正溢,负溢,例:,2.2 带符号数的表示方法及加减法运算,2.2.3 补码的加减运算及其溢出的处理,溢出的处理,2

21、、溢出条件及实现逻辑,方法一:fA,fB表示两操作数(A、B)的符号位,fS为结果的符号位。 若两正数相加结果为负或两负数相加结果为正,都有溢出产生。 即:,2.2 带符号数的表示方法及加减法运算,2.2.3 补码的加减运算及其溢出的处理,溢出的处理,方法二:当任意符号两数相加时,如果CCf ,运算结果正确,其中C为数值最高位的进位,Cf 为符号位的进位。如果CCf ,则为溢出,即:,当最高位和次高位不是同时产生进位,则结果溢出。,正确,0 0011 0 0010,(1)A=3 B=23+2:,0 0101,(2)A=10 B=710+7:,0 1010 0 0111,1 0001,正溢,正确

22、,负溢,正确,正确,(3)A= -3 B= -2 -3+(-2):,1 1011,1 1101 1 1110,(4)A= -10 B= -7-10+(-7):,0 1111,1 0110 1 1001,(5)A=6 B= -46+(-4):,0 0010,0 0110 1 1100,(6)A= -6 B=4-6+4:,1 1110,1 1010 0 0100,Cf=0 C =0,Cf=0 C =1,Cf=1 C =1,Cf=1 C =0,Cf=1 C =1,Cf=0 C =0,1,1,1,1,1,1,2.2 带符号数的表示方法及加减法运算,2.2.3 补码的加减运算及其溢出的处理,溢出的处理,

23、方法三:采用双符号位fS2 ,fS1 。正数的双符号位为00,负数的双符号位为11。符号位参与运算,当结果的两个符号位fS1 、fS2 不相同时,为溢出。即:,fs2fs1 : 00结果为正,无溢出 01正溢 10负溢 11结果为负,无溢出不论溢出与否,结果符号为fs2.,(1)3+2:,正确,00 0011 00 0010,00 0101,(4)10+7:,00 1010 00 0111,01 0001,正溢,正确,负溢,正确,正确,(2)-3+(-2):,11 0111,11 1101 11 1110,(5)-10+(-7):,10 1111,11 0110 11 1001,(3)6+(-

24、4):,00 0010,00 0110 11 1100,(6)-6+4:,11 1110,11 1010 00 0100,第一符号位fs2,第一符号位fs2,2.2 带符号数的表示方法及加减法运算,2.2.4 二进制加法器,全加器,2.2 带符号数的表示方法及加减法运算,2.2.4 二进制加法器,全加器,全加器的表达式为:Si = Ai Bi Ci Ci+1 = AiBi + BiCi + AiCi 一位全加器内部逻辑图:,2.2 带符号数的表示方法及加减法运算,2.2.4 二进制加法器,串行进位加法器,2.2 带符号数的表示方法及加减法运算,串行进位加法器,如何提高加法器工作速度呢?,2.2

25、 带符号数的表示方法及加减法运算,2.2.4 二进制加法器,先行进位加法器,超前进位的主要目标:使C1、C2、C3、C4同时产生而不是依次产生。 如何使C1、C2、C3、C4同时产生?,4位先行进位加法器递推公式,当全加器的输入均取反码时,它的输出也均取反码。 将上式改写成如下:,4位先行进位加法器递推公式,四位超前进位加法器的逻辑图,2.2 带符号数的表示方法及加减法运算,2.2.4 二进制加法器,ALU74181,功能表能执行16种算术、16种逻辑运算,2.2 带符号数的表示方法及加减法运算,2.2.4 二进制加法器,ALU74181,输入/输出信号: A0A3、B0B3: 参加运算的两个

26、数 S0S3 : 选择控制端-选择不同的算术和逻辑运算 M : 状态控制端,为高电平执行逻辑运算;为低电 平执行算术运算 Cn :ALU的最低进位位 F0F3:ALU的运算结果 Cn+4 :ALU最高位产生的进位 G、P :ALU的进位产生与传递,2.2 带符号数的表示方法及加减法运算,2.2.4 二进制加法器,ALU74181,用4片74181电路可组成16位ALU,片内进位快速,但片间进位是逐片传递的,由此形成F0F15的时间还是比较长。,若把16位ALU中的每四位作为一组,用位间快速进位的形成方法来实现16位ALU中“组间快速进位”,那么就能得到16位快速ALU。,2.2 带符号数的表示

27、方法及加减法运算,2.2.4 二进制加法器,ALU74181,74181: 实现算术逻辑运算及组内并行。 74182:接收了组间的辅助函数后,产生组间的并行进位信号CIII 、CII 、CI,分别将其送到各小组的加法器上。,2.3 定点乘法运算,2.3.1 定点原码一位乘法,分析笔算乘法,A = 0.1101 B = 0.1011,AB = 0.10001111,0 . 1 1 0 1,0 . 1 0 1 1,1 1 0 1,1 1 0 1,0 0 0 0,1 1 0 1,0 . 1 0 0 0 1 1 1 1,符号位单独处理,乘数的某一位决定是否加被乘数,4个位积一起相加,乘积的位数扩大一倍

28、,?,笔算乘法改进,A B = A 0.1011,= 0.1A + 0.00A + 0.001A +0.0001A,= 0.1A + 0.00A + 0.001( A +0.1A),= 0.1A + 0.010 A + 0. 1( A +0.1A),= 0.1A +0.1 0 A+0.1(A + 0.1A),= 2-1A +2-1 0 A+2-1(A + 2-1(A+0),第一步 被乘数A + 0,第三步 部分积 + 被乘数,改进后的笔算乘法过程(竖式),0 . 0 0 0 0,0 . 1 1 0 1,0 . 1 1 0 1,0 . 1 1 0 1,0 . 0 0 0 0,0 . 1 1 0

29、1,初态,部分积 = 0,乘数为 1,加被乘数,乘数为 1,加被乘数,乘数为 0,加 0,乘数为 1,加 被乘数,被乘数只与部分积的高位相加,硬件,3个寄存器,具有移位功能,一个全加器,2.3 定点乘法运算,2.3.1 定点原码一位乘法,原码一位乘运算规则,以小数为例,乘积的符号位单独处理 x0y0,数值部分为绝对值相乘 x* y*,2.3 定点乘法运算,2.3.1 定点原码一位乘法,原码一位乘递推公式,z0,例:,已知 x = 0.1110 y = 0.1101 求x y原,解:,数值部分的运算,0 . 0 0 0 0,0 . 1 1 1 0,0 . 1 1 1 0,0 . 0 0 0 0,

30、0 . 1 1 1 0,0 . 1 1 1 0,部分积 初态 z0 = 0,逻辑右移,逻辑右移, 数值部分按绝对值相乘,x* y* = 0. 1 0 1 1 0 1 1 0,则 x y原 = 1. 1 0 1 1 0 1 1 0,特点:,绝对值运算,逻辑移位,用移位的次数判断乘法是否结束,例:,已知 x = 0.1110 y = 0.1101 求x y原,2.3 定点乘法运算,2.3.1 定点原码一位乘法,逻辑实现,2.3 定点乘法运算,2.3.1 定点原码一位乘法,逻辑实现,2.3 定点乘法运算,2.3.1 定点原码一位乘法,工作原理: 乘法开始时,“启动”信号使控制触发器Cx置“1”,于是

31、开启时序脉冲T。当乘数寄存器R1最末位为“1”时,部分积Zi和被乘数X在加法器中相加,其结果输出至R0的输入端。一旦打入控制脉冲T到来,控制信号LDR0使部分积右移一位,与此同时,R1也在控制信号LDR1作用下右移一位,且计数器i计数一次。当计数器i=n时,计数器的溢出信号使触发器Cx置“0”,关闭时序脉冲T,乘法宣告结束。若将R0和R1连接起来,乘法结束时乘积的高n位部分在R0,低n位部分在R1,R1中原来的乘数Y由于移位而全部丢失。,校正法,2.3 定点乘法运算,2.3.2 定点补码一位乘法,所谓校正法,将X补和Y补按原码运算,所得结果 根据情况加以校正,从而得到XY补。 算法分析:若被乘

32、数X的符号任意X补 = X0.X1X2Xn1)Y为正:Y补 = 0.Y1Y2YnXY补 = X补(0.Y1Y2Yn)2)Y为负:Y补 = 1.Y1Y2YnXY补 = X补(0.Y1Y2Yn)+-X补3)Y符号任意:XY补 = X补0.Y1Y2Yn+-X补Y0,符号位,Y0,除按 1)计算外,另加-X补校正,直接按原码乘法运算,移位时按补码规则移位,例:X- 0.1101 Y=0.1011 X补1.0011 Y补0.1011 求XY补,00 . 0 0 0 0,11 . 0 0 1 1,11 . 0 0 1 1,11 . 0 0 1 1,00 . 0 0 0 0,11 . 0 0 1 1,初态,

33、部分积 = 0,乘数为 1,加被乘数,乘数为 1,加被乘数,乘数为 0,加 0,乘数为 1,加 被乘数,XY补1. 01110001 XY= -0.10001111,例:X- 0.1101 Y= -0.1011 X补1.0011 Y补1.0101 求XY补,00 . 0 0 0 0,11 . 0 0 1 1,11 . 0 0 1 1,00 . 0 0 0 0,11 . 0 0 1 1,00 . 0 0 0 0,初态,部分积 = 0,乘数为 1,加被乘数,乘数为 0,加0,乘数为1,加被乘数,乘数为 0,加 0,-X补,得结果,XY补0.10001111,比较法(布斯公式被乘数、乘数符号任意),

34、2.3 定点乘法运算,2.3.2 定点补码一位乘法,x y补,2-1,2-2,附加位 yn+1,比较法(布斯公式被乘数、乘数符号任意),2.3 定点乘法运算,2.3.2 定点补码一位乘法,Booth 算法递推公式,z0补= 0,z1补= 2-1(yn+1yn) x补+z0补 yn+1 = 0,zn补= 2-1(y2y1)x补+zn-1补,x y补= zn补+(y1y0)x补,最后一步不移位,如何实现 yi+1yi ?,0 0,0 1,1 0,1 1,0,1,-1,0,例:,已知 x = -0.1101 y = 0.1011 求xy补,解:,0 0 . 0 0 0 0,0 0 . 1 1 0 1

35、,0 0 . 1 1 0 1,0 0 . 0 0 0 0,1 1 . 0 0 1 1,0 0 . 1 1 0 1,1 1 . 0 0 1 1,0 . 1 0 1 1,0,x补 = 11.0011,y补 = 0.1011,x补 = 00.1101,+x补,+0,+x补,+x补,+-x补, xy补=1.01110001 xy=-0.10001111,最后一步不移位,算法分析,2.3 定点乘法运算,2.3.3 定点原码两位乘法每次用两位乘数去乘被乘数,Pi+1=2-2Pi Pi+1=2-2(Pi+X) Pi+1=2-2(Pi+2X) Pi+1=2-2(Pi+3X),X左移1位即得2X,如何实现+3X

36、操作?,算法分析,2.3 定点乘法运算,2.3.3 定点原码两位乘法每次用两位乘数去乘被乘数,Pi+1=2-2(Pi+3X),4X-X,Pi+1=2-2(Pi+3X)=2-2(Pi+4X-X)=2-2(Pi-X)+X,运算规则,2.3 定点乘法运算,2.3.3 定点原码两位乘法每次用两位乘数去乘被乘数,例,已知 x = 0.100111 y = 0.100111 求xy原,0 0 0 . 0 0 0 0 0 0,0 0 0 . 1 0 0 1 1 1,1 1 1 . 0 1 1 0 0 1,1 0 0 1 1 1,0,初态 z0 = 0, x*, Cj = 1,0 0 1 . 0 0 1 1

37、1 0,+ 2x*,Cj = 0,0 0 1 . 0 0 1 1 1 0,+ 2x*, Cj = 0,1,0,0,补码右移,补码右移,解:,数值部分的运算, 数值部分的运算,x* y* = 0. 0 1 0 1 1 1 1 1 0 0 0 1,则 x y原 = 0. 0 1 0 1 1 1 1 1 0 0 0 1,例,特点:,绝对值的补码运算,算术移位,用移位的次数判断乘法是否结束,已知 x = 0.100111 y = 0.100111 求xy原,例,已知 x = 0.111111 y = 0.111001 求xy原,0 0 0 . 0 0 0 0 0 0,0 0 0 . 1 1 1 1 1

38、 1,0 0 0 . 1 1 1 1 1 1,1 1 1 0 0 1,0,初态 z0 = 0,+ x*, Cj = 0,0 0 1 . 1 1 1 1 1 0,+ 2x*,Cj = 0,1 1 1 . 0 0 0 0 0 1, x*, Cj = 1,0 0 0 . 1 1 1 1 1 1,+ x*, Cj = 0,0,0,1,补码右移,补码右移,解:,数值部分的运算, 数值部分的运算,x* y* = 0. 1 1 1 0 0 0 0 0 0 1 1 1,则 x y原 = 1. 1 1 1 0 0 0 0 0 0 1 1 1,例,已知 x = 0.111111 y = 0.111001 求xy原

39、,特点:,绝对值的补码运算,算术移位,用移位的次数判断乘法是否结束,为了进一步提高乘法运算的速度,可采用高速乘法模块组成的阵列乘法器,设有两个不带符号的二进制数。例:m=n=4时,有:a4 a3 a2 a1 a0* b4 b3 b2 b1 b0-a4b0 a3b0 a2b0 a1b0 a0b0 a4b1 a3b1 a2b1 a1b1 a0b1a4b2 a3b2 a2b2 a1b2 a0b2a4b3 a3b3 a2b3 a1b3 a0b3 a4b4 a3b4 a2b4 a1b4 a0b4,P8 P7 P6 P5 P4 P3 P2 P1 P0,2.3 定点乘法运算,2.3.4 阵列乘法器,2.3

40、定点乘法运算,2.3.4 阵列乘法器,2.3 定点乘法运算,2.3.4 阵列乘法器,不带符号的阵列乘法器,2.3 定点乘法运算,2.3.4 阵列乘法器,带符号的阵列乘法器,2.4 定点除法运算,2.4.1 定点原码一位除法,分析笔算除法,x = 0.1011 y = 0.1101 求 xy,0 . 1 0 1 1,0 . 1 1 0 1,0 . 0 1 1 0 1,0 . 0 1 0 0 1,0 . 0 0 1 1 0 1,0 . 0 0 0 1 0 1,0 . 0 0 0 0 1 1 0 1,0 . 0 0 0 0 0 1 1 1,1,商符单独处理,心算上商,商符心算求得,0,0 .,1,0

41、,1,0,0,0,?,余数不动低位补“0” 减右移一位的除数,上商位置不固定,?,?,笔算除法和机器除法的比较,商符单独处理,心算上商,符号位异或形成,| x | | y | 0 上商 1,| x | | y | 0 上商 0,2 倍字长加法器,上商位置 不固定,1 倍字长加法器,在寄存器 最末位上商,2.4 定点除法运算,2.4.1 定点原码一位除法,原码除法,以小数为例,被除数不等于 0,除数不能为 0,约定,2.4 定点除法运算,2.4.1 定点原码一位除法,恢复余数法,0 . 1 0 1 1,1 . 0 0 1 1,1 . 0 0 1 1,1 . 0 0 1 1,0 . 0 0 0 0

42、,+ y*补,0.,0 . 1 1 0 1,恢复余数,+ y*补,+y*补,解:,x原 = 1.1011 y原 = 1.1101,1,+y*补,y*补 = 0.1101 y*补 = 1.0011,逻辑左移,逻辑左移,1 . 0 0 1 1,0 . 1 1 0 1,1 . 0 0 1 1,+ y*补,恢复余数,+ y*补,上商 5 次,第一次上商判溢出,余数为正 上商 1,余数为负 上商 0,恢复余数,移 4 次,1,0,1,+y*补,逻辑左移,不恢复余数法(加减交替法),余数 Ri0 上商 “1”,Ri+1=2Ri y*,余数 Ri0 上商 “0”, Ri + y* 恢复余数,Ri+1=2(

43、Ri+y*) y* = 2Ri + y*,加减交替,恢复余数法运算规则,不恢复余数法运算规则,上商“1” 2Ri y*,上商“0” 2Ri + y*,解:,例:,0 . 1 0 1 1,1 . 0 0 1 1,0 . 1 1 0 1,1 . 0 0 1 1,1 . 0 0 1 1,0 . 1 1 0 1,0 . 0 0 0 0,+ y*补,0.,+y*补,+ y*补,+ y*补,+y*补,x原 = 1.1011,y*补 = 0.1101,y*补 = 1.0011,y原 = 1.1101,1,1,0,1,逻辑左移,上商 n+1 次,特点:,用移位的次数判断除法是否结束,第一次上商判溢出,移 n

44、次,加 n+1 次,例:,规则,2.4 定点除法运算,2.4.1 定点补码一位除法,小 结,简 化 为,(同号),(异号),(异号),(同号), 商值的确定,商值的确定,2.4 定点除法运算,2.4.1 定点补码一位除法,新余数的形成,加减交替,2.4 定点除法运算,2.4.2 定点补码一位除法,例:,解:,x补 = 1.0101 y补 = 0.1101 y补 = 1.0011,1 . 0 1 0 1,0 . 1 1 0 1,1 . 0 0 1 1,0 . 1 1 0 1,0 . 1 1 0 1,0 . 0 0 0 0,异号做加法,1,0 . 0 0 1 0,同号上“1”,异号上“0”,+y补,异号上“0”,+y补,同号上“1”,末位恒置“1”,0,0,1,1,+y补,逻辑左移,

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

当前位置:首页 > 企业管理 > 管理学资料

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


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

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

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