第二章 运算方法和运算器.ppt

上传人:fuellot230 文档编号:377210 上传时间:2018-10-08 格式:PPT 页数:115 大小:1.32MB
下载 相关 举报
第二章 运算方法和运算器.ppt_第1页
第1页 / 共115页
第二章 运算方法和运算器.ppt_第2页
第2页 / 共115页
第二章 运算方法和运算器.ppt_第3页
第3页 / 共115页
第二章 运算方法和运算器.ppt_第4页
第4页 / 共115页
第二章 运算方法和运算器.ppt_第5页
第5页 / 共115页
亲,该文档总共115页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、2018/10/9,1,第二章 运算方法和运算器,2.1数据与文字的表示 2.2定点加法、减法运算 2.3定点乘法运算 2.4定点除法运算 2.5定点运算器的组成 2.6浮点运算与浮点运算器,返回,2018/10/9,2,2.1数据与文字的表示方法,2.1.1数据格式 2.1.2数的机器码表示 2.1.3字符的表示 2.1.4汉字的表示 2.1.5校验码,2018/10/9,3,2.1数据与文字的表示方法,计算机中使用的数据可分成两大类: 符号数据:非数字符号的表示(ASCII、汉字、图形等) 数值数据:数字数据的表示方式(定点、浮点) 计算机数字和字符的表示方法应有利于数据的存储、加工(处理

2、)、传送; 编码:用少量、简单的基本符号,选择合适的规则表示尽量多的信息,同时利于信息处理(速度、方便),2018/10/9,4,2.1.1数据格式,一、复习10进制和R进制之间的转换R进制到10进制:10进制到R进制:整数部分:除r取余,r为进制基数 小数部分:乘r取整,2018/10/9,5,2.1.1数据格式,二、数值数据计算机在数据、文字的表示方式时,应该考虑一下几个因素: 表示的数据类型(整数、小数、实数和复数) 数值的范围 数值精度 存储、处理、传送的硬件代价,2018/10/9,6,2.1.1数据格式,三、计算机常用的数据表示格式有两种: 定点表示:小数点位置固定 数值范围有限

3、浮点表示:小数点位置不固定 数值范围很大,2018/10/9,7,2.1.1数据格式,四、定点表示法 所有数据的小数点位置固定不变 理论上位置可以任意,但实际上将数据表示成两种形式: 纯小数 纯整数 定点数表示: 带符号数 不带符号数,2018/10/9,8,1、定点纯小数,x0 x1 x2 x3 xn-1 xn表示数的范围是 0|12n(最小数、最大数、最接近0的正数、最接近0的负数),符号,量值,小数点固定于符号位之后,不需专门存放位置,2.1.1数据格式,2018/10/9,9,2.1.1数据格式,2、纯小数的表示范围,2018/10/9,10,2.1.1数据格式,3、定点纯整数x0 x

4、1 x2 x3 xn-1 xn表示数的范围是 0|2n1最小数、最大数、最接近0的正数、最接近0的负数呢?,符号,量值,小数点固定于最后一位之后,不需专门存放位置,2018/10/9,11,2.1.1数据格式,4、定点表示法的特点 定点数表示数的范围受字长限制,表示数的范围有限; 定点表示的精度有限 机器中,常用定点纯整数表示如果用定点表示,则如何表示实数(包括小数和整数)呢?-引入浮点,2018/10/9,12,2.1.1数据格式,五、浮点表示:小数点位置随阶码不同而浮动 1、格式:N=RE.M2、机器中表示,指数E,基数R,取固定的值,比如10,2等,尾数M,纯小数,2018/10/9,1

5、3,2.1.1数据格式,3、IEEE754标准(规定了浮点数的表示格式,运算规则等) 规则规定了单精度(32)和双精度(64)的基本格式. 规则中,尾数用原码,指数用移码(便于对阶和比较),2018/10/9,14,2.1.1数据格式,IEEE754标准 基数R=2,基数固定,采用隐含方式来表示它。 32位的浮点数: S是数的符号位,1位,在最高位,“0”表示正数,“1”表示负数。 M是尾数, 23位,在低位部分,采用纯小数表示 E是阶码,8位,采用移码表示。移码比较大小方便。 规格化: 若不对浮点数的表示作出明确规定,同一个浮点数的表示就不是惟一的。 尾数域最左位(最高有效位)总是1, 故这

6、一位经常不予存储,而认为隐藏在小数点的左边。 采用移码表示阶码E ,将浮点数的指数真值e变成阶码E时,应将指数e加上一个固定的偏移值127(01111111),即E=e+127。,2018/10/9,15,2.1.1数据格式,64位的浮点数中符号位1位,阶码域11位,尾数域52位,指数偏移值是1023。因此规格化的64位浮点数x的真值为:x=(-1)S(1.M)2E-1023 e=E-1023 一个规格化的32位浮点数x的真值表示为x=(-1)S(1.M)2E-127e=E-127,2018/10/9,16,2.1.1数据格式,真值x为零表示:当阶码E为全0且尾数M也为全0时的值,结合符号位S

7、为0或1,有正零和负零之分。 真值x为无穷大表示:当阶码E为全1且尾数M为全0时,结合符号位S为0或1,也有+和-之分。 浮点数所表示的范围远比定点数大。 e的范围为-126至+127, 32位浮点数表示的绝对值范围是10-38至1038 一般在高档微机以上的计算机中同时采用定点、浮点表示,由使用者进行选择。而单片机中多采用定点表示。,2018/10/9,17,2.1.1数据格式,例1:若浮点数x的754标准存储格式为(41360000)16,求其浮点数的十进制数值。 解:将16进制数展开后,可得二制数格式为0 100 00010011 0110 0000 0000 0000 0000S 阶码

8、(8位) 尾数(23位) 指数e=阶码-127=10000010-01111111=00000011=(3)10 包括隐藏位1的尾数 1.M=1.011 0110 0000 0000 0000 0000=1.011011 于是有 x=(-1)S1.M2e=+(1.011011)23=+1011.011=(11.375)10,2018/10/9,18,2.1.1数据格式,例2:将数(20.59375)10转换成754标准的32位浮点数的二进制存储格式。解:首先分别将整数和分数部分转换成二进制数: 20.59375=10100.10011然后移动小数点,使其在第1,2位之间 10100.10011

9、=1.01001001124e=4于是得到:S=0, E=4+127=131, M=010010011最后得到32位浮点数的二进制存储格式为: 01000001101001001100000000000000=(41A4C000)16,2018/10/9,19,2.1.1数据格式,4、十进制数串的表示 字符串形式,一个字节存放一个十进制数 BCD(压缩),一个字节存放两者个十进制数 编码方式 BCD码 ASCII码的低4位 符号占半个字节,2018/10/9,20,十进制数串的表示方法,1.字符串形式 每个十进制的数位或符号位都用一个字节存放,-38,2.压缩的十进制数串形式 一个字节存放两个

10、十进制的数位,符号位占半个字节(例如用C表示正,D表示负),+12,123,-12,每个数位可用BCD码或ASCII码,2018/10/9,21,2.1.2数的机器码表示,一、数的机器码表示 真值:一般书写的数 机器码:机器中表示的数, 要解决在计算机内部数的正、负符号和小数点运算问题。 原码 反码 补码 移码,2018/10/9,22,1、原码表示法,定点整数X0X1X2Xnx 2nx0 0,正数 x原= 符号2n-x 0x -2n 1,负数 说明:有正0和负0之分例:x=+11001110x原=011001110 -x原=111001110,2018/10/9,23,1、原码表示法,原码特

11、点: 表示简单,易于同真值之间进行转换,实现乘除运算规则简单。 进行加减运算十分麻烦。,2018/10/9,24,2、补码表示法,定义:正数的补码就是正数的本身,负数的补码是原负数加上模。 定点整数x0x1x2xnx 2nx0 0,正数,0 x补= 符号2n+1+x 0x -2n 1,负数,2018/10/9,25,2、补码表示法,补码性质 高位表明正负 正数的补码符号位为1 ,尾数与原码相同 负数的补码符号位为1,数值位是将原码的数值按位取反,再在末位加1 。 范围-2n2n-1(定点整数) 正0和负0的补码相同 但是,在求补码还要减法,电路繁琐,下面的反码表示解决着个问题。,2018/10

12、/9,26,3、反码表示法,定义:正数的表示与原、补码相同,负数的反码符号位为1,数值位是将原码的数值按位取反,就得到该数的反码表示。 电路容易实现,触发器的输出有正负之分。 反码表示有正0和负0之分,2018/10/9,27,3、反码表示法,例:X1=+0.1011011 X1 原= 0.1011011X1 反 =0.1011011 X1 补= 0.1011011X2= -0.1011011 X2 原 =1. 1011011 X2 反 =1.0100100 X2 补 =1.0100101,2018/10/9,28,4、移码表示法,移码表示法(用在阶码中) 定点整数定义 x移=2n+x 2n

13、x-2n 0000000011111111(-2n2n-1) 例: +1011111 原码为01011111 补码为01011111 反码为01011111 移码为 11011111 移码正数符号为1,负数符号为0,与原、反、补码的符号表示相反。,2018/10/9,29,4、移码表示法,例: -1011111 原码为11011111 补码为10100001 反码为10100000 移码为00100001 特点:移码和补码尾数相同,符号位相反,2018/10/9,30,4、移码表示法,课堂作业: 1123, 求:X1原, X1反 ,X1补,X1移2-123, 求:X2原,X2反 ,X2补,X2

14、移,2018/10/9,31,例7将十进制真值(127,1,0,1,127)列表表示成二进制数及原码、反码、补码、移码值。,2018/10/9,32,例8设机器字长16位,定点表示,尾数15位,数符1位,问:定点原码整数表示时,最大正数是多少?最小负数是多少,最大正数值(2151)10(32767)10 最小负数值(2151)10(32767)10,2018/10/9,33,2.1.3字符和字符串(非数值)的表示方法,符号数据:字符信息用数据表示,如ASCII等; 字符表示方法ASCII:用一个字节来表示,低7位用来编码(128),最高位为校验位,参见教材P24表2-1 字符串的存放方法,20

15、18/10/9,34,表21 ASC字符编码表,2018/10/9,35,2.1.4汉字的存放,汉字的表示方法 (一级汉字3755个,二级汉字3008个) 输入码 国标码 一级(1655)*94 二级(5687)*94 图形符号(682个)(0109)*94 拼音、五笔 汉字内码:汉字信息的存储,交换和检索的机内代码,两个字节组成,每个字节高位都为1(区别于英文字符),2018/10/9,36,2.1.4汉字的存放,汉字字模码:汉字字形 点阵汉字库,2018/10/9,37,2.1.5校验码,校验码(奇偶校验码) 引入:信息传输和处理过程中受到干扰和故障,容易出错。 解决方法:是在有效信息中加

16、入一些冗余信息(校验位) 奇偶校验位定义 设(01n1)是一个n位字,则奇校验位定义为:C01n1,式中代表按位加,表明只有当中包含有奇数个1时,才使C1,即C0。同理可以定义偶校验。 只能检查出奇数位错;不能纠正错误。 p26例10自己看一下。,2018/10/9,38,2.2 定点加法、减法运算,2.2.1补码加减法 2.2.2溢出检测 2.2.3基本的加法和减法器 2.2.4十进制加法器,2018/10/9,39,2.2.1补码加减法,补码加法 公式:x+y补=x补+y补 补码减法 公式:x-y补=x补+-y补 其中: -y补等于y补取反,末位加1,2018/10/9,40,2.2.1补

17、码加减法,如: y=0.0111 y补=0.0111 -y补=1.1001,从右边到左边,除了第一个1和右边的0保持不变以外,其它按位取反,很重要!,2018/10/9,41,2.2.1补码加减法,例1: x=-0.1011,y=0.0111,求x+y补 x补=1.0101 y补=0.0111 x+y补=x补+y补=1.0101+0.0111=1.1100 例 2: x=+0.11011,y=-0.11111,求x-y补 x补=0.11011 y补=1.00001-y补=0.11111 x-y补=x补+-y补=1.11010,2018/10/9,42,2.2.1 补码加减法,课堂作业: 例3:

18、0.1011, 0.1001,求例4:0.1101, 0.1011,求,2018/10/9,43,2.2.2 溢出的检测,溢出的检测 可能产生溢出的情况 两正数加,变负数,上溢(大于机器所能表示的最大数) 两负数加,变正数,下溢(小于机器所能表示的最小数),2018/10/9,44,2.2.2 溢出的检测,一、检测方法 1、双符号位法(参与加减运算的数采用变形补码表示) Sf1 SF20 0 正确(正数) 0 1 上溢 1 0 下溢 1 1 正确(负数)Sf1 表示正确的符号,逻辑表达式为V=Sf1 Sf2,可以用异或门来实现,2018/10/9,45,2.2.2 溢出的检测,二、检验举例:

19、0.1100, 0.1000,求 0.1100, -0.1000,求 结果出现了01或10的情况就为溢出,2018/10/9,46,2.2.2 溢出的检测,2、单符号位法 Cf C0 0 0 正确(正数) 0 1 上溢 1 0 下溢 1 1 正确(负数) V=Cf C0 其中Cf为符号位产生的进位,C0为最高有效位产生,2018/10/9,47,2.2.3基本的加法和减法器,基本的加法和减法器 半加器 HiAi Bi 不考虑进位 全加器 考虑低位进位Ci-1和向高位的进位Ci,2018/10/9,48,一位全加器真值表,2018/10/9,49,FA逻辑方程,因为:,2018/10/9,50,

20、FA逻辑方程,逻辑方程见下,2018/10/9,51,FA逻辑电路和框图,FA(全加器)逻辑电路图 FA框图,2018/10/9,52,n位行波进位加法器,图2-3行波进位的补码加法/加法器,2018/10/9,53,2. 定点乘法运算,2.3.1 定点原码乘法 2.3.2 定点补码乘法,2018/10/9,54,2.3.1 定点原码乘法,乘法实现方法 在现有的加法和减法器的基础上增加适当的移位线路及控制逻辑可以实现 用LSI和VLSI工艺实现专用的乘法器 编制子程序(单片机等低端机器),2018/10/9,55,一、定点原码乘法原理,1、人工算法与机器算法的异同性: x原=xf.xn-1x1

21、x0 y原=yf.yn-1y1y0 x.y原=(xf yf)+(0. xn-1x1x0).(0. yn-1y1y0) 尾数乘法如下: 设0.1101,0.10110.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 (),2018/10/9,56,1、人工算法与机器算法的异同性,n位乘n位积可能为2n位. 乘积的最后是所有部分积之和,有n个数相加,而FA只有两个输入端 所以需要改造 方法一:硬件实现方法(串行的“加法和移位”),硬件结构简单,速度太慢(已经淘汰). 方法二:不带符号位的阵列乘法器

22、,2018/10/9,57,2、不带符号位的阵列乘法器,不带符号阵列乘法器逻辑图,2018/10/9,58,2、不带符号位的阵列乘法器,2018/10/9,59,2、不带符号位的阵列乘法器,例19 参见图2.5,已知不带符号的二进制整数A=11011,B=10101,求每一部分乘积项aibj的值与p9p8p0的值。 解: 1 1 0 1 1 A (2710) 1 0 1 0 1 B (2110) 1 1 0 1 1 a4b0=1, a3b0=1, a2b0=0, a1b0=1, a0b0=1 0 0 0 0 0 a4b1=0, a3b1=0, a2b1=0, a1b1=0, a0b1=0 1

23、1 0 1 1 a4b2=1, a3b2=1, a2b2=0, a1b2=1, a0b2=1 0 0 0 0 0 a4b3=0, a3b3=0, a2b3=0, a1b3=0, a0b3=0 1 1 0 1 1 a4b4=1, a3b4=1, a2b4=0, a1b4=1, a0b4=1 1 0 0 0 1 1 0 1 1 1 P P = p9p8p7p6p5p4p3p2p1p0 = 1000110111B= 567D,2018/10/9,60,3、带符号位的阵列乘法器,求补电路 原理:算前求补乘法器算后求补,见下图,2018/10/9,61,3、带符号的阵列乘法器,求补电路小结 E=0时,输

24、入和输出相等 E=1时,则从数最右端往左边扫描,直到第一个1的时候,该位和右边各位保持不变0A=A,左边各数值位按位取反1A=乛A 可以用符号作为E 的输入 原:1.11110 补:1.00010,不变,左边数值位取反,2018/10/9,62,3、带符号的阵列乘法器(间接法),原码补码,2018/10/9,63,举例(P36),例20 设x=+15,y=-13,用带求补器的原码阵列乘法器求出乘积 xy=? 解:x原=01111 , y原=11101 , |x|=1111 , |y|=1101 符号位运算:01=1 1 1 1 1 1 1 0 1 1 1 1 1 0 0 0 0 1 1 1 1

25、 1 1 1 1 1 1 0 0 0 0 1 1 乘积符号为1,算后求补器输出11000011,xy原=111000011 换算成二进制数真值是 xy = (-11000011)B = (-195)D,2018/10/9,64,举例(P36),例21 设x=-15,y=-13,用带求补器的补码阵列乘法器求出乘积 xy=? 并用十进制数乘法进行验证。 解:x补=10001 , y补=10011 , 乘积符号位运算:11=0 尾数部分算前求补器输出 |x|=1111 , |y|=1101 1 1 1 1 1 1 0 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0

26、 0 0 1 1 乘积符号为0,算后求补器输出11000011,xy补=011000011 补码二进制数真值 xy=028127126121120 =(+195)10 十进制数乘法验证 xy = (-15)(-13) = +195,2018/10/9,65,2.5 定点运算器的组成,2.5.1 逻辑运算 2.5.2 多功能算术/逻辑运算单元ALU 2.5.3 内部总线 2.5.4 定点运算器的基本结构,2018/10/9,66,2.5.1 逻辑运算,1、逻辑非运算 例24 x1=01001001 , x2=11110000 , 求 x1 , x2 解: x1 = 10110100 x2 = 0

27、0001111,2018/10/9,67,2.5.1 逻辑运算,2、逻辑加运算 例25 x=10100001 , y=100111011 , 求 x+y 解: 1 0 1 0 0 0 0 1 x 1 0 0 1 1 0 1 1 y 1 0 1 1 1 0 1 1 z 即 x+y = 10111011,2018/10/9,68,2.5.1 逻辑运算,3、逻辑乘运算 例26 x=10111001 , y=11110011 , 求 x y 解: 1 0 1 1 1 0 0 1 x 1 1 1 1 0 0 1 1 y 1 0 1 1 0 0 0 1 z 即 xy = 10110001,2018/10/

28、9,69,2.5.1 逻辑运算,4、逻辑异运算 例27 x=10101011 , y=11001100 , 求 x y 解: 1 0 1 0 1 0 1 1 x 1 1 0 0 1 1 0 0 y 0 1 1 0 0 1 1 1 z 即 xy = 01100111,2018/10/9,70,2.5.2 多功能算术/逻辑运算单元ALU,多功能算术/逻辑运算单元ALU,本节介绍的是74LS181的基本逻辑结构是先行进位加法器,通过改变其输入端Ai和Bi来实现算术运算和逻辑运算功能。怎样实现呢? 1、基本思想:一位全加器FA的逻辑表达式:为了实现多种算术逻辑运算,可将Ai和Bi输入一个函数发生器得到

29、输出Xi和Yi,作为一位全加器的输入(见下页图)。,2018/10/9,71,ALU的逻辑图与逻辑表达式,i表示集成在一片电路上的ALU的二进制位数,例如4位一片,i=0,1,2,3 N代表若干片ALU组成更大字长的运算器时每片电路的进位输入,例如当4片组成16位字长的运算器时,n=0,4,8,12,一位ALU逻辑图,2018/10/9,72,2、逻辑表达式 XiYi 与控制参数和输入量的关系构造如下真值表,2.5.2 多功能算术/逻辑运算单元ALU,2018/10/9,73,2.5.2 多功能算术/逻辑运算单元ALU,进一步化简得到下式,2018/10/9,74,2.5.2 多功能算术/逻辑

30、运算单元ALU,ALU的某一位逻辑表达式见下:,2018/10/9,75,例如: S3S2S0S10000 代入:,则可以处理16种算术逻辑运算,每种运算只针对1位二进制编码? 思考:如何设计4位ALU?16位呢?,2.5.2 多功能算术/逻辑运算单元ALU,2018/10/9,76,2.5.2 多功能算术/逻辑运算单元ALU,4位ALU问题1:片内是串行进位还是并行进位?,回答:由上图结构中可以看出Cn1Y0X0CnCn2Y1X1Cn1 Cn3Y2X2Cn2Cn4Y3X3Cn3显然是一个串行进位,速度慢,为了实现快速ALU,需加以改进。,2018/10/9,77,2.5.2 多功能算术/逻辑

31、运算单元ALU,上述片内进位采用串行,具有延时长的缺点如何改进? 思考:Cni与X、Y有关,而每一位中X、Y的产生是不是同时的?,答:由于每一位中X、Y是同时产生的,则可以由下面方法算出并行进位Cn4 第0位向第1位的进位公式为Cn1Y0X0Cn (1)其中Cn是向第0位(末位)的进位。 第1位向第2位的进位公式为Cn2Y1X1Cn1Y1Y0X1X0X1Cn ( Cn1用(1)式代入) 第2位向第3位的进位公式为Cn3Y2X2Cn2Y2Y1X1Y0X1X2X0X1X2Cn 第3位的进位输出(即整个4位运算进位输出)公式为Cn4Y3X3Cn3Y3Y2X3Y1X2X3Y0X1X2X3X0X1X2X

32、3Cn,2018/10/9,78,2.5.2 多功能算术/逻辑运算单元ALU,令GY3Y2X3Y1X2X3Y0X1X2X3 PX0X1X2X3G为进位发生输出 P为进位传送输出 增加P和G的目的在于实现多片(组)ALU之间的先行进位,需要配合电路,称为先行进位发生器(CLA) 器件: 74181ALU,2018/10/9,79,2.5.2 多功能算术/逻辑运算单元ALU,具有正逻辑和负逻辑两种,内部逻辑结构图见下页,2018/10/9,80,74181ALU逻辑图(1),2018/10/9,81,74181ALU逻辑图(2),2018/10/9,82,74181ALU逻辑图(2),P G,X3

33、Y3,X2Y2,X1Y1,X0Y0 C0,GY3Y2X3Y1X2X3Y0X1X2X3 PX0X1X2X3,2018/10/9,83,74181ALU逻辑图(总体),2018/10/9,84,2.5.2 多功能算术/逻辑运算单元ALU,算术逻辑运算的实现(74181) M=L时,对进位信号没有影响,做算术运算 M=H时,进位门被封锁,做逻辑运算 说明: 74181执行正逻辑输入/输出方式的一组算术运算和逻辑运算和负逻辑输入/输出方式的一组算术运算和逻辑运算是等效的。 A=B端可以判断两个数是否相等。,2018/10/9,85,2.5.3内部总线,内部总线 机器内部各部份数据传送频繁,可以把寄存器

34、间的数据传送通路加以归并,组成总线结构。 分类 所处位置 内部总线(CPU内) 外部总线(系统总线) 逻辑结构 单向传送总线 双向传送总线 图(2-14),2018/10/9,86,三态门组成的双向数据总线,2018/10/9,87,由三态门组成的数据总线,2018/10/9,88,2.5.4定点运算器的基本结构,1、单总线结构的运算器,2018/10/9,89,2.5.4定点运算器的基本结构,2、双总线结构的运算器,2018/10/9,90,2.5.4定点运算器的基本结构,3、三总线结构的运算器,2018/10/9,91,2.6 浮点运算方法和浮点运算器,2.6.1 浮点加法、减法运算 2.

35、6.2 浮点乘法、除法运算 2.6.3 浮点运算流水线 2.6.4 浮点运算器实例,2018/10/9,92,2.6.1 浮点加法、减法运算,1、浮点加减运算设有两个浮点数和,它们分别为2EM2EM其中E和E分别为数和的阶码,M和M为数和的尾数。两浮点数进行加法和减法的运算规则是(M2EEM)2E, 设EE,2018/10/9,93,2.6.1 浮点加法、减法运算,2、浮点运算步骤如下: 1. 0 操作数的检查,看有无简化操作的可能; 2. 比较阶码大小并完成对阶(小阶向大阶对齐); 3. 尾数进行加或减运算; 4. 结果规格化并进行舍入处理,2018/10/9,94,2.6.1 浮点加法、减

36、法运算,2018/10/9,95,2.6.1 浮点加法、减法运算,例28 设x220.11011011,y=-240.10101100 1、0操作数检查(非0) 2、对阶:阶码对齐后才能加减。规则是阶码小的向阶码大的数对齐; 若E0,表示两数阶码相等,即EE; 若E0,表示EE; 若EE。 当EE 时,要通过尾数的移动以改变E或E,使之相等。,2018/10/9,96,原则:小阶向大阶 设E0,表示EE,则移动y的尾数,M右移E位,问题:为什么要小阶向大阶看齐? 阶差=Ex-Ey=00 010- 00 100 =11 110 即阶差为-2,Mx右移两位,Ex加2 x=00100 , 0.001

37、10110(11),2.6.1 浮点加法、减法运算,2018/10/9,97,2.6.1 浮点加法、减法运算,3、尾数相加 00.00110110(11)+11.01010100=11.10001010(11) 4、结果规格化 (1)在浮点加减运算时,尾数求和的结果也可以得到01.或10.,即两符号位不等,此时将运算结果右移以实现规格化表示,称为向右规格化。 规则:尾数右移1位,阶码加1 (2)结果是00.001.或11.1.10.时,则向左规格化 规则:尾数左移1位,阶码减1,直到规格化 右规,阶码加1,左规,阶码减1 刚才例子左规为11.00010101(10),阶码减1为00011 练习

38、:01.1101 10.0001 11.1001,2018/10/9,98,2.6.1 浮点加法、减法运算,舍入处理(对阶和向右规格化时) 就近舍入(0舍1入):类似”四舍五入”,丢弃的最高位为1,进1 朝0舍入:截尾 朝舍入:正数多余位不全为”0”,进1;负数,截尾 朝 舍入:负数多余位不全为”0”,进1;正数,截尾 溢出判断和处理 阶码上溢,一般将其认为是和 。 阶码下溢,则数值为0 尾数上溢,两个同符号位的数相加。处理方法是尾数右移,阶码 加1。 尾数下溢。尾数右移时,最低位从最右端流出。进行要进行舍入处理 。,2018/10/9,99,设1补11.01100000, 2补11.0110

39、0001, 3补11.01101000, 4补11.01111001,求执行只保留小数点后4位有效数字的舍入操作值。,课堂作业,2018/10/9,100,课堂练习,已知:x=0.1101*201 y=-0.1010*211,求X+Y 尾数和阶符都采用补码表示,都采用双符号位表示法。 求x+y,2018/10/9,101,2.6.1 浮点加法、减法运算,x浮=0001,00.1101 y浮=0011,11.0110 阶差=1110 即为-2 Mx应当右移2位, x浮=0011,00.0011(01) 尾数和为11.1001(01) 左规11.0010(10),阶码减1为0010 舍入(就近舍入

40、)11.0011 丢弃10 x+y=-0.1101*210,2018/10/9,102,2.6.2 浮点乘法和除法运算,设有两个浮点数和: 2EM 2EM 2(EE)(MM) 2(EE)(MM) 乘除运算分为四步 0操作数检查 阶码加减操作 尾数乘除操作 结果规格化和舍入处理,2018/10/9,103,2.6.2 浮点乘法和除法运算,浮点数的阶码运算(移码的运算规则) X移+Y移=2n+X+Y移,2018/10/9,104,2.6.2 浮点乘法和除法运算,移码采用双符号位,为了对溢出进行判断 01 为正 00 为负 10 上溢 11 下溢,例:011,110,求移 和 移,并判断是否溢出。,

41、移01 011, 补00 110, 补11 010 移移补10 001, 结果上溢。 移移补00 101, 结果正确,为3。,2018/10/9,105,2.6.2 浮点乘法和除法运算,尾数处理 截断 舍入 尾数用原码表示时 只要尾数最低为1或者移出位中有1数值位,使最低位置1 0舍1入 尾数用补码表示时(p57例30) 丢失的位全为0,不必舍入。 丢失的最高位为0,以后各位不全为0时;或者最高为1,以后各位全为0时,不必舍入。 丢失的最高位为1,以后各位不全为0时,则在尾数的最低位入1的修正操作。,2018/10/9,106,2.6.2 浮点乘法和除法运算,例30 设有浮点数250.0110

42、011,23(0.1110010),阶码用4位移码表示,尾数(含符号位)用8位补码表示。求浮。要求用补码完成尾数乘法运算,运算结果尾数保留高8位(含符号位),并用尾数低位字长值处理舍入操作。,2018/10/9,107,250.0110011,23(0.1110010) 解:移码采用双符号位,尾数补码采用单符号位,则有 M补0.0110011, M补1.0001110, E移01 011, E补00 011, E移00 011, 浮00 011, 0.0110011, 浮01 011, 1.0001110 (1)判断操作是否为”0”,求阶码和 EE移E移E补00 01100 01100 110

43、,值为移码形式2。 (2) 尾数乘法运算可采用补码阵列乘法器实现,即有 M补M补0.0110011补1.0001110补 1.1010010,1001010补 (3) 规格化处理 乘积的尾数符号位与最高数值位符号相同,不是规格化的数,需要左规,阶码变为00 101(-3),尾数变为 1.0100101,0010100。 (4) 舍入处理 尾数为负数,取尾数高位字长,按舍入规则,舍去低位字长,故尾数为1.0100101 。最终相乘结果为浮00 101,1.0100101 其真值为 23(0.1011011),2018/10/9,108,2.6.3 浮点运算流水线,1、提高并行性的两个渠道: 空间

44、并行性:增加冗余部件,如增加多操作部件处理机和超标量处理机 时间并行性:改善操作流程 如:流水线技术,2018/10/9,109,2.6.3 浮点运算流水线,2、流水技术原理 在流水线中必须是连续的任务,只有不断的提供任务才能充分发挥流水线的效率 把一个任务分解为几个有联系的子任务。每个子任务由一个专门的功能部件实现 在流水线中的每个功能部件之后都要有一个缓冲寄存器,或称为锁存器 流水线中各段的时间应该尽量相等,否则将会引起“堵塞”和“断流”的现象 流水线需要有装入时间和排空时间,只有当流水线完全充满时,才能充分发挥效率,2018/10/9,110,流水线原理,设过程段 Si所需的时间为i,缓

45、冲寄存器的延时为l,线性流水线的时钟周期定义为maxilml流水线处理的频率为 f1/。,2018/10/9,111,流水线原理,一个具有k 级过程段的流水线处理 n 个任务需要的时钟周期数为Tkk(n1), 所需要的时间为: TTk 而同时,顺序完成的时间为:Tnk k级线性流水线的加速比: Ck TL nk Tk k(n1),2018/10/9,112,流水线浮点运算器,Aa2P, Bb2q在4级流水线加法器中实现上述浮点加法时,分为以下操作: (1) 求阶差 (2) 对阶 (3) 相加 (4) 规格化,2018/10/9,113,本 章 小 结,一个定点数由符号位和数值域两部分组成。按小

46、数点位置不同,定点数有纯小数和纯整数两种表示方法。 按IEEE754标准,一个浮点数由符号位S、阶码E、尾数M三个域组成。其中阶码E的值等于指数的真值e加上一个固定偏移值。 为了使计算机能直接处理十进制形式的数据,采用两种表示形式:(1)字符串形式,主要用在非数值计算的应用领域;(2)压缩的十进制数串形式,用于直接完成十进制数的算术运算。,2018/10/9,114,本 章 小 结,数的真值变成机器码时有四种表示方法:原码表示法,反码表示法,补码表示法,移码表示法。其中移码主要用于表示浮点数的阶码E,以利于比较两个指数的大小和对阶操作。 字符信息属于符号数据,是处理非数值领域的问题。国际上采用的字符系统是七单位的ASCII码。直接使用西文标准键盘输入汉字,进行处理,并显示打印汉字,是一项重大成就。为此要解决汉字的输入编码、汉字内码、字模码等三种不同用途的编码。,

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

当前位置:首页 > 教学课件 > 大学教育

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1