计算机组成原理:第二章运算方法与运算器1_第1页
计算机组成原理:第二章运算方法与运算器1_第2页
计算机组成原理:第二章运算方法与运算器1_第3页
计算机组成原理:第二章运算方法与运算器1_第4页
计算机组成原理:第二章运算方法与运算器1_第5页
已阅读5页,还剩125页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第二章 运算方法和运算器计算机组成原理本章首先讲述计算机中数据与文字的表示方法然后讲述定点运算方法、定点运算器的组成,最后讲述浮点运算方法、浮点运算器的组成。重点掌握和了解 二进数的表示和数的范围IEEE754 标准定点数的加减乘除法运算规格化浮点数的四则运算阵列乘除法器本 章 主 要 内 容2.1 数据与文字的表示方法2.1 数据与文字的表示方法数据信息控制信息非数值型数据指令信息等 一、数值型数据的表示方法 数值型数据的三个要素: 符号,数码,小数点数值型数据2.1 数据与文字的表示方法(一) 符号的表示方法 -符号数码化:0-正数;1-负数 -放在最前面 -机器数:符号数码化的数 -无符

2、号化,或用ASCII码(二) 数码部分的表示 由10个阿拉伯的数字构成 1。编码:BCD码,ASCII码2.1 数据与文字的表示方法1。编码:BCD码,ASCII码 0000-0;0001-1;0010-2 0011-3;0100-4;0101-5 0110-6;0111-7;1000-8 1001-9 0011000 0-0 。 00111001-9转换简单,编码效率低,运算器复杂2.1 数据与文字的表示方法2。采用二进制数表示*日常生活中,我们采用10进制数 十进制数:10个符号,逢十进一,权10i*计算机中只有两个符号可用-二进制数1)进位计数制 r进制数:用r个符号的组合表示数码部分,

3、并且每个位置上的权为ri,计数时逢r进位的计数制。2.1 数据与文字的表示方法r进制数的表示方法:(Pn-1Pn-2PiP2P1P0.P-1P-2.P-m)r = Pn-1rn-1+Pn-2rn-2+PiriP2r2+P1r1+P0 +P-1r-1+P-2r-2.P-mr-m2) 计算机中常用的进位基数制 可用数码进位基数0K-10 9 A B CD E F0 1 2 34 5 6 7 0 109逢K进1逢16进1逢8进1逢2进1逢10进1K168210K进制十六进制八进制二进制十进制2.1 数据与文字的表示方法(1)二八,十六进制之间的转换*23=8;24=16 -分组合并,扩展表示方法例:

4、(100010001)B=421O=111H( 2)二、八、十六十。按权相加法:。逐次乘基/除基相加法3)不同进制数之间的相互转换Pn-1rn-1+Pn-2rn-2+PiriP2r2+P1r1+P0 +P-1r-1+P-2r-2.P-mr-m=(Pn-1r1+Pn-2)r1+。) r1+P0 + (P-mr-1+P-m-1) r-1.P-2)r-1 +P-1)r-12.1 数据与文字的表示方法(3)十二、八、十六减权定位法 例 (326)10=(101000110)B。除基取余法(整数部分)/乘基取整法(小数部分) 例:(326.625) 10 =(?)B*采用二进制数表示,可以直接使用人们习

5、惯的计数和计算规则。2.1 数据与文字的表示方法(三) 小数点处理1。定点处理 1)无符号整数: 省略符号位,适应只有正整数的运算 2)带符号定点整数: 小数点默认为在末尾,适应只有整数的运算 3)带符号定点小数: 小数点默认为在最前面,适应只有小数的运算三、小数点处理2。浮点处理 -用一组0/1组合表示小数点的位置阶码。浮点数的定义 N=+/-REM;E:阶码;M:尾数;R:基数(2)例:+111.1101=0.111110123 -111.1101=-0.111110123(四)数的机器码表示无符号数:正整数。带符号数:正数或负数。真值: 带“+”、“”的数值本身。例:+0.01、-100

6、0机器数(机器码):最高位为符号位,“0”表示“+”,“1”表示“”。原码反码补码2.1 数据与文字的表示方法2.1 数据与文字的表示方法原码定点整数X1= + 9 = + 1001B X1原=0000 1001.X2= 9 = 1001B X2原=1000 1001.定点小数X1= + 0.75 = + 0.11B X1原=0.1100000X2= 0.75 = 0.11B X2原=1.11000000的表示形式不唯一+ 0原= 00000000 0原= 10000000原码加减法运算复杂。反码定点整数X1= + 9 = + 1001B X1反=0000 1001.X2= 9 = 1001B

7、 X2反=1111 0110.定点小数X1= + 0.75 = + 0.11B X1反=0.1100000X2= 0.75 = 0.11B X2反=1.00111110的表示形式不唯一+ 0反= 00000000 0反= 111111112.1 数据与文字的表示方法补码的引入模和同余模:计量器的溢出容量,用M表示。当运算结果超出计量范围,溢出部分舍弃。字长为n+1位时定点整数的模为2n+1 。定点小数的模为2 。同余:两整数A、B除以模M,所得的余数相同。可记作A=B (mod M )当模为12时 4和16同余,可写作 4 = 16 (mod 12) -2和10同余,可写作 2 = 10 (m

8、od 12)利用补码可将减法运算转换成为加法运算2.1 数据与文字的表示方法n+110000n+110.0004-2=4+10补码定点整数X1= + 9 = + 1001B X1补=0000 1001.X2= 9 = 1001B X2补=1111 0111.定点小数X1= + 0.75 = + 0.11B X1补=0.1100000X2= 0.75 = 0.11B X2补=1.01000000的表示形式唯一+ 0补= 0补= 000000002.1 数据与文字的表示方法X真值+/- 变成 0/1数值位不变X原XS=0时,数值位不变XS=1时,数值位变反加1X补XS=0时,数值位不变XS=1时,

9、数值位变反X反2.1 数据与文字的表示方法三种不同机器数以及真值之间的转换原码与补码的直接转换法当X为正数时,X补=X原=X;当X为负数时,由原码求补码的简便算法:符号位不变,最后面的1及其后各位保持不变,中间各位按位取反。例: X原= 1 . 111001 1000 X补= 1 . 000110 1000 2.1 数据与文字的表示方法不变不变取反三种机器数的比较正数的原、反、补码相等,负数的各自不同原码的符号位是人为定义的,不能参与运算补码的符号位是通过模运算得到的,是数值的一部分,可参与运算。原、反码零的表示形式不唯一,补码零的表示形式唯一。假设字长为8位,则:+0原=00000000 -

10、0原=10000000+0反=00000000 -0反=11111111+0补=-0补=000000002.1 数据与文字的表示方法机器码的表数范围不同原、反码的表数范围相对于零点对称补码的表数范围,负方向比正方向宽以字长4位(含符号位)的纯整数为例原码、反码表数范围 补码表数范围(多表示一个负数)0+1+2+3+4+5+6+7-1-2-3-4-5-6-7+0-07个正数7个负数0+1+2+3+4+5+6+7-1-2-3-4-5-6-7-87个正数8个负数-82.1 数据与文字的表示方法1000-81000-02.1 数据与文字的表示方法真值与三种机器数间的对照定点数与浮点数定点数约定机器中所

11、有数据的小数点位置是固定不变的。小数点隐含表示。可表示成纯小数或纯整数。定点数XX0 X1X2Xn表示形式2.1 数据与文字的表示方法定点数的表示范围原码定点数 (字长n+1位)纯小数:(12-n )(1-2-n ) 例:字长为8位,则最小定点小数: -127/128 最大定点小数: 127/128纯整数:( 2n 1)(2n -1) 例:字长为8位,则最小定点整数: -127 最大定点整数: 1271.11111110.111111111111111.01111111.2.1 数据与文字的表示方法定点数的表示范围补码定点数 (字长n+1位)纯小数:112-n 例:字长为8位,则最小定点小数:

12、 1 最大定点小数: 127/128纯整数:2n 2n1例:字长为8位,则最小定点整数: 128最大定点整数: 1271.00000000.111111110000000.01111111.2.1 数据与文字的表示方法阶码,常为纯整数尾数,常为纯小数浮点数小数点的位置不固定,根据需要而浮动。任何一个数N的浮点表示形式为 N=M2E2.1 数据与文字的表示方法0+0+1-1+第n位K个0K个1n个0n个1K个1浮点数的表示范围若阶码数值部分为K位,尾数数值部分为n位,均用补码表示,则2.1 数据与文字的表示方法规格化的浮点数为了充分利用尾数的有效数位,规定尾数值应在0.51之间。补码表示时,尾数

13、的最高位应与符号位不同当 1/2 = M 1 时,应有0.1 的形式当 1 = M - 1/2 时,应有1.0 的形式为什么是,而不是=?为什么是=?2.1 数据与文字的表示方法补码的表示范围比原码宽,可以表示-1, -1补=1.0000000,是规格化的浮点数-1/2原=1.1000000-1/2补=1.1000000不是规格化的浮点数浮点数的典型值:阶码和尾数均用补码表示浮点数代码真值阶码尾数最大正数最小正数规格化的最小正数绝对值最大负数绝对值最小负数规格化的绝对值最小负数011100100 0111001000.11110.0001 0.10001.00001.11111.01112.1

14、 数据与文字的表示方法X1移=27+1101101 =10000000 + 1101101 =11101101X1补=01101101X2移=27+(-1101101) = 10000000 - 1101101 = 00010011 X2补= 10010011移码:在真值X的基础上加一个常数,相当于X在数轴上向正方向偏移了若干单位。X移码=偏置值+X标准偏置值:字长n+1位时,偏置值为2n。例:字长8位,若偏置值为27,X1=+1101101,X2= -1101101,求移码。2.1 数据与文字的表示方法P26真值X(十进制)真值X(二进制)X补X移-128-127 -101127-10000

15-00000010000000000000111111111000000010000001 111111110000000000000001011111110000000000000001 011111111000000010000001111111112.1 数据与文字的表示方法移码、补码和真值之间的关系设字长8位,偏置值为标准偏置值27移码的特点(字长8位,偏置值为27)移码最高位为0表示负数,最高位为1表示正数。移码直观反映真值的大小。全0时,所对应的真值最小;全1时,所对应的真值最大;有利于两个浮点数进行阶码的大小比较0的移码表示形式唯一+0移=-0移=1000

16、0000移码将真值映射到正数域,可视为无符号数同一真值的补码和移码只相差符号位。2.1 数据与文字的表示方法IEEE754标准的浮点数:应用于80X86微机182332位短浮点数数符阶码尾数64位长浮点数11152数符阶码尾数80位临时浮点数数符阶码尾数1156432位短浮点数1.尾数隐含了最高位1(位权20),实际为24位,尾数采用原码表示。2.阶码采用偏置值为127的移码表示。2.1 数据与文字的表示方法P202.1 数据与文字的表示方法IEEE754标准基数R=2,基数固定,采用隐含方式来表示它。32位的浮点数:S数的符号位,1位,在最高位,“0”表示正数,“1”表示负数。M是尾数, 2

17、3位,在低位部分,采用纯小数表示E是阶码,8位,采用移码表示。移码比较大小方便。规格化: 若不对浮点数的表示作出明确规定,同一个浮点数的表示就不是惟一的。尾数域最左位(最高有效位)总是1, 故这一位经常不予存储,而认为隐藏在小数点的左边。采用这种方式时,将浮点数的指数真值e变成阶码E时,应将指数e加上一个固定的偏移值127(01111111),即E=e+127。2.1 数据与文字的表示方法64位的浮点数中符号位1位,阶码域11位,尾数域52位,指数偏移值是1023。因此规格化的64位浮点数x的真值为: x=(-1)S(1.M)2E-1023 e=E-1023一个规格化的32位浮点数x的真值表示

18、为 x=(-1)S(1.M)2E-127 e=E-1272.1 数据与文字的表示方法真值x为零表示:当阶码E为全0且尾数M也为全0时的值,结合符号位S为0或1,有正零和负零之分。真值x为无穷大表示:当阶码E为全1且尾数M为全0时,结合符号位S为0或1,也有+和-之分。这样在32位浮点数表示中,要除去E用全0和全1(25510)表示零和无穷大的特殊情况,指数的偏移值不选128(10000000),而选127(01111111)。对于规格化浮点数,E的范围变为1到254,真正的指数值e则为-126到+127。因此32位浮点数表示的绝对值的范围是10-381038(以10的幂表示)。浮点数所表示的范

19、围远比定点数大。一台计算机中究竟采用定点表示还是浮点表示,要根据计算机的使用条件来确定。一般在高档微机以上的计算机中同时采用定点、浮点表示,由使用者进行选择。而单片机中多采用定点表示。2.1 数据与文字的表示方法浮点数表示范围如下图所示(2)计算出阶码真值e =移码-偏置值127 e =1000 0010-111 1111=011=(3)10(3)写出尾数(包括隐含的最高位1) 1.M=1.011011(4)写出此数的浮点记数形式X =(-1)s 1.M 2e =+1.011011*23=1011.011(5)转换成十进制数,并加上符号位 11.375例1: 若短浮点数x的754标准存储格式为

20、(41360000)16,求其浮点数的十进制数值。 (1)将十六进制数转换成二进制数,写成短浮点数格式2.1 数据与文字的表示方法011 0110 0000 0000 0000 0000100 0001 00s阶码(8位)尾数(23位)0100 0001 1010 0100 1100 0000 0000 0000正数阶码的移码(8位)隐含了最高数位1的尾数的原码(23位)例2:将(20.59375)10转换成短浮点数格式 (1)把十进制数转换为二进制数 (20.59375)10=(10100.10011)2 (2)写成浮点记数形式,尾数保留最高位1,不计入。 10100.10011=1.010

21、0 10011*24 (3)计算出阶码的移码 1111111+100=1000 0011 (4)以短浮点数格式存储该数 41A4C000H2.1 数据与文字的表示方法二、非数值数据表示通常是指字符、字符串、图形符号和汉字等各种数据,它们通常不用来表示数值的大小,一般情况下不对它们进行算术运算。字符和字符串表示ASC (美国标准信息交换码)7位基本ASC码(国际通用)可表示128种字符8位扩充ASC码(可重新定义)可表示256种字符ASC码可分为: 显示字符控制字符“0 ”为48 “A”为65return 、backspace键的编码分别为13、82.1 数据与文字的表示方法P272.1 数据与

22、文字的表示方法256列256行1024个1024个1024行1024列统一代码(Unicode) 能够表示6800种语言中任意一种语言里使用的所有符号。UCS-2用16位数来表示可表示65536个符号UCS-4用32位数来表示每个16位数都来自于对UCS-2的进一步扩展可表示220个字符2.1 数据与文字的表示方法汉字编码汉字是一种象形文字,无法直接用标准西文键盘输入,必须经过转换间接输入;汉字的字数也较多,不能用单字节的ASC(256个字符)来表示目前采用两个字节(可以表示64K字符)的汉字编码方案。汉字的应用范围较广(东南亚国家),但编码字符集不相同,中国大陆常用GB / GBK码,台湾B

23、IG5。 2.1 数据与文字的表示方法外部(输入)码机内码字形(输出)码汉字信息其它系统或设备汉字信息键盘管理程序汉字处理程序交换码(国标码)汉字处理过程2.1 数据与文字的表示方法外部码也叫汉字输入编码,主要是从键盘(语音、手写、光电)输入计算机中的代表汉字的编码。汉字输入方案有数百种,基本上是直接利用西文标准键盘进行汉字输入,每一种汉字输入法都各自提供相应的键盘码与汉字机内码(码表)。编码方案可分四类:数码(如电报码,区位码,国标码等)音码(如全拼码,简拼码,双拼码等)形码(如五笔字型,大众码,仓吉码等)音形码(如自然码,首尾码等)2.1 数据与文字的表示方法交换码 用于计算机与其他系统或

24、设备之间进行汉字代码信息交换的标准汉字代码目前最常使用的是国标码2000年的GB18030-2000每个汉字(图形符号)用两个字节表示,每个字节只用低7位,即最高位为0的二进制码汉字分为两级:一级为使用频度高的常用汉字二级为次常用的汉字2.1 数据与文字的表示方法内部码 也称汉字内码或机内码,是计算机对汉字进行存储、运算、传码的实际代码。 一般用两个字节表示一个汉字内码,每个字节最高位为 1。 还有少数三字节、四字节等内部码。最多能表示128128 =16384个汉字和图形符号 机内码目前虽未完全统一,但已趋于标准化。内部码与国标码的对应关系:内码=国标码+8080 国标码每个字节最高位为1

25、内部码。 例如:国标码 3B7A 00111011 01111010 机内码 BBFA 10111011 111110102.1 数据与文字的表示方法字形码也称为字模码,用点阵表示的汉字字形代码,是汉字的输出形式。简易型 1616提高型 2424、 3232等1616点阵,每个汉字占32字节。每行16点,每点0/1,16位,2个字节共16行162=32字节2.1 数据与文字的表示方法各种输入码交换码(国标码)内码字形码显示汉字打印汉字2.1 数据与文字的表示方法汉字代码交换流程奇偶校验码常用于存储器读、写检查或ASCII字符传送过程中的检查。实现方法:由有效信息位和1位奇偶校验位组成。奇校验保

26、证整个校验码中有奇数个1偶校验保证整个校验码中有偶数个12.1 数据与文字的表示方法有效信息偶校验码奇校验码10101010101010100101010101010101000101010010101010000000000000000000000000000101111111011111111011111110111111111111111101111111112.1 数据与文字的表示方法简单奇偶校验仅实现横向的奇、偶校验。可检测出一位(或奇数位)错误,但不能确定出错位置。例7:假定信息位8位,奇、偶校验位在末尾。交叉奇偶校验横向:每一个字节有一个奇、偶校验位纵向:全部字节同一位也设置奇、

27、偶校验位可以发现两位同时出错的情况。例:纵、横均约定为偶校验2.1 数据与文字的表示方法有效信息横向校验第一字节 10101010 0第二字节 010101001第三字节 000000000第四字节 011111111第五字节 11111111 0纵向校验 01111110 11补码加减法运算公式 (讨论纯小数,纯整数类似)X+Y补=X补+Y补 (mod 2)X-Y补=X补+-Y补 (mod 2)可证,-Y补= -Y补 (mod 2)所以,X-Y补=X补-Y补 (mod 2)-Y补=Y补+2-n ( Y补连同符号位变反,末位加1)简便方法:Y补最右边的1及其后各位保持不变,连同符号位在内一起变

28、反。例10:已知X1=-0.1110,X2=+0.1101, 求:X1补,-X1补,X2补,-X2补解: X1原=1.1110 X2原=0.1101 X1补=1.0010 X2补=0.1101 -X1补=0.1110 -X2补=1.0011 2.2 定点加减运算例9:x=+0.1011,y=-0.0101,利用补码加法计算x+y=?解: x补=0.1011,y补=1.1011 x补=0.1011 + y补=1.1011 x+y补=10.0110 x+y=+0.01102.2 定点加减运算P32自动舍弃+0.6875-0.3125+0.375例11:x=+0.1101,y=+0.0110,利用补

29、码减法计算x-y=?解:x补=0.1101,y补=0.0110, -y补=1.1010 x补 =0.1101 + -y补 =1.1010 x-y补=10.0111 x-y= 0.0111符号位参与运算,超出模的进位自动舍弃。自动舍弃后,结果正确吗?如何判断?2.2 定点加减运算P33自动舍弃+0.8125+0.375+0.4375补码的溢出在选定了运算字长和数的表示方法之后,计算装置所能表示的数的范围是一定的,超过此范围就称为溢出。例: 运算字长 数的表示方法 定点整数的范围 n= 8 原码 -127+127 n= 8 反码 -127+127 n= 8 补码 -128+1272.2 定点加减运

30、算例12:X=0.1011,Y=0.1001,X+Y补=? X补 0.1011 +Y补 0.1001 X+Y补 1.0100 两正数相加,结果为负,上溢。溢出检测方法方法一:常识判别法补码加法运算时,仅在两数同号时才可能产生溢出。 OVER= XsYsZs+XsYsZs=1两正数相加,结果为负,产生上溢;两负数相加,结果为正,产生下溢。2.2 定点加减运算方法二:双高位判别法(单符号位补码)考察两补码相加时符号位产生的进位Cf和最高数值位产生的进位C0。 OVER=CfC0=1 例14:X=+0.1100,Y=+0.1000,X+Y补=? X补 0 . 1 1 0 0 +Y补 0 . 1 0

31、0 0 X+Y补 1 . 0 1 0 0 Cf=0C0=1CfC0=1 有上溢出产生2.2 定点加减运算方法三:变形补码法(双符号位补码)采用双符号位补码(模4补码)00-正数 11-负数 01-上溢 10-下溢 例15:X=-0.1100,Y=-0.1000,利用变形补码计算X+Y补 x变补 11 0100 + y变补 11 1000 x+y变补 10 1100 下溢 练习:P69-6(1) X=0.11011,Y=-0.11111,用变形补码计算X-Y,并指出结果是否溢出?2.2 定点加减运算基本的二进制加减法器 加法单元全加器:有三个输入端,是考虑低位向本位进位的加法器。FAAi BiC

32、i-1CiSiSi=AiBi Ci-1Ci=AiBi + (Ai Bi)Ci-1本位进位传送进位3T3TTTT6T5T全加器真值表AiBiCi-1SiCi0000111100110011010101010110100100010111本位进位传送进位基本的二进制加减法器 加法器串行加法器:只有一位全加器的加法器,它每次只能进行一位二进制数运算,整个数据需要一位一位地串行送入全加器,分时进行运算。AiBi本位和CiQCCP D移位寄存器A移位寄存器B进位触发器全加器CP基本的二进制加减法器 本位进位,记为Gi传送进位,记为PiCi-1基本的二进制加减法器 并行加法器:由多位全加器组成的加法器,各

33、位全加器之间传递进位信号的线路组成进位链。根据进位链设置方法的不同,分为串行进位并行进位影响并行加法器速度的关键因素进位信号产生和传递的时间。进位信号的基本逻辑 Ci=AiBi+(AiBi) Ci-1FAAn BnCn-1CnSnFAA2 B2C2S2C0C1FAA1 B1S1Cn=Gn+PnCn-1 , ,C2=G2+P2C1, C1=G1+P1C0基本的二进制加减法器 串行进位:也称为行波进位各全加器由进位信号线串接在一起每一位的进位直接依赖于前一级的进位。进位是串行的,结构简单速度慢。假设一级进位产生时间2T,n级串行进位加法器的总延迟时间约为2nT。基本的二进制加减法器 串行进位加减法

34、器逻辑结构图P35C1 = G1+P1C0C2 = G2+P2 (G1+P1C0 )= G2+P2G1+P2P1C0 C3 = G3+P3 (G2+P2 (G1+P1C0 ) = G3+P3G2+P3P2G1+P3P2P1C0 Cn = Gn+PnGn-1+(PnP1) C0 基本的二进制加减法器 并行进位:先行进位、超前进位根据最高位进位,预先推算出各高位的进位关系使串行进位变成并行进位,从而实现快速加法运算并行进位的逻辑表示十进制加法器对8421BCD码直接进行加法运算在二进制加法器的基础上,加上适当的“校正”逻辑来实现。n位行波进位BCD码加法器由n级BCD码加法单元级联而成。每一级完成

35、4位BCD数的加法运算。基本的二进制加减法器 结果10,加6调整。 (10)10=(1010)2(1 0000)BCD+6P36一位BCD码加法单元第一次近似求值时,完成4位二进数加法得到的暂时和大于10或向高位产生进位时,进行加6调整。基本的二进制加减法器 计算机实现乘除法的方法纯软件不需要专门的硬件电路,无乘除运算指令,只能用子程序来实现乘除运算。低档微机。硬件扩充串行乘法器在原有运算器的基础上增加一些硬件设备,使乘除运算变换成累加和移位操作,设有专门的乘除指令。适合中、小、微型机。专用硬件并行乘法器设置专用的乘除法器,机器中设有相应的乘除指令,运算速度快,电路复杂。适合中、大型机。2.3

36、 定点乘法运算补码的移位运算补码左移一位相当于乘以2,低位补0。补码右移一位相当于除以2,高位补符号位 例:0.01左移 0.10,右移0.001 1.11左移 1.10,右移1.111+0.5+0.25+0.125-0.5-0.25-0.1252.3 定点乘法运算人工算法与机器算法的同异性人工算法:乘积P=|X|Y| 符号PS=XSYS 引例:X=0.1101,Y= 0.1011, 求X*Y。 0.1101 0.1011 1101 1101 0000 + 1101 0.10001111 因为PS=XSYS=00=0 所以XY= 0.10001111 为适合计算机运算需要改进:1.一次进行n个

37、数相加一次进行2个数相加;2.小数点移动小数点固定;3.需要2n个加法器只设n个加法器;2.3 定点乘法运算又称为比较法、Booth法参加运算的数用补码表示,符号位参加运算被乘数X与部分积取双符号位 乘数Y取单符号位,末位增设附加位Yn+1,初值0 Yn与Yn+1构成了各步运算的判断位串行乘法补码一位乘 Yn Yn+1 操作 原部分积1 原部分积X补,1 原部分积X补,1 原部分积1推导进行n+1步操作,但第n+1步不移位按补码右移规则移位补充BOOTH法的推导设Y补=Y0 .Y1Y2Yn,其中Y0是符号位,可以证明 XY补=X补0.Y1Y2Yn-X补Y0 Y0=0,正数, XY补=X补0.Y

38、1Y2Yn 不需校正 Y0=1,负数, XY补=X补0.Y1Y2Yn-X补 校正XY补=X补0.Y1Y2Yn-X补Y0 =X补2-1Y1+2-2Y2+2-(n-1)Yn-1+2-nYn-X补Y0 =X补-Y0+2-1Y1+2-2Y2+2-(n-1)Yn-1+2-nYn又因为,2-1Y1 =Y1-2-1Y1 ,2-2Y2 =2-1Y2-2-2Y2 ,可得X补-Y0+Y1-2-1Y1+2-1Y2-2-2Y2+2-(n-2)Yn-1-2-(n-1)Yn-1+2-(n-1) Yn-2-nYn=X补(Y1-Y0)+2-1 (Y2-Y1)+2-2 (Y3-Y2)+2-(n-1)(Yn-Yn-1)+2-n(

39、0-Yn)=X补(Y1-Y0)+2-1 (Y2-Y1)+2-2 (Y3-Y2)+2-(n-1)(Yn-Yn-1)+2-n(0-Yn)设Yn+1=0=X补(Y1-Y0)+2-1 (Y2-Y1)+2-2 (Y3-Y2)+2-(n-1)(Yn-Yn-1)+2-n (Yn+1-Yn)=X补(Y1-Y0)+2-1(Y2-Y1)+ 2-1(Y3-Y2)+2-1 (Yn+1-Yn)=X补(Y1-Y0)+2-1(X补(Y2-Y1)+ 2-1(X补(Y3-Y2)+2-1 (X补(Yn+1-Yn)=X补(Y1-Y0)+2-1(X补(Y2-Y1)+ 2-1(X补(Y3-Y2)+2-1 (X补(Yn+1-Yn +0)

40、设P0补=0 P1补=2-1 (X补(Yn+1-Yn ) +P0补) P2补=2-1 (X补(Yn-Yn-1 ) +P1补) Pn补=2-1 (X补(Y2-Y1 ) +Pn-1补) Pn+1补=XY补= X补( Y1-Y0 )+Pn补Yn Yn+1 操作 部分积1 部分积X补, 1 部分积X补,1 部分积1返回补码一位乘法运算示例例:X= - 0.1101 Y= 0.1011用补码一位乘法计算X*Y=? 解:X补=11.0011 -X补=00.1101 Y补=0.1011 A C 附加位 说明 00.0000 0.1011 0 YnYn+1=10, +-X补+ 00.1101 00.1101

41、1 00.0110 10.101 1 YnYn+1=11, 1 00.0011 010.10 1 YnYn+1=01,+X补+ 11.0011 11.0110 1 11.1011 0010.1 0 YnYn+1=10,+-X补+ 00.1101 00.1000 1 00.0100 00010. 1 YnYn+1=01,+X补+ 11.0011 最后一步不移位 11.0111 0001 所以, XY= - 0.10001111补码一位乘法运算器框图反变量原变量右移A寄存器加法器与或门B寄存器Yn+1C寄存器Yn部分积被乘数乘数 附加位计数器+1加法01减法1000或11+1阵列乘法器专用硬件并行

42、乘法器由于乘法运算量大,采用高速乘法部件可以提高速度和效率。随着大规模集成电路的问世,可由全加器阵列,构成流水式阵列乘法器,实现多个部分积并行相加,称为并行乘法器。运算速度快,电路复杂。P38不带符号的阵列乘法器设有两个不带符号的二进制整数Aam1a1a0 Bbn1b1b0它们的数值分别为a和b,即设P A*B =pmn1p1p0 ,即不带符号的阵列乘法器这个过程与手工计算乘法过程非常类似mn个aibj ,可以用mn个与门并行地产生mn个aibj 相加,可用(m-1)n个全加器实现不带符号阵列乘法器逻辑框图FACiAiBiSiCi+1来自低位的进位加数加数向高位产生的进位和全加器逻辑符号例如:

43、当m=n=5时a0b0FAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAp8p7p6p5p4p3p2p1p0p9a1b0a2b0a3b0a4b0a0b1a1b1a2b1a3b1a4b1a0b2a1b2a2b2a3b2a4b2a0b3a1b3a2b3a3b3a4b3a0b4a1b4a2b4a3b4a4b400000不带符号的阵列乘法器逻辑电路图Ta:与门时间延迟 Tf:全加器进位时间延迟总时间延迟=Ta+(n-1)6T+(n-1)Tf=(8n-6)T不带符号的阵列乘法器例16已知两个不带符号的二进制整数A11011,B 10101,求每一部分乘积项aibj的值与p9

44、p8p0的值解 a4b01 a3b01 a2b00 a1b01 a0b01a4b10 a3b10 a2b10 a1b10 a0b10a4b21 a3b21 a2b20 a1b21 a0b20a4b30 a3b30 a2b30 a1b30 a0b30a4b41 a3b41 a2b40 a1b41 a0b4110000111010100FAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFA11011000001101100000110110110101Pp9p8p7p6p5p4p3p2p1p01000110111 (56710)0000001100010011011010

45、011 串行进位链的并行加法器不带符号阵列乘法器工作过程演示A *B 11011* 10101带符号的阵列乘法器对2求补器:在带符号数与无符号数间进行转换求补方法:设Aana1a0是n1位带符号数,负数:E=1,最右边的“1”及其后各位保持不变,其余各位按位取反。10100110正数:E=0,输出和输入相等。可利用符号位做为控制信号。带符号阵列乘法器逻辑框图将A和B变成正整数当A和B异号时,把运算结果变成带符号的数带符号的阵列乘法器例17 设X15,Y13,用带求补器的原码阵列乘法器求出乘积XY?解 设最高位为符号位,则输入数据为X原 01111 Y原 11101 符号位单独考虑,算前求补级后

46、 |X|1111,|Y|1101算后经求补级输出并加上乘积符号位1,则原码乘积值为111000011。真值是 ( 11000011)2=(-195)10手工除法示例 假定:X=0.1011,Y=0.1101,则 0.1101 0.10110 X小于Y,商00.2.4 定点除法运算0.1 0.11 0.110 0.11010.01101 Y右移,够减,商1,相减0.010010 得R0 0.001101 Y再右移,够减,商1,相减0.0001010 得R1 0.0001101 Y再右移, 不够减,商00.00000111 得R3 商符qf=XfYf=00=0XY=0.1101+0.0111*2-

47、4/0.11010.00001101 Y再右移, 够减,商1,相减0.00010100 得R2 计算机实现除法的改进定点机,商应为纯小数,否则溢出。所以,只有在被除数小于除数时(X-Y0,商1,余数左移,进行下一步R0,商0恢复余数法+Y(恢复余数),余数左移,进行下一步不恢复余数法(加减交替法)Ri+1=2(Ri+Y)-Y=2Ri+Y余数左移,下一步加+Y串行除法串行除法补码不恢复余数法涉及到的问题及解决 第一步,判断是否开始,不是简单地相减: 补码表示时:X与Y同号,相减 X与Y异号,相加中间过程中,不同情况不同处理: R与Y同号,商1,1,+-Y补 R与Y异号,商0,1,+Y补商的校正

48、末尾恒置1法补充补码不恢复余数法示例例:X= 0.1000 Y= - 0.1010 用补码不恢复余数法计算 X/Y 解:A:X补=00.1000 B:Y补=11.0110,-Y补=00.1010 C:商,初值为0 A C 操作 00.1000 X与Y异号 + 11.0110 +Y补 11.1110 1 R与Y同号,商1 11.1100 1. 1 + 00.1010 +-Y补 00.0110 1.0 R与Y异号,商0 00.1100 1.0 1 + 11.0110 +Y补 00.0010 1.00 R与Y异号,商0 00.0100 1.00 1补码不恢复余数法示例例:X= 0.1000 Y= -

49、 0.1010 用补码不恢复余数法计算 X/Y解:A:X补=00.1000 B:Y补=11.0110,-Y补=00.1010 C:商,初值为0 A C 操作 00.0100 1.00 1 + 11.0110 +Y补 11.1010 1.001 R与Y同号,商1 11.0100 1.001 1 + 00.1010 11.1110 1.0011 末位恒置1 X/Y补=1.0011+1.1110*2-4/1.0110 X/Y= - 0.1101+0.0010*2-4/0.1010阵列除法器采用大规模集成电路制造的并行运算部件。与串行除法器相比,运算速度高。形式多样不恢复余数阵列除法器补码阵列除法器

50、基本的单元电路可控加/减法单元(CAS)既可完成减法操作,又可完成加法操作适用于除法操作过程中的加减交替。可控加/减法(CAS)单元CASAiBiPPCiCi+1SiBi四个输入端Ai、Bi、Ci P:控制端输入四个输出端Si、Ci+1Bi:除数右移P :控制端输出P0:CAS作加法Si=AiBi CiCi+1=AiBi + (Ai Bi)CiP1:CAS作减法Si=AiBi Ci ( Bi=Bi1)Ci+1=AiCi + (Ai Ci)Bi不恢复余数的阵列除法器不恢复余数的除法加减交替法当前行应执行加法还是减法,取决于上一行余数的符号与被除数的符号是否一致:余数与被除数异号(余数为负),商“

51、0”,除数右移,与原余数相加,得新余数;余数与被除数同号(余数为正),商“1”,除数右移,与原余数相减,得新余数。只介绍被除数、除数均为正数的情况。阵列除法器逻辑结构图被除数0.123456 (双倍长)除数0.123 (XY)商数0.q1q2q3余数0.00r3r4r5r6 字长 n14第一行做减法(P=1),由于XY,余数 0,表示EE; E 0,表示EEy时,则My ,Ey+1Ex1,溢出。右规:Mz,Ez+1。当尾数为11.1.或00.0.时,|Mz|0.5左规:Mz,Ez-1浮点加减运算舍入处理对阶或右规时,尾数右移,尾数的低位部分被丢掉,造成一定误差,要进行舍入处理。简单的舍入方法有

52、三种:恒舍法:移出的位直接舍去,对保留部分不做任何修改。0舍1入法:右移出的位为0则舍去,为1则将尾数的末位加“1”。末位恒置一法:只要数位被移出,就在尾数的末尾恒置“1”。IEEE754标准就近舍入、朝0、+、- 舍入溢出判断浮点数溢出主要体现在阶码的溢出,机器必须做中断处理。阶码上溢阶码大于可表示的最大正数, 看作+、- 阶码下溢阶码小于可表示的最小负数,看作机器零浮点加减运算例25 设X20100.11011011,Y2100(0.10101100),求X+Y。解两数均以补码表示,阶码双符号位,尾数单符号位。它们的浮点表示为 浮00 010, 0.11011011 浮00 100, 1.01010100 求阶差,对大阶 EEEE补+-E补00 010+11 10011 110 X的阶码小,应使Mx 右移2位,Ex 加2 X浮00 100,0.00110110(11) 尾数求和 00.00110110(11) 11.01010100 11.10001010(11)-2规格化处理 尾数运算结果为11.10001010(11) 符号位与最高数值位同值,应执行左规处理。 尾数左移1位,阶码减

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论