计算机组成原理与系统结构 第3章运算方法与实现电路.ppt
《计算机组成原理与系统结构 第3章运算方法与实现电路.ppt》由会员分享,可在线阅读,更多相关《计算机组成原理与系统结构 第3章运算方法与实现电路.ppt(98页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第3章 运算方法与实现电路本章主要内容:本章主要讨论各种数据类型的二进制表示以及不同数制之间的相互转换。主要介绍数据的表示方法,包括定点数表示、浮点数表示、自定义表示方法,重点介绍浮点数表示,包括表数范围、表数精度、表数效率及浮点数的设计。简单介绍常用的校验编码。主要讲解定点数的加、减、乘、除运算及实现技术,最后讨论浮点运算方法及加法器的构成。3.13.1计算机中数据的表示与数制之间的转换计算机中数据的表示与数制之间的转换3.2 3.2 机器数的编码表示及加减运算机器数的编码表示及加减运算3.3 3.3 二进制乘除法运算二进制乘除法运算3.4 3.4 浮点数的运算方法浮点数的运算方法3.5 3
2、.5 浮点数设计浮点数设计3.6 3.6 数据校验码数据校验码3.7 3.7 高级数据表示高级数据表示3.1计算机中数据的表示与数制之间的转换3.1.1计算机中数据的表示方法与转换1 1数值型数据的表示数值型数据的表示 一般的,若有m位r进制无符号数am-1am-2a2a1a0,则它的值为:2 2不同数制间的转换不同数制间的转换(1)二、八、十六进制数之间的转换 八、十六进制数都是由二进制数演变而来的,由3位二进制数构成一个八进制数,由4位二进制数构成一位十六进制数。对于有整数和小数部分的数来说,以小数点为界限,对小数点前后的两部分分别进行处理,不足的部分用0补上,对于整数部分0补在最左侧,对
3、于小数部分0补在最右侧,这样数值不会发生变化。若将八、十六进制转换成二进制时,只要把每一位对应写成3位、4位二进制即可。例3-5(10 0101.1001)2 =(0010 0101.1001)2=(25.9)16例3-6(12.5)8=(001 010.101)2 =(1010.101)2例3-7(2A.3)16=(0010 1010.0011)2 =(101010.011)2(2)十进制数转换成二进制数 进行转换时,通常是将数的整数部分与小数部分分别转换,然后再合并。对整数部分一般采用除2取余法,转换规则如下:将十进制整数除以2,所得的余数(0或1)即为对应二进制数最低位的值。然后对上次所
4、得到的商再除以2,所得到的余数即为二进制数次低位的值,依次进行下去,直到商等于0为止,最后得到的余数是二进制数的最高位的值。而对于小数部分,一般采用乘2取整法,其转换规则如下:将十进制小数乘以2,所得到的积的整数部分即为对应的二进制小数的最高位的值,然后对所余下的小数部分再乘以2,所得到的积的整数部分即为对应的二进制小数的次高位的值,依次进行下去,直到乘积的小数部分为0,或结果已经满足所需要的精度要求为止。3.1.2 十进制数的编码与运算1 1有权码有权码 有权码指的是表示一位十进制的二进制码的每一位有确定的权值。例3-10用BCD码求57+14=?首先将两数用首先将两数用BCDBCD码码表示
5、表示为为:0101 0111+0001 01000101 0111+0001 0100其相加其相加结结果如下。果如下。0 1 0 10 1 1 1+0 0 0 10 1 0 00 1 1 01 0 1 1+0 1 1 00 1 1 10 0 0 12 2无权码无权码 无权码是指表示一个十进制数位的二进制码的每一位没有确定的权。例3-11(36)10+(27)10=(63)10 采用余3码进行运算的过程为:0 1 1 01 0 0 1+0 1 0 11 0 1 01 1 0 00 0 1 10 0 1 1+0 0 1 11 0 0 10 1 1 03.2 机器数的编码表示及加减运算3.2.1 机
6、器数的编码表示1 1原码表示法原码表示法 数的符号用一位数码表示,0表示正号,1表示负号,其余的数位与数值本身相同。例如,N1=+1001011,N2=0.1011011 其原码为 N1原=+1001011原=01001011 N2原=0.1011011原=11011011设设数数X=X=0.x0.x1 1x x2 2x xn n,它的定点小数原,它的定点小数原码码可定可定义为义为:X 0X 0 X X1 1 X X原原=1X=1+|X|1 1X=1+|X|1X X 0 0 Y 0Y 0 Y Y2 2n n X X原原=2 2n nX=2X=2n n+|Y|2+|Y|2n nY Y 0 0设数
7、设数Y=Y=y y1 1y y2 2y yn n,它的定点整数原码可定义为:,它的定点整数原码可定义为:原码小数表示的范围为:(12n)到(12n)原码整数表示的范围为:(2n1)到(2n1)2补码表示法(1)补码 正数的补码 正数的补码就是它本身,即正数的补码与原码相同。负数的补码 负数的补码是另外的一个码值,是模的补。X 0X1 X补=2+X=2|X|1X0 2n+1|X|X 0的整数 0的补码:我们知道,0的原码有正0与负0之分,而0的补码只有一个,即0.0000。根据上面的分析,我们可以得到补码的计算公根据上面的分析,我们可以得到补码的计算公式:式:数的补码表示与其真值之间的关系 正数
8、即原码,符号位为0;负数补码为原码的“取反加1”(符号位为1)。3 3反码表示法反码表示法 机器码的最高位为符号位,0表示正数,1表示负数。反码的定义如下:X 0X1 X反=X+22n 1X0 即:X反=(2n)符号位+X mod(22n),其中,n为小数点后的有效位数。4 4移码表示法移码表示法 当阶码由1位符号位和n位数据组成时,其移码的定义为:X移=2n+X 2nX2n按此定义,则有 X移+Y移=2n+X+2n+Y =2n+(2n+(X+Y)=2n+X+Y移3.2.2 定点数加减运算 当补码加减运算的结果不超出机器范围时,有以下的运算规则:(1)参加运算的两个操作数均用补码表示。(2)符
9、号位作为数的一部分参加运算。(3)求差时将减数求补,用求和代替求差。(4)运算结果为补码。(5)符号位的进位为模值,应该丢掉。1 1补码加法运算补码加法运算 X补+Y补=X+Y补例3-12已知X=+0.10011,Y=+0.01001,求X+Y。解 X补+Y补=0.10011+0.01001 =0.11100 X+Y补=0.10011+0.01001补=0.11100 这里X和Y均为正数,得到 X补+Y补=X+Y 补,符合补码加法规律。例3-13已知X=0.10011,Y=+0.10001,求X+Y。解 X补=1.01101 Y补=0.10001 X补+Y补=1.01101+0.10001 =
10、1.11110 X+Y补=0.10011+0.10001补 =0.00010补=1.11110 这里X和Y为一负一正,同样得到 X补+Y补=X+Y补。2 2补码的减法运算补码的减法运算 XY补X(Y)补X补Y补 已知Y补,求Y补的方法是:对Y补各位(包括符号位)取反,然后在末位加上1,就可以得到Y补。例3-15已知X=0.11001,Y=0.10011,求XY。解 X补=0.11001 Y补=0.10011 则Y补=1.01101 XY补=X补+Y补=0.11001+1.01101=10.00110 3.3.补码定点加减运算的实现补码定点加减运算的实现图图3-1实现加法运算的逻辑示例实现加法运
11、算的逻辑示例3.2.3 定点数加减运算溢出的处理 当运算结果超出机器数所能表示的范围时,称为溢出。很显然,若两个异号数相加或两个同号数相减时,其结果是不会产生溢出的。仅当两个同号数相加或异号数相减时才有可能产生溢出,一旦产生溢出,则结果就是不正确的。判断溢出的方法如下:1.当符号相同的两个数相加时,如果结果的1符号与加数(或加数)符号不同,则说明溢出。即溢出条件为:图图图图3-2 3-2 3-2 3-2 判溢出逻辑图判溢出逻辑图判溢出逻辑图判溢出逻辑图2.当任意符号两数相加时,如果CCf,则运算结果正确,C表示数值最高位产生的进位,Cf表示进位位产生的进位。如果CCf,则为溢出。由此得出溢出条
12、件为:图图图图3-3 3-3 3-3 3-3 判溢出逻辑图判溢出逻辑图判溢出逻辑图判溢出逻辑图3.采用双符号位fS2fS1。正数的双符号位为00,负数的为11。符号位参与运算,运算结果的符号位为高符号位fS2当结果的两个符号位不同时,说明溢出。溢出条件:或者溢出条件为:图图图图3-4 3-4 3-4 3-4 判溢出逻辑图判溢出逻辑图判溢出逻辑图判溢出逻辑图3.3 二进制乘除法运算3.3.1 3.3.1 二进制乘法运算二进制乘法运算1 1定点数一位乘法定点数一位乘法(1)定点原码一位乘法 两个原码数相乘,其乘积的符号为相乘两数的异或值,数值为两数绝对值之积。方法:每次按乘数每1位上的值是1还是0
13、,决定相加数取被乘数的值还是取零值,而且相加数逐次向左偏移1位,最后一起求和。(2)定点补码一位乘法补码与真值的转换关系 设X补=可得出对正负数都合适的公式 补码的右移 在补码运算的机器中,不论数的正负,连同符号位将数右移一位,并保持符号位不变,相当于乘1/2(或除2)。补码一位乘法 设被乘数X补=乘数Y补=则有:XY补=X补 补码一位乘法举例如下。例320 X=-0.1011,Y=0.0111,X补=11.0101,Y补=0.0111,Y为正时,求XY补。解:采用双符号位 结果结果 X XY Y 补补=1.10110011=1.10110011。2 2定点数两位乘法定点数两位乘法 按乘数每两
14、位的取值情况,一次求出对应于该两位的部分积。(1)原码两位乘 即乘数与被乘数均用原码表示。两位乘数的可能组合及对应操作如下:00相当于0X,部分积Pi右移2位,不进行其他运算。01相当于1X,部分积Pi+X,右移2位。10相当于2X,部分积Pi+2X,右移2位。11相当于3X,部分积Pi+2X,右移2位。以(4X-X)来代替3X运算,在本次运算中只执行-X,而+4X则当并到下一步执行,此时部分积已右移了两位,上一步欠下的+4X已变成+X,在实现时用一个触发器C来记录是否欠下+4X,若是,则1C。定点原码运算规则如表3-5所示。实际操作用实际操作用Y Yi i-1-1,Y Yi i,C C三位来
15、控制。三位来控制。表表表表 3-5 3-5 定点原码运算规则表定点原码运算规则表定点原码运算规则表定点原码运算规则表例例3 3 23 23 X=-0.1011,Y=0.1010,求XY。解:解:X=00.1011,2X=01.0110,X补=11.0101,-X补=00.1011,-X用+-X补取代。若最后一次操作欠下若最后一次操作欠下+4+4X X,则最后一次右移,则最后一次右移2 2位后还位后还 需要补充需要补充+X X操作,操作,+X X后不再移位。后不再移位。(2)补码两位乘 产生可部分积Pi补之后,可加上乘数寄存器,最低两位和附加位(共三位)的组合值与X补的积,再右移两位,便可得到P
16、i+2补。三位组合值为:Yn-i+1+Yn-i-2Yn-i1,它们的初始位置依次为:附加位Yn+1,第n位Yn和第n-1位Yn-1。三位共有8种组合值及其对应操作,如表3-6所示。表表表表 3 3 3 3 6 6 6 6组合值组合值组合值组合值Yn-iYn-i +1+1+Y Yn-in-i-2-2Yn-iYn-i 1 1与与与与 P Pi+2i+2补的关系补的关系补的关系补的关系 在执行补码两位乘过程中有在执行补码两位乘过程中有5 5种操作,即:种操作,即:PiPi 补补+0+0,PiPi 补补+X X 补补,PiPi 补补+-+-X X 补补,PiPi 补补+2+2X X 补补,PiPi 补
17、补+2-+2-X X 补补。求部分积的次数和右移操作的控制问题。若乘数由1位符号位和n(奇数)位数据位组成时,求部分积的次数为 ,而最后一次的右移操作只右移一位。若数值位本身为偶数n,则可采用以下两种方法之一。可在乘数的最后一位补一个0,使之变成奇数,且其值不变。求部分积的次数为1+即,最后一次右移也只移1位。乘数增加一位符号位,使总数仍为偶数,求部分积的次数为,且最后一次不再执行右移。3.3.2 二进制除法运算1 1定点原码一位除法定点原码一位除法 定点原码一位除法一般有两种方法:恢复余数法和加减交替法。两个原码数相除,商的符号为两数符号的异或值,数值则为两数绝对值相除后的结果。(1)恢复余
18、数法 上商0还是1,用做减法判结果的符号为负还是正来确定。当差为负时,上商0,同时还应把除数再加到差上去,恢复余数为原来的正值之后再将其左移一位。若减得的差为0或为正值时,就没有恢复余数的操作。上商为1,余数左移一位。例例3 3 25 25 X=-0.1011,Y=0.1101,求XY。解解:-Y补=11.0011商的符号为商的符号为10101 1,结果,结果X XY Y1.11011.1101,余数,余数0.01110.01112 24 4。(2)加减交替法(不恢复余数法)当余数为正时,商上1,求下一位商的办法,是余数左移一位,再减去除数;当余数为负时,商上0,求下一位商的办法,是余数左移一
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机组成原理与系统结构 第3章 运算方法与实现电路 计算机 组成 原理 系统 结构 运算 方法 实现 电路
限制150内