计算机组成原理第四版第二章_第1页
计算机组成原理第四版第二章_第2页
计算机组成原理第四版第二章_第3页
计算机组成原理第四版第二章_第4页
计算机组成原理第四版第二章_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

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

文档简介

1、 为便于软件移植,按照 IEEE754 标准,32位浮点数和64位浮点数的标准格式为 : 2.2 2.2 定点加法、减法运算定点加法、减法运算 A 补码加法补码加法 B 补码减法补码减法 C 溢出及其判断溢出及其判断 D 基本的二进制加法基本的二进制加法/减法器减法器 E 十进制加法器十进制加法器第二章第二章 第二章第二章 :当定点数加减当定点数加减 运算运算 的结果超出定点数的结果超出定点数 所能表示的范围时所能表示的范围时 就会产生溢出。就会产生溢出。两个正数相加,结果两个正数相加,结果大于机器所能表示的大于机器所能表示的最大正数,称为最大正数,称为两个负数相加,结果两个负数相加,结果小于

2、机器所能表示的最小于机器所能表示的最小负数,称为小负数,称为判断方法举例说明溢出溢出常用以下两种方法:常用以下两种方法: 1.采用双符号位(变形补码)判断方法:采用双符号位(变形补码)判断方法: 变形补码:变形补码: “ “00”00”表示正数、表示正数、“11”11”表负数,两符号位同时参加运算,表负数,两符号位同时参加运算,运算结果符号出现运算结果符号出现0101或或1010表明溢出。表明溢出。 1 1)若结果的符号为)若结果的符号为1010表负溢出,说明运算结果为负数,其绝对值超出能表负溢出,说明运算结果为负数,其绝对值超出能表示的最大数值(即结果小于机器所能表示的最小负数)。也称下溢表

3、示的最大数值(即结果小于机器所能表示的最小负数)。也称下溢 2 2)若结果的符号)若结果的符号0101表下溢出,说明运算结果为正数,其大于所能表示的表下溢出,说明运算结果为正数,其大于所能表示的最大正数。也称上溢最大正数。也称上溢 溢出实现:溢出实现: V=SV=Sf1f1SSf2f2 2.利用进位值的判断方法:利用进位值的判断方法: 判断规则是:两补码数进行加减运算(减法转化为加法)时,若最高数判断规则是:两补码数进行加减运算(减法转化为加法)时,若最高数值位有进位值位有进位CnCn而符号位无进位而符号位无进位CfCf时,发生正溢出。若最高数值位无进位而符时,发生正溢出。若最高数值位无进位而

4、符号位有进位时,发生负溢出。号位有进位时,发生负溢出。 溢出实现:溢出实现: V= Cn CfV= Cn CfBack第二章第二章 设:被乘数 x原=xf.x1x2 xn 乘数y原 =yf .y1y2 yn 则 :乘积 z=(xfyf) .(0.x1x2 xn)*(0.y1y2 yn)式中,xf为被乘数符号,yf为乘数符号。 乘积符号的运算法则是:同号相乘为正,异号相乘为负。1. 定点乘法原理定点乘法原理 2.不带符号的阵列乘法原理设有两个不带符号的二进制整数:设有两个不带符号的二进制整数:Aam-1a1a0 Bbn-1b1b0实现这个乘法过程所需要的操作和人们的习惯方法非常类似,如下计算过程

5、:实现这个乘法过程所需要的操作和人们的习惯方法非常类似,如下计算过程: 2.不带符号的阵列乘法器不带符号的阵列乘法器举例举例1:5*5不带符号的阵列乘法器逻辑电路图不带符号的阵列乘法器逻辑电路图第二章第二章 举例举例2:已知两个不带符号的二进制整数已知两个不带符号的二进制整数A 11011, B 10101,求每一部分乘求每一部分乘积项积项aibj的值与的值与p9p8p0的值。的值。解:解:p34例例19二进制对二进制对2求补器电路图:求补器电路图:两个算前求补器的作用是:将两个操作数两个算前求补器的作用是:将两个操作数A和和B在被不带符号的乘法阵列在被不带符号的乘法阵列(核心核心部件部件)相

6、乘以前相乘以前,先变成正整数。而算后求补器的作用则是:当两个输入操作数的符号不先变成正整数。而算后求补器的作用则是:当两个输入操作数的符号不一致时一致时,把运算结果变成带符号的数。把运算结果变成带符号的数。例例17 设设15,13,用带求补器的原码阵列乘法器求出乘积用带求补器的原码阵列乘法器求出乘积?解解: 设最高位为符号位设最高位为符号位,则输入数据为则输入数据为原原 01111 原原 11101 符号位单独考虑符号位单独考虑,算前求补级后算前求补级后 |1111,|1101 计算过程:计算过程:经算后求补级输出并加上乘积符号位经算后求补级输出并加上乘积符号位1,则原码乘积值为则原码乘积值为

7、111000011。换算成二进制数真值是换算成二进制数真值是( 11000011)2=(-195)10十进制数验证:十进制数验证: 15 (13) 195相等。相等。例例18 设设15,13,用带求补器的补码阵列乘法器求出乘积用带求补器的补码阵列乘法器求出乘积?解解:设最高位为符号位设最高位为符号位,则输入数据用补码表示为则输入数据用补码表示为补补 01111 补补 10011 符号位单独运算符号位单独运算,x0 y0=0+1=1 尾数部分算前求补器输出为尾数部分算前求补器输出为: |1111,|1101 计算过程:计算过程: 经经算后求补器输出为算后求补器输出为00111101,加符号位加符

8、号位1,得得 补补=100111101 补码二进制数真值是补码二进制数真值是-128+125+124+123+122+120=(-195)10 十进制数验证:十进制数验证: (+15) (13) 195相等。相等。2.并行直接补码乘法并行直接补码乘法 补码与真值得转换公式:补码与真值得转换公式: 定点补码整数N补anan1a1a0,这里an是符号位。根据N补的符号,补码数N补和真值N的关系可以表示成: 表达式合并成下面的统一形式: 一般化的全加器形式:一般化的全加器形式: 常规的一位全加器可假定它的3个输入和2个输出都是正权。这种加法器通过把正权或负权加到输入/输出端,可以归纳出四类加法单元。

9、符号见P43表2.3:0类全加器没有负权输入;1类全加器有1个负权输入和2个正权输入;依次类推。对0类、3类全加器而言有:S/X/YZ/XY/ZX/Y/ZXYZCXYYZZX对1类、2类全加器,则有S/X/YZ/XY/ZX/Y/ZXYZCXYX/ZY/Z3.直接补码阵列乘法器直接补码阵列乘法器 设被乘数A和乘数B是两个5位的二进制补码数,即如果我们用括号来标注负的被加项, 那么A和B相乘过程中所包含的操作步骤如下面矩阵所示:举例:举例:例例 已知已知 x补补=01101 , y补补=11011 求求x y补补。 解:计算过程如下:解:计算过程如下: 两个原码数相除时,两个原码数相除时,商的符号

10、商的符号由两数的符号按位相加求得,由两数的符号按位相加求得,商的数值商的数值部分由两数的数值部分相除求得。部分由两数的数值部分相除求得。 设有被除数设有被除数x,其原码为,其原码为x原原=xf.x1x2xn 除数除数y,其原码为,其原码为y原原=yf.y1y2yn 则有商则有商q=x/y ,其原码为,其原码为 q原原=(xf yf). (x1x2xn/y1y2yn) 商的符号运算商的符号运算qf=xf yf与原码乘法一样,用模与原码乘法一样,用模2求和得到。求和得到。当余数为正时,商当余数为正时,商“1”,余数左移一位,减除数;,余数左移一位,减除数;当余数为负时,商当余数为负时,商“0”,余

11、数左移一位。加除数。,余数左移一位。加除数。流程图如下流程图如下:规则规则需要指出的是,在定点需要指出的是,在定点小数除法运算时,为了小数除法运算时,为了防止溢出,要求被除数防止溢出,要求被除数的绝对值小于除数的绝的绝对值小于除数的绝对值,即对值,即|X|Y|,且除,且除数不能为数不能为0。另外,在原。另外,在原码加减交替法中,当最码加减交替法中,当最终余数为负数时,必须终余数为负数时,必须恢复一次余数,使之变恢复一次余数,使之变为正余数,注意此时不为正余数,注意此时不需要再左移了。需要再左移了。已知:已知:x=0.1001,y=0.1011,用加减交替法用加减交替法x/y. 解:解: |x|

12、原原=|x|补补=0.1001,|y|补补=0.1011,-|y|补补=1.0101 被除数被除数x/余数余数r 商数商数q 0 0. 1 0 0 1 +-|y|补补 1 1. 0 1 0 1 1 1. 1 1 1 0 1 1. 1 1 0 0 0 +|y|补补 0 0 . 1 0 1 1 0 0. 0 1 1 1 0 0. 1 1 1 0 0. 1 +-|y|补补 1 1. 0 1 0 1 0 0. 0 0 1 1 0 0. 0 1 1 0 0. 11 +-|y|补补 1 1. 0 1 0 1 1 1.1 0 1 1 1 1. 0 1 1 0 0. 110 +|y|补补 0 0. 1 0 1

13、 1 0 0. 0 0 0 1 0.1101 得:得:q=xy=0.1101,余数,余数r=2-40.0001 设有两个浮点数设有两个浮点数x和和y,它们分别为,它们分别为 x=2Ex Mx y=2Ey My 运算规则是:运算规则是:xy=(Mx2ExEy My)2Ey, ExEy 其中其中Ex和和Ey分别为数分别为数x和和y的阶码,的阶码, Mx和和My为数为数x 和和y的尾数。的尾数。 运算步骤为:运算步骤为: 1. 0 操作数的检查; 2. 比较阶码大小并完成对阶; 3. 尾数进行加或减运算; 4. 结果规格化并进行舍入处理。例例 :设设x=20100.11011011, y=2100(

14、0.10101100), 求求x y. 解:解:假设两数均以补码表示,且采用双符号位,则它们的浮点表示假设两数均以补码表示,且采用双符号位,则它们的浮点表示分别为分别为 x浮浮=00 010,00.11011011 y浮浮=00 100,11.01010100(1)求阶差并对阶求阶差并对阶 E=Ex Ey Ex Ey补补=Ex补补Ey补补=00 010+11 100=11 110即即E为为2,x的阶码小,应使的阶码小,应使Mx右移右移2位,位,Ex加加2, x浮浮=00 100,00.00110110(11)其中(其中(11)表示)表示Mx右移右移2位后移出的最低两位数。位后移出的最低两位数。

15、(2)尾数求和)尾数求和 00.00110110(11) + 11.01010100 11.10001010(11)(3)规格化处理)规格化处理 尾数运算结果的符号位与最高数值为同值,尾数运算结果的符号位与最高数值为同值,应执行左规处理,结果为应执行左规处理,结果为11.00010101(10),阶码为阶码为00 011。(4)舍入处理)舍入处理 采用采用0舍入法处理,则有舍入法处理,则有 11.00010101 + 1 11.00010110(5)判溢出判溢出 阶码符号位为阶码符号位为00,不溢出,故得最终结果,不溢出,故得最终结果为为 x+y=2011 (0.11101010)E2ACE1

16、MQDRE加法器加法器加法器加法器尾码部件尾码部件阶码部件阶码部件设有两个浮点数设有两个浮点数x和和y:x=Mx 2Exy=My 2Ex则浮点乘法运算的规则是:则浮点乘法运算的规则是:xy=2(Ex+Ey) (MxMy)则浮点除法的运算规则是:则浮点除法的运算规则是:xy= 2(Ex-Ey) (MxMy)BackNext=-0.1101, =-0.1011, 求求x+y。解:解:x补补1.0011 y补补1.0101 x补补1. 0 0 1 1 + y补补1. 0 1 0 1 Back溢出举例溢出举例一位全加器一位全加器:D 基本的二进制加法基本的二进制加法/减法器减法器D 基本的二进制加法基本的二进制加法/减法器减法器对图2-3(a)所示的一位全加器(FA)来说,Si的时间延迟为6T(每级异或门延迟3T),Ci+1的时间延迟为5T,其中T被定义为相应于单级逻辑电路的单位门延迟。T通常采用一个“与非”门或一个“或非”门的时间

温馨提示

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

评论

0/150

提交评论