计算机组成原理(32)定点数和浮点数_第1页
计算机组成原理(32)定点数和浮点数_第2页
计算机组成原理(32)定点数和浮点数_第3页
计算机组成原理(32)定点数和浮点数_第4页
计算机组成原理(32)定点数和浮点数_第5页
已阅读5页,还剩90页未读 继续免费阅读

下载本文档

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

文档简介

1、123.2.3 定点数和浮点数定点数和浮点数 计算机中的两种表示方式计算机中的两种表示方式3 1. 数的定点表示方法数的定点表示方法4 2. 数的浮点表示方法数的浮点表示方法5规格化问题规格化问题67例题:设某机器用例题:设某机器用32位表示一个实数,阶码部分位表示一个实数,阶码部分8位位(含(含1位阶符),用定点整数补码表示;尾数部分位阶符),用定点整数补码表示;尾数部分24位(含数符位(含数符1位),用规格化定点小数补码表示,基位),用规格化定点小数补码表示,基数为数为2。则:。则:82. 求求Y= -256.5 的浮点表示格式的浮点表示格式9(3) 溢出问题溢出问题10微机中所能表示的数

2、值类型微机中所能表示的数值类型 11 微机中的四种整数类型微机中的四种整数类型12IEEE754标准格式如下标准格式如下 13微 机 中 三 种 不 同 类 型 浮 点 数 的 格 式 参 数 单 精 度 双 精 度 扩 展 精 度 浮 点 数 长 度 ( 位 ) 32 64 80 符 号 位 数 1 1 1 尾 数 长 度P(位 ) 23+1( 隐 ) 52+1( 隐 ) 64 阶 码E长 度 ( 位 ) 8 11 15 最 大 阶 码 +127 +1023 +16383 最 小 阶 码 -126 -1022 -16382 阶 码 偏 移 量 +127 +1023 +16383 表 示 数

3、范 围 10-3810+38 10-30810+308 14微机中浮点数表示成规格化形式,如下图所示:微机中浮点数表示成规格化形式,如下图所示: 15例如将十进制数例如将十进制数178.125表示成微机表示成微机中的单精度浮点数中的单精度浮点数16例例:将下面将下面Pentium机中的单精度浮点数机中的单精度浮点数表示成十进制真值是多少?表示成十进制真值是多少?0011 ,1111,0101,1000,0000,0000,0000,0000数符数符:S=(-1) 0= =1 (正号)(正号)阶码阶码: E=(01111110)2-127=126-127= -1尾数尾数: D=(1.1011)2

4、X= 1.1011x2-1= (0.11011)2=0.84375173.3 二进制乘法运算二进制乘法运算183.3.1 定点数一位乘法定点数一位乘法1. 定点原码一位乘定点原码一位乘P0=0P1=(P0+y-4X)2-1P2=(P1+y-3X)2-1P3=(P2+y-2X)2-1P4=(P3+y-1X)2-119 规则规则:在机器中采用在机器中采用A,B,C寄存器来分别存放部分积、被乘数和乘寄存器来分别存放部分积、被乘数和乘数数 (1)在机器内一次加法操作只能求出两数之和,因此每求得一个)在机器内一次加法操作只能求出两数之和,因此每求得一个相加数时,就得与上次部分积相加。相加数时,就得与上次

5、部分积相加。 (2)人工计算时,相加数逐次向左偏移一位,最后的乘积位数是)人工计算时,相加数逐次向左偏移一位,最后的乘积位数是乘数(或被乘数)的两倍。在求本次部分积时,前一次部分积的最乘数(或被乘数)的两倍。在求本次部分积时,前一次部分积的最低位,不再参与运算,因此可将其右移一位。相加数可直送而不必低位,不再参与运算,因此可将其右移一位。相加数可直送而不必偏移,于是用偏移,于是用N位加法器就可实现两个位加法器就可实现两个N位数相乘。位数相乘。 (3)部分积右移时乘数寄存器同时右移一位,这样可以用乘数寄)部分积右移时乘数寄存器同时右移一位,这样可以用乘数寄存器的最低位来控制相加数(取被乘数或零)

6、,同时乘数寄存器的存器的最低位来控制相加数(取被乘数或零),同时乘数寄存器的最高位可接收部分积右移出来的一位,因此,完成乘法运算后,最高位可接收部分积右移出来的一位,因此,完成乘法运算后,A寄寄存器中保存乘积的高位部分,乘数寄存器存器中保存乘积的高位部分,乘数寄存器C中保存乘积的低位部分。中保存乘积的低位部分。20开始 A0,Cd nB X,C Y(Cn)=1A (A)+(B)(A)、(C)右移一位(Cd) (Cd)-1(Cd)=0?A0 (B0) (C0)结束YNYN21例例:设设X=0.1101,Y=0.1011,求求XY. 其中寄存器其中寄存器B=X ,Cd=4,计算过程,计算过程如下如

7、下:0 0 0 0 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 1 0 10 0 0 1 1 0 1 1 0 10 0 1 1 0 10 1 0 0 1 10 0 1 0 0 1 1 1 1 00 0 0 0 0 00 0 1 0 0 10 0 0 1 0 0 1 1 1 10 0 1 1 0 10 1 0 0 0 10 0 1 0 0 0 1 1 1 1 +x右移一位+x右移一位+0右移一位+x右移一位部分积 A 乘数 C 乘积高位 乘积低位1(丢失)1(丢失)0(丢失)1(丢失)XY=0.1000111122移 位 电 路ALU 加 法 器A 部分积B 被乘数C 乘 数AA

8、LUBALUALU/2 AC/2 C计数器Cd23242.定点补码一位乘法定点补码一位乘法25(3)补码一位乘法)补码一位乘法26272829布斯布斯(Booth)公式公式30布斯布斯(Booth)公式的运算规则公式的运算规则31例例3.35:设设X=-0.1101,Y=0.1011,即即X补补=11.0011,Y补补=0.1011 ,-X=00.1101 求求XY补补。计算过程如下计算过程如下:0 0 0 0 0 0 0. 1 0 1 1 0 初始值初始值,最后一位补最后一位补0 0 0 1 1 0 1 Y5Y4=01 +-X补补0 0 1 1 0 10 0 0 1 1 0 1 0 1 0

9、1 1 右移一位右移一位0 0 0 0 0 0 Y4Y3=11 +00 0 0 1 1 00 0 0 0 1 1 0 1 0 1 0 1 右移一位右移一位1 1 0 0 1 1 Y3Y2=10 +X补补1 1 0 1 1 01 1 1 0 1 1 0 0 1 0 1 0 右移一位右移一位 0 0 1 1 0 1 Y2Y1=01 +-X补补0 0 1 0 0 00 0 0 1 0 0 0 0 0 1 0 1 右移一位右移一位1 1 0 0 1 1 Y1Y0=10 +X补补1 1 0 1 1 1 0 0 0 1+部分积部分积 乘数乘数Y Yi Yi+1 说明说明乘积高位乘积高位 乘积低位乘积低位X

10、Y补补=1.01110001, XY=-0.1000111132333.3.2 定点数二位乘定点数二位乘34P0=0P1=(P0+ 2 y-7 + y-8X)2-2P2=(P1+ 2 y-5 + y-6X)2-2P3=(P2+ 2 y-3 + y-4X)2-2P4=(P3+ 2 y-1 + y-2X)2-235Pi=(Pi-1+ 3X)2-2 Pi+1=(Pi+ mX)2-2等效于Pi=(Pi-1X)2-2 Pi+1=(Pi+ mX+X)2-2Pi=(Pi-1+ 4X)2-2 Pi+1=(Pi+ mX)2-2等效于Pi=(Pi-1+0X)2-2 Pi+1=(Pi+ mX+X)2-23637补码

11、两位乘补码两位乘38求部分积的次数和右移操作的控制问题求部分积的次数和右移操作的控制问题39例例3.37 X=-0.1101,Y=-0.1011,求,求XY补补40XY补补0.10001111413.3.3 阵列乘法器423.4.1 定点除法运算定点除法运算43(1)恢复余数法)恢复余数法 手工计算过程:设手工计算过程:设X=0.1011,Y=0.1101 求求X/Y44例例3.38 假设假设X=0.1011,Y=0.1101,求,求X/Y解:解:-Y补补=11.0011,取双符号位,取双符号位-Y用用+ -Y补补取代取代X/Y0.1101余数=0.0111 2-445(2)加减交替法)加减交

12、替法46加减交替法加减交替法47例例3.39:设被乘数设被乘数X=0.1011,Y=0.1101,用加减交替法求用加减交替法求X/Y. -Y补补=11.0011,计算过程如下计算过程如下:0 0 1 0 1 1 0 0 0 0 0 开始情形开始情形1 1 0 0 1 1 +-Y补补1 1 1 1 1 0 0 0 0 0 0 不够减不够减,商上商上01 1 1 1 0 0 0 0 0 0 左移左移0 0 1 1 0 1 +Y0 0 1 0 0 1 0 0 0 0 1 够减够减,商上商上10 1 0 0 1 0 0 0 0 1 左移左移1 1 0 0 1 1 +-Y补补0 0 0 1 0 1 0

13、0 0 1 1 够减够减,商上商上10 0 1 0 1 0 0 0 1 1 左移左移 1 1 0 0 1 1 +-Y补补1 1 1 1 0 1 0 0 1 1 0 不够减不够减,商上商上01 1 1 0 1 0 0 1 1 0 左移左移0 0 1 1 0 1 +Y0 0 0 1 1 1 0 1 1 0 1 够减够减,商上商上1+)+)+)+)+)被除数被除数(余数余数R) (被除数(被除数)(商)商) 操作说明操作说明余数余数 商商X/Y=0.1101, 余数余数=0.01112-448492、定点补码一位除法(加减交替法) 在在|X|Y|X|Y|即不溢出的前提下;即不溢出的前提下; (1 1

14、)第一步如果被除数与除数同号,用被除数减去除数;)第一步如果被除数与除数同号,用被除数减去除数;若两数异号,用被除数加上除数。如果所得余数与除数同号上若两数异号,用被除数加上除数。如果所得余数与除数同号上商商1 1,若余数与除数异号,上商,若余数与除数异号,上商0 0,该商即为结果的符号位。,该商即为结果的符号位。 (2 2)求商的数值部分,如果上次上商)求商的数值部分,如果上次上商1 1,将余数左移一位,将余数左移一位后减去除数;如果上次上商后减去除数;如果上次上商0 0,将余数左移一位后加上除数。然,将余数左移一位后加上除数。然后判断本次操作后的余数,如果余数与除数同号上商后判断本次操作后

15、的余数,如果余数与除数同号上商1 1;若余数;若余数与除数异号上商与除数异号上商0 0。如此重复执行。如此重复执行n-ln-l次(设数值部分有次(设数值部分有n n位)。位)。 (3 3)商的最后一位一般采用恒置)商的最后一位一般采用恒置1 1的办法,并省略了最低的办法,并省略了最低位位+1+1的操作,此时最大误差为的操作,此时最大误差为2 2-n-n。5051例例3.40:设设X补补=1.0111,Y补补=0.1101,求求X/Y补。补。-Y补补=11.0011,计算过程如下计算过程如下:X/Y补补=1.01011 1 0 1 1 1 0 0 0 0 0 开始情形开始情形0 0 1 1 0

16、1 两数异号两数异号+Y补补0 0 0 1 0 0 0 0 0 0 1 余数与除数同号余数与除数同号,商上商上10 0 1 0 0 0 0 0 0 1 0 左移左移1 1 0 0 1 1 上次商上次商1,+-Y补补1 1 1 0 1 1 0 0 0 1 0 余数与除数异号余数与除数异号,商上商上01 1 0 1 1 0 0 0 1 0 0 左移左移0 0 1 1 0 1 上次商上次商0,+Y补补0 0 0 0 1 1 0 0 1 0 1 余数与除数同号余数与除数同号,商上商上10 0 0 1 1 0 0 1 0 1 0 左移左移 1 1 0 0 1 1 上次商上次商1, +-Y补补1 1 1

17、0 0 1 0 1 0 1 0 余数与除数异号余数与除数异号,商上商上01 1 0 0 1 0 1 0 1 0 1 左移左移,商的最低位恒置商的最低位恒置1+)+)+)+)被除数被除数(余数余数) 商商 操作说明操作说明余数余数 商商5253543.5 浮点数的运算方法55 1. 加、减法运算加、减法运算56具体说明如下:21001. 021101. 0333321111. 020010. 021101. 021101. 021001. 020100. 020001.0321100. 057规格化:规格化:583332101110. 02001010. 021001. 021001.02100

18、1.033332101101.02001001.021001.021010.021001.03321100.0321011.0321011.0321011.059例例: :假设假设X=2X=20100100.11011011,Y=20.11011011,Y=2100100 (-0.10101100) (-0.10101100) 采用补码表示采用补码表示, ,求求X+Y=?X+Y=? 606162例例: :假设假设 其中指数和小数均为二进制真值其中指数和小数均为二进制真值, ,求求X-YX-Y。其阶码。其阶码4 4位位( (含阶符含阶符),),补补码表示码表示; ;尾数尾数6 6位位, ,补码表

19、示补码表示, ,尾数符号在最高位尾数符号在最高位, ,尾数数值尾数数值5 5位位 解解: 尾符尾符 阶码阶码 尾数尾数 X浮浮=0 0010 11010 Y浮浮=1 0011 00010对阶对阶 X浮浮=0 0011 01101尾数求差尾数求差: X尾尾-Y 尾尾补补=X 尾尾补补+-Y 尾尾补补 =00.01101+00.11110=01.01011 规格化处理、舍入操作、阶码溢出检查:规格化处理、舍入操作、阶码溢出检查:尾数符号位为尾数符号位为01, 尾数发生上溢出,做规格化处理尾数发生上溢出,做规格化处理 尾数连同符号右移一位尾数连同符号右移一位00.101011,阶码加,阶码加1至至0

20、100舍入操作恒置舍入操作恒置1后:后:X浮浮- Y浮浮=0 0100 10101 X-Y真真=100210101.0111021111.0,21101.0YX63 3.5.2 浮点数的乘、除法运算641.浮点数的阶码运算65如何用移码进行阶码溢出判断663.6 运算部件67683.7 计算机中的数据校验方法69几个名词概念:几个名词概念:码字:码字: 由若干代码组成的一个字。如由若干代码组成的一个字。如84218421码中码中6 6(01100110),),7 7(01110111)。)。码距:码距: 一种码制中任意两个码字间的最小距离。一种码制中任意两个码字间的最小距离。距离:距离: 两个

21、码字之间不同的代码个数。两个码字之间不同的代码个数。 84218421码中,最小的码距为码中,最小的码距为1 1,如,如00000000和和00010001、00100010和和00110011等;最大码距为等;最大码距为4 4,如,如01110111和和10001000。84218421码的码距为码的码距为1 1。 码距为码距为1 1,即不能查错也不能纠错。码距越大,查错、,即不能查错也不能纠错。码距越大,查错、纠错能力越强。纠错能力越强。703.7.1 奇偶校验法71 例如:八位信息例如:八位信息1010101110101011中共有中共有5 5个个11,附加校验,附加校验位后变为九位。位

22、后变为九位。 若采用奇校验,则附加的校验位应取若采用奇校验,则附加的校验位应取00值,保证值,保证1 1的个的个数为奇数个,即数为奇数个,即0 0 10101011 10101011 ; 若采用偶校验,则附加的校验位应取若采用偶校验,则附加的校验位应取11值,保证值,保证1 1的个的个数为偶数个,即数为偶数个,即1 1 10101011 10101011 。 奇偶校验的特点:奇偶校验的特点: 1 1、奇偶校验法使数据的码距为、奇偶校验法使数据的码距为2 2,因而可检出数据传送过,因而可检出数据传送过程中奇数个数位出错的情况;程中奇数个数位出错的情况; 2 2、实际中两位同时出错的概率极低,奇偶

23、校验法简便可靠、实际中两位同时出错的概率极低,奇偶校验法简便可靠易行,但它只能发现错误,却不知错在何处,因而不能自动纠易行,但它只能发现错误,却不知错在何处,因而不能自动纠正。正。 728位数据的奇偶校验码形成电路及检码电路733.7.2 海明码校验方法7475(1)编码方法 五个校验位最多可以校验五个校验位最多可以校验1616位数据。位数据。 设:设:D D8 8D D7 7D D6 6D D5 5D D4 4D D3 3D D2 2D D1 1为数据位,为数据位,P P4 4P P3 3P P2 2P P1 1分别为四分别为四个校验码,则编码排列规则是:个校验码,则编码排列规则是: 海明码

24、的总位数等于数据位与校验位之和;每个海明码的总位数等于数据位与校验位之和;每个校验位校验位P Pi i排放在排放在2 2i-1i-1的位置,例如的位置,例如P P4 4排放在第排放在第2 24-14-1=8=8位,位,其余数据位依序排列。即:其余数据位依序排列。即: H H1313 H H1212 H H1111 H H1010 H H9 9 H H8 8 H H7 7 H H6 6 H H5 5 H H4 4 H H3 3 H H2 2 H H1 1 P P5 5 D D8 8 D D7 7 D D6 6 D D5 5 P P4 4 D D4 4 D D3 3 D D2 2 P P3 3 D

25、 D1 1 P P2 2 P P1 1 海明码的每一位用多个校验位一起进行校验,海明码的每一位用多个校验位一起进行校验, 被校验的位号等于校验它的各校验位位号之和;各校被校验的位号等于校验它的各校验位位号之和;各校验位的值为它参与校验的数据位的异或。验位的值为它参与校验的数据位的异或。767778(2)检查纠错(以四个校验位进行说明) 海明码数据传送到接收方后,再将各校验位的值海明码数据传送到接收方后,再将各校验位的值与它所参与校验的数据位的异或结果进行异或运算。与它所参与校验的数据位的异或结果进行异或运算。 运算结果称为运算结果称为校验和校验和。校验和共有四个。校验和共有四个。 如果校验和不

26、为零则传输过程中间有错误。而错如果校验和不为零则传输过程中间有错误。而错误的具体位置则由四个校验和依序排列后直接指明。误的具体位置则由四个校验和依序排列后直接指明。 例如,如果四个校验和例如,如果四个校验和S S4 4S S3 3S S2 2S S1 1依序排列后等于依序排列后等于 (1001)(1001)2 2=(9)=(9)1010时,就表明海明码的第时,就表明海明码的第9 9位也就是位也就是D D4 4发发生了错误,此时只要将生了错误,此时只要将D D4 4取反,就纠正了错误。取反,就纠正了错误。 7980检错位编码表81解:已知解:已知D8D7D6D5D4D3D2D1=10100110

27、 =0 发送方发送发送方发送P5D8D7D6D5P4D4D3D2P3D1P2P1=0101000111001例题:采用例题:采用4位校验位、偶校验方式,写出位校验位、偶校验方式,写出10100110的海明码。的海明码。8283 以上以上 是是H=12H=12,数据位,数据位k=8k=8,校验位,校验位 r=4r=4的海明校的海明校验,记作(验,记作(l2l2,8 8)分组码。)分组码。 如错误发生在校验位上。则相关的译码线(如错误发生在校验位上。则相关的译码线(10001000,0l000l00,00100010,00010001)之一为)之一为l l,在校验线路图中未画出。,在校验线路图中未

28、画出。 假如要进一步判别是假如要进一步判别是1 1位错还是位错还是2 2位错,则再增加位错,则再增加一个校验位、并用图一个校验位、并用图3.123.12来取代图来取代图3.113.11虚框中的内容,虚框中的内容,此时增加了一个奇偶形成线路此时增加了一个奇偶形成线路S5S5。如为一位错,仍按。如为一位错,仍按图图3.113.11来纠正数据位;如为两位错,则无法纠正错误。来纠正数据位;如为两位错,则无法纠正错误。84图3.11图3.12853.7.3 循环冗余校验方法(CRC码)8687 例:对例:对4 4位有效信息(位有效信息(11001100)求循环校验编码,)求循环校验编码,选择生成多项式(

29、选择生成多项式(10111011) 解:解:M(x)=xM(x)=x3 3+x+x2 2=1100 =1100 M(x) M(x)x x3 3=X=X6 6+X+X5 5=1100000=1100000 G(x)=x G(x)=x3 3+x+1=1011 +x+1=1011 M(x) M(x)x x3 3R(x)=1100000+010=1100010R(x)=1100000+010=110001088出错模式89例:有一个(例:有一个(7,4)码(即)码(即CRC码为码为7位,信息位,信息码为码为4位),已确定生成多项式为:位),已确定生成多项式为: G(X)=X3+X+1= 1011被传输

30、的信息被传输的信息C(x)=1001,求,求C(x)的的CRC码。码。1001000210012)(3rxC10011101101001000)(2)(3xRxC90 110 1011 1000 1011 10101001000101191 2、CRC码的查错表CRCA7A6A5A4A3A2A1余数 出错正确10011100001001111001A11001100010A21001010100A31000110011A41011110110A51101110111A6某一位出错0001110101A7 收到的收到的CRC码除以约定的生成多项式码除以约定的生成多项式G(x),如果,如果余数为余数为0则传输无误,否则传输错误,根据所得余数值则传输无误,否则传输错误,根据所得余数值就可找出错误并取反纠正。就可找出错误并取反纠正。 92 3、生成多项式G(x)的确定 G(x) G(x)是一个约定的除数,用来产生校验码。是一个约定

温馨提示

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

评论

0/150

提交评论