首页计算机计算机系统结构计算机组成原理 06 第2章第6讲 浮点数和浮点运算器 检错、纠错码.ppt

06 第2章第6讲 浮点数和浮点运算器 检错、纠错码.ppt

页数:42页文件大小:507.0 KB来源: 计算机组成原理ppt课件

本课件讲解浮点数的科学表示法与IEEE 754标准、浮点加减乘除运算步骤与浮点运算部件的组成,并系统介绍奇偶校验码与海明校验码的编码方法、检错能力与一位错的定位改正。

第一单元第六讲浮点数讲次标题页,浮点数的规格化表示、IEEE 754标准与加减乘除运算步骤
内容提要:浮点数、科学表示法要点列表,涵盖浮点数、科学表示法、IEEE 754浮点数标等主要内容
计算机内的数据要点列表,涵盖计算机的功能、n位能表示哪些数据?、其它数据呢?等主要内容
查看本课件的文字版(共 42 页,供检索与复制)

第1页:第一单元第六讲浮点数

第一单元第六讲浮点数

本页为结构/流程示意图,图中标注的主要部件与信号如下,重点体现浮点数的规格化表示、IEEE 754标准与加减乘除运算步骤。

  • 运算器

第2页:内容提要:浮点数、科学表示法

  • 浮点数
  • 科学表示法
    • 十进制科学表示法
    • 二进制科学表示法
  • IEEE 754浮点数标准
  • 计算机内的浮点数表示
    • 表示范围vs.表示精度
  • 数制转换
  • 数据类型

第3页:计算机内的数据

计算机内的数据

  • 计算机的功能:处理数据
  • n位能表示哪些数据?–无符号整数:0 to 2n-1
    • 有符号整数:-2(n-1)to 2(n-1)-1
  • 其它数据呢?–大整数?(如:一个世纪的秒数)3,155,760,00010(3.1557610x 109)
    • 非常小的数?(如:原子的直径)0.0000000110(1.010x 10-8)
    • 有理数(如:循环小数)2/3(0.666666666. . .)
    • 无理数21/2(1.414213562373. . .)
    • 无限不循环小数:e (2.718...),(3.141...)

第4页:科学计数法6.02 x 1023根

科学计数法6.02 x 1023根(基数)小数点

  • 规格化形式:no leadings 0s(小数点前仅有1位非0数字)
  • 1/1,000,000,000的不同表示形式:–规格化:1.0 x 10-9
    • 非规格化:0.1 x 10-8, 10.0 x 10-10尾数阶

第5页:进制的科学计数法1.02x2-1根

二进制的科学计数法1.02x2-1根(基数)“二进制小数点”尾数阶

  • 浮点数的算术运算
    • 二进制小数点不是固定在某位上
    • C语言中的float型数据

第6页:浮点数的计算机内部表示

浮点数的计算机内部表示

  • 规格化形式:+1.xxxxxxxxxx2*2yyyy2
  • 字长的整数倍(32 bits)031SExponent302322Significand1 bit8 bits23 bits
  • S表示符号位Exponent表示y,即阶Significand表示x,即尾数的后部分
  • 十进制表示范围:2.0 x 10-38至2.0 x 1038

第7页:上溢和下溢

上溢和下溢

  • 上溢
    • 数值太大(> 2.0x1038)
    • 阶的值超出8位能表示的范围
  • 下溢
    • 数值太小
  • >0, < 2.0x10-38
    • 阶码超出了8位二进制位能表示的范围
  • 如何减少上溢和下溢?

第8页:双精度浮点数

双精度浮点数

  • 使用双字(64位)
  • C语言中的double类型
  • 十进制的范围扩展到2.0 x 10-308至2.0 x 10308
  • 最主要的好处是精度得到了扩展(52位)031SExponent302019Significand1 bit11 bits20 bitsSignificand (cont’d)32 bits

第9页:浮点数表示规格化科学计数法

浮点数表示规格化科学计数法

本页为结构/流程示意图,图中标注的主要部件与信号如下,重点体现浮点数的规格化表示、IEEE 754标准与加减乘除运算步骤。

第10页:浮点数标准

10IEEE 754浮点数标准

  • 被几乎所有计算机采纳(自1980年起)
  • 符号位:
  • 有效位:–使用原码表示
    • 规格化小数中,隐含最高位1
    • 单精度为:1 + 23位,双精度为1 + 52位
    • 0 <有效数< 1
  • 0不可能出现为1的位
    • 在阶码中保留0给数01表示负数0表示正数(-1)S* (1 + Significand) * 2Exp

第11页:阶的移码表示

阶的移码表示

  • 在IEEE 754中,浮点数的阶不用补码表示,采用移码表示
  • 最小的阶:000000012
  • 最大的阶:111111102
  • 移码:在真正的阶上加一个规定的值
    • 对单精度浮点数:+127
    • 对双精度浮点数:+1023
  • 1.0 * 2-1(-1)S* (1 + Significand) * 2(Exponent-Bias)0 0111 1110 0000 0000 0000 0000 0000 000

第12页:浮点数与浮点运算

12IEEE 754的阶

  • 可以在没有浮点运算器的情况下使用浮点数
    • 直接使用整数比较
  • 将浮点数分解成三个部分:符号位,阶和有效数
  • 可进行快速比较
    • 直接作为两个定点小数比较

第13页:浮点数与浮点运算

  • 尾数用原码表示
  • 最高位为1
  • 含义:–十进制:1.6732 = (1x100) + (6x10-1) + (7x10-2) + (3x10-3) + (2x10-4)
    • 二进制:1.1001 = (1x20) + (1x2-1) + (0x2-2) + (0x2-3) + (1x2-4)(-1)S* (1 + Significand) * 2(Exponent-Bias)

第14页:浮点数与浮点运算

浮点数的二—十进制转换

  • 符号位: 0 =>正数
  • 阶:–0110 10002= 10410
    • 移码校正: 104-127 =-23
  • 有效数:–1+ 1x2-1+ 0x2-2+ 1x2-3+ 0x2-4+ 1x2-5+...=1+2-1+2-3+2-5+2-7+2-9+2-14+2-15+2-17+2-22= 1.0 + 0.66611500110 1000101 0101 0100 0011 0100 0010
  • 十进制值: 1.666115*2-23~ 1.986*10-7

第15页:浮点数与浮点运算

浮点数十—二进制转换(1/2)

  • 简单情况:如果除数是2的整数倍,则比较简单
  • 如:-0.75的二进制
    • 0.75 =-3/4
    • 112/1002=-0.112
    • 规格化为:-1.12x 2-1
    • (-1)Sx (1 + Significand) x 2(Exponent-127)
    • (-1)1x (1 + .100 0000 ... 0000) x 2(126-127)10111 1110100 0000 0000 0000 0000 0000

第16页:浮点数与浮点运算

浮点数十—二进制转换(2/2)

  • 除数不是2的整数倍
    • 该数无法精确表示
    • 可能需要多位有效位来保证精度
    • 难点:如何得到有效位?
  • 循环小数有一个循环体
  • 转换
    • 求出足够多的有效位.–根据精度要求(单、双)截断多余的位。–按标准要求给出符号位、阶和有效位。

第17页:转换举例

170.33333332x 20.666666640.66666666x

  • 有效位:101 0101 0101 0101 0101 0101
  • 符号位:负=>1
  • 阶: 1+ 127 = 12810=1000 0000211000 0000101 0101 0101 0101 0101 0101-3 . 3 3 3 3 3 3…=>-1.1010101.. x 211 1.0 1 0 1 0 1 0 . . .

第18页:特殊的浮点数值-

特殊的浮点数值-

本页为结构/流程示意图,图中标注的主要部件与信号如下,重点体现浮点数的规格化表示、IEEE 754标准与加减乘除运算步骤。

第19页:下列结果是什么

19Not a Number

  • 下列结果是什么:sqrt(-4.0)or0/0?–如果无穷大不是错误的话,那以上也不算
    • 称其为Nota Number (NaN)
    • 阶= 255,有效位非0
  • 应用
    • NaNs可帮助排错
    • 自包含:op(NaN, X) = NaN
    • 千万不要用它
    • 请教数学家

第20页:非规格化数

非规格化数

  • 问题:在0周围还有一些空隙没有用来表示浮点数
    • 最小的正数:a = 1.0…2* 2-126= 2-126
    • 次小的正数:b = 1.0 … 012* 2-126= 2-126+ 2-150
    • a-0 = 2-126
    • b-a = 2-150
  • 解决办法:–使用非规格化数:没有隐含的前导1
    • 最小的正数:a = 2-150
    • 次小的正数:b = 2-149ba0+-空隙!0+

第21页:浮点数与浮点运算

  • 浮点数的算术运算=>舍入
  • 类型转换时也需要舍入
    • Doublesingle precisioninteger
  • 向上舍入
    • 2.001 => 3;-2.001 =>-2
  • 向下舍入
    • 1.999 => 1;-1.999 =>-2
  • 截断
    • 丢弃最后的位(向0舍入)

第22页:浮点运算的特点

浮点运算的特点

  • 浮点加、减法不满足结合律!–x =–1.5 x 1038, y = 1.5 x 1038, and z = 1.0
    • x + (y + z) =–1.5x1038+ (1.5x1038+ 1.0)=–1.5x1038+ (1.5x1038) =0.0
    • (x + y) + z= (–1.5x1038+ 1.5x1038) + 1.0= (0.0) + 1.0 =1.0
  • 浮点数加法、减法不可结合!
  • 浮点数也不能进行相等比较!–为什么?浮点数算术运算的结果是近似值。

第23页:浮点数加、减法

浮点数加、减法

  • 不能只对尾数进行运算
  • 算法
    • 对阶,求阶差:E= EX-EY,使阶码小的数的尾数右移E位,其阶码取大的阶码值;–对尾数进行加、减法,求得结果
    • 保持阶的值
    • 规格化
    • 舍入,可能再次规格化
    • 进行溢出检查(阶码)

第24页:加、减运算举例例1

加、减运算举例例1

本页为结构/流程示意图,图中标注的主要部件与信号如下,重点体现浮点数的规格化表示、IEEE 754标准与加减乘除运算步骤。

第25页:浮点数乘、除法

浮点数乘、除法

  • 算法
    • 阶码加、减:乘:EX+EY,除:EX-EY
    • 对尾数进行乘、除法,求得结果
    • 规格化
    • 舍入,可能再次规格化
    • 进行溢出检查(阶码)

第26页:浮点数与检错纠错码

浮点数与检错纠错码

本页为结构/流程示意图,图中标注的主要部件与信号如下,重点体现浮点数的表示与运算、奇偶校验码与海明码。

第27页:浮点运算部件

浮点运算部件

本页为结构/流程示意图,图中标注的主要部件与信号如下,重点体现浮点数的规格化表示、IEEE 754标准与加减乘除运算步骤。

第28页:浮点数与浮点运算

数据及数据类型–1.986 *10-7–878,003,010–“4UCB”AD

  • 计算机中的数据可以表示任何事情:指令、操作数等,由上层次的抽象计算机来判断。
  • 对存储内容的错误理解:–将ASCII码当作浮点数,指令作为数据,整数可能成为指令, ...–程序中的安全漏洞001101000101 0101 0100 0011 0100 0010

第29页:小结:计算机中的浮点数是我

  • 计算机中的浮点数是我们实际使用的数的近似值
  • IEEE 754浮点数标准是浮点数运算中广为接受的标准
  • 浮点数运算一般由专门的浮点运算器完成
    • 阶码运算
    • 尾数运算
  • 计算机中的二进制位只有在上下文才有意义,单独的一个字不代表任何含义。

第30页:检错纠错码为了提高计算机的可靠性

检错纠错码为了提高计算机的可靠性

本页为结构/流程示意图,图中标注的主要部件与信号如下,重点体现数据编码中检错与纠错能力的获得方式与冗余度关系。

第31页:几种常用的检错纠错码我们只介绍两种常用

几种常用的检错纠错码我们只介绍两种常用

本页为结构/流程示意图,图中标注的主要部件与信号如下,重点体现海明码校验位位数确定方法与一位错的发现、定位和改正。

第32页:奇偶校验码用于并行码检错原理

奇偶校验码用于并行码检错原理

本页为结构/流程示意图,图中标注的主要部件与信号如下,重点体现奇偶校验位的形成与并行数据传送中的检错实现电路。

第33页:奇偶校验码的实现电路+

奇偶校验码的实现电路+

  • 奇校验偶校验出错指示+++++++同左侧电路编码电路译码电路P (校验位)八位数据位D7 D6 D5 D4 D3 D2 D1 D0p

第34页:海明校验码

海明校验码

本页为结构/流程示意图,图中标注的主要部件与信号如下,重点体现海明码校验位位数确定方法与一位错的发现、定位和改正。

第35页:海明码的编码方法合理地用

海明码的编码方法合理地用k位数据位形成r个校验位的值,即保证用k个数据位中不同的数据位组合来形成每个校验位的值,使任何一个数据位出错时,将影响r个校验位中不同的校验位组合起变化。换言之,通过检查是哪种校验位组合起了变化,就能确定是哪个数据位错,对该位求反则实现纠错。

有时两位错与某种情况的一位错对校验位组合的影响相同,必须加以区分与解决。

第36页:海明编码数据位

海明编码数据位

本页为结构/流程示意图,图中标注的主要部件与信号如下,重点体现海明码校验位位数确定方法与一位错的发现、定位和改正。

第37页:海明校验码

海明校验码

本页为结构/流程示意图,图中标注的主要部件与信号如下,重点体现海明码校验位位数确定方法与一位错的发现、定位和改正。

第38页:海明校验码

海明校验码

本页为结构/流程示意图,图中标注的主要部件与信号如下,重点体现海明码校验位位数确定方法与一位错的发现、定位和改正。

第39页:检错纠错码小结1.K位码有2K个编码状态

检错纠错码小结1.K位码有2K个编码状态

本页为结构/流程示意图,图中标注的主要部件与信号如下,重点体现奇偶校验位的形成与并行数据传送中的检错实现电路。

第40页:检错纠错能力4.对k位数据位

检错纠错能力4.对k位数据位

本页为结构/流程示意图,图中标注的主要部件与信号如下,重点体现数据编码中检错与纠错能力的获得方式与冗余度关系。

第41页:作业:阅读:、实验:

  • 阅读:–《结构化计算机组成》附录B
  • 实验:–1.完成教材中表2.24和表2.25。(P114)
    • 2.在TEC-2000上用汇编语言实现1+2+3+…+10
    • 3.用机器语言实现上述任务。
  • 书面作业:教材P131 2.19 2.26
    • 所有书面作业请于10月8日交到9区407

第42页:节日快乐!

节日快乐!

本页为结构/流程示意图,图中标注的主要部件与信号如下,重点体现浮点数的表示与运算、奇偶校验码与海明码。

顶部目录