2014第2章数据表示与指令系统分析 (3)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
8
四、引入数据表示的原则
原则1:系统的效率是否提高,是否减少了实现时 间和所需的存储空间
– 举例: 两个200*200的二维定点数组相加 – 无阵列型: 6条指令, 4条循环200*200=40000 – 有阵列型: 1条指令, 减少4*40000=160000字
原则2:通用性和利用率是否高
通用性: 是否对多种数据结构均适用 利用率: 硬件设置大小的选择
42
高级语言中数据的属性在数据引 用前给以定义
• 如C语言中常用的基本数据类型: int 基本整型,即定点数;short为短整 型;long为长整型;float为短浮点型; double为长浮点型;等等 • 加法指令只有一条:A=A+B • 编译器根据定义生成不同的加法指令
43
1.带标志符数据表示
46
• 引入可行性分析 – 存储空间是否提高?
不采用标志符
第2章
• • • •
数据表示与指令系统 性能分析
浮点数据表示和IEEE754标准 高级数据表示 指令格式的优化设计 指令系统设计的两种风格
1
本章学习要求
• 本章要点:机器的数据表示,特别是浮 点数据表示;指令格式的优化设计技术; RISC的关键技术。 • 指令系统和数据表示是计算机系统结构 的主要属性。
13
在机器中,一个rm进制的基值需用m’个二进制 位表示,其中 ' m log 2 rm
因此,尾数m的实际数位k为: k p m
结论:当浮点数的尾数长度相同时,尾基为2 时具有最高的表数精度
14
表数效率

可表示的规格化浮点数 全部浮点数个数
p 1 m q e
2 ( rm 1) r 2 r 1 p q 2 rm 2 re rm 1 rm
• 定义:用以定义某个数据的数据类型和数值的 数据表示。格式如下:
类型标志 数据值
数据(字)
类型标志主要用于指明数据类型(如二进制整 数、十进制整数等,也可用于指明机器内部所 用信息的各种类型) 标志符由编译程序建立,对高级语言程序来说 是透明的
44
70年代生产的R-2试验性计算机中 采用的10标志符
2
2.1 浮点数据表示和IEEE754标准
• 数据表示与数据结构 • 引入数据表示的原则 • 浮点数据基值大小和下溢处理方法的选择
3
一、数据类型
• 定义:具有一组值的集合,且定义了作用于该集合 的操作集 – 分类:基本类型、结构类型
• 基本数据类型: – 二进制位、二进制位串、整数、十进制数、浮点 数、字符、布尔数等 – 所有计算机系统结构都支持基本数据类型
4ห้องสมุดไป่ตู้
• 结构数据类型:由一组相互有关的数据元素 复合而成的数据类型 – 数组、字符串、向量、堆栈、队列、记录 等 – 大多数系统结构只能部分地支持结构数据 类型
5
二、数据表示
定义:机器硬件能直接识别和引用的数据类型 分类:基本数据表示、高级数据表示(自定义数 据表示) 实际系统中,简单的、常用的、通用的数据类型 采用数据表示(如int、 float、stack等);复杂的 数据结构一般通过数据结构或通过软硬件联合设 计实现(如table、 graph、tree等)
指令助记符 数据类型 AR 定点数 ADR 浮点数 AER 浮点数 AH 定点数 A 定点数 AD 浮点数 AE 浮点数 AP 定点十 字长 32 64 32 16 32 64 32 64 进位制 2
阶2,尾16
阶2,尾16 寻址方式
2 2
阶2,尾16
阶2,尾16
10
R-R R-R R-R R-X R-X R-X R-X S-S
E(阶码8位)
8
M(尾数23位)
23 M 尾数
24
• 双精度格式: S(符号1位) E(阶码11位)
1 11
M(尾数52位)
52
E
S 符号位 指数 64位双精度形式
M
尾数
25
• IEEE754单精度浮点数格式: –S=0, 正数; S=1, 负数 –E由8位二进制移码组成 • 00000000: 特殊数 • 00000001: 1 代表: 1-127=-126 •…… 规格化数 • 11111110: 254 代表: 254-127=127 • 11111111: 特殊数 • M: 尾数, 原码表示的纯小数(规格化,隐 含1)
23
IEEE754标准浮点数表示
四种格式 单精度格式: 扩展单精度: 双精度格式: 扩展双精度: 单精度格式: S(符号1位)
1 E S符号位 指数 32位单精度形式
32位, 阶码E=8位, 尾数M=23位 E>=11位, M≥32位 64位, E=11位, M=52位 E>=15位, M≥63位
29
(2) 5/32=(-1)0×0101×2-5 =(-1)0×2-5×22×1.01 =(-1)0×2124-127 ×1.01 二进制代码为: 0 01111100 01000000000000000000000B = 3E200000H
30
浮点数尾数下溢处理方法
考虑运算的处理方法,主要有截断法、舍入 法、恒置1法、查表舍入法,是在速度、误差、 造价、实现方便等多方面的综合权衡 性能指标:最大误差和平均误差及实现成本 下溢处理时应注意的问题: 先规格化,然后舍入处理; 计算平均误差时,要同时考虑正数区和负数区; 在处理负数时,要注意不同的码制。
N m r
表数范围
e m
其中:
e req
在尾数采用原码、纯小数,阶码采用移码的浮点 数表示方式中,规格化浮点数N的表数范围如下:
11
进一步得出浮点数在数轴上的分布情况如图示:
由以上分析可知,能表示的绝对值最大的浮点数可近 似为: rq
N max rme
可见,规格化浮点数的表数范围主要与阶码的长 度q和尾数的基值rm有关,表数范围随着q和rm的 增加而扩大
28
(2)3F880000H =0 01111111 00010000000000000000000B =(-1)0×2127-127×(1.0625)=20×1.0625 =1×1.0625=1.0625D
2 解: (1)9= (-1)0×1001=(-1)0×23 ×1.001 =(-1)0×2130-127 ×1.001 二进制代码为: 0 10000010 00100000000000000000000B = 41100000H
40
大多数计算机存储数据的属性由指 令中的操作码解释
• 类型:如定点、浮点、字符、字符串、逻辑 数、向量等 • 进位制:如二进制、八进制、十进制、十六 进制等 • 字长:如字、半字、双字、字节等 • 寻址方式:如直接、间接、相对、寄存器寻 址等 • 功能:如地址、数值、控制字、标志等
41
IBM370系列计算机中的加法指令
21
• 结论2:当浮点数的字长和表数精度确定后, 尾数基值取2或4时,具有最大的表数范围 • 综合结论:当机器字长确定后, rm取2或4时, 具有最大的表数范围和最高的表数精度(但 表数效率低)
基值为2时浮点数的优化表示原理
由于rm=2时,η=50%。但规格化浮点数尾数的 最高位一定为1,故可以隐藏或省去,此时 η=100%,这就是尾基为2时的隐藏位表示方法
26
若E=0且M=0,N为0; 若E=0且M≠0,N=(-1)S·2-126 ·(0.M),非规 格化数; 若1≤E≤254,N=(-1)S·2E-127 ·(1.M),规格 化数; 若E=255且M ≠ 0,N=NaN(非数值); 若E=255且M = 0,N= (-1)S ∞(无穷大)。
27
例题: 1.将IEEE754单精度数(8位十六进制表示)转 换为十进制数 (1) C0A00000H (2)3F880000H 2.将十进制数9和5/32转换为IEEE754标准的 单精度数, 并用8位十六进制表示 1 解: (1) C0A00000H =1 10000001 01000000000000000000000 =(-1)1× 2129-127×(1.25) =-1×22×1.25 =-1.25×4=-5.0D
6
三、数据表示与数据结构
数据表示:指的是能由机器硬件直接识别和引 用的数据类型。 由硬件实现的数据类型 数据结构:反映数据元素之间的结构关系,面 向计算机系统软件、面向应用领域所需处理的 数据类型。 由软件实现的数据类型
7
• 数据结构与数据表示的关系: --数据表示是数据结构的一个子集 -- 数据表示是软、硬件界面的一部分;数据结 构是软件和应用的一分 --数据表示的确定实质上是软硬件的取舍问题 --数据结构的发展总是优先于机器的数据表示, 系统结构设计者应尽可能为数据结构的实现提 供更多的支持
15
• 结论:浮点数的表数效率主要与尾数的基 值有关。当尾基为2时,表数效率最低 – 如:
rm 2, (2) 50%
rm 16, (16) 93.75%
小结:浮点数尾数基值rm越大,表数范围越大,表 数精度降低,表数效率越高.
16
浮点数尾数基值的选择
• 重点:在机器字长一定的情况下,如何选择尾数的基 值,使浮点数的表数范围最大,表数精度和表数效 率最高? • 分析: – 设浮点数表示方式F1:尾数基值rm1=2,尾数长 度p1,阶码长度q1,二进制字长: L1=p1+q1+2 – 浮点数表示方式F2:尾数基值rm2=2k,尾数长度 p2,阶码长度q2,二进制字长: L2=kp2+q2+2
31
处理结果
00 11 10 01 00
00:0 00:1 11:0 11:1
处理结果
00 11 10 01 00 00:0 00:1 11:0 11:1
x
x
截断法
处理结果
00 11 10 01 00 00:0 00:1 11:0 11:1
舍入法
处理结果
00 11 10 01 00 00:0 00:1 11:0 11:1
x
x
恒置“1”法
查表舍入法
38
2.2 高级数据表示
• 自定义数据表示(Self-defining) –带标志符的数据表示 –数据描述符 • 向量数组数据表示 • 堆栈数据表示
39
一、自定义数据表示
• 引入思想: – 减小高级语言和机器语言的语义差距, 减轻编译软件的工作量 • 分类 – 带标志符数据表示 – 数据描述符
9
五、浮点数尾数基值的选择
浮点数的表示需要六个基本参数:尾数m、阶 码e的值;尾数的基rm、阶码的基re、尾数长 度p(不包括符号位)、阶码长度q 三大特点:表数范围、表数精度和表数效率 关键问题:在数据字长确定的情况下,找到具 有最大表数范围、最高表数精度和最大表数效 率的浮点数表示方式
10
浮点数的一般格式:对任意浮点数N,可表示为:
2位 2位 1位 4位 1位 功能 陷井 封写 类型 校验 数值
• • • • •
功能:操作数、指令、地址、控制字 陷井:由软件定义4种捕获方式 封写:只读或可读可写 类型:16种不同的数据类型,与功能配合 校验:奇偶校验
45
• 优点: – 简化指令系统和程序设计 – 简化了系统程序和编译程序的设计 – 便于一致性校验 – 能由硬件自动完成数据类型的变换 – 支持数据库系统的实现与数据类型无关的要 求 – 为软件调试和应用软件开发提供支持 • 缺点: – 使程序所占用的主存空间增加 – 降低指令的执行速度 – 必须用专门的指令完成标志符的初始化
12
表数精度 表数精度也称为表数误差,浮点数存 在表数精度的根本原因是由于浮点数的不连续 性造成的。 例如:当q=1,m=2,rm=2,能表示的正规格化数是: 1/8,3/16,1/4,3/8,1/2,3/4,1,3/2(共8个数) 如果有1/2+3/4=5/4,则5/4不在这个浮点数集内。 只能用1,或3/2来表示。 在一般情况下,认为规格化尾数最后一位的精 确度是一半,表数精度则可表示为如下形式:
17
• 由上式可见,只有当K=1(rm=2)或K=2(rm=4)时, T=1,否则T>1。由此得出结论: 结论1:在浮点数的字长和表数范围一定时, 尾数基值取2或4具有最高的表数精度 (2) 当L1=L2,且 1 2 基值和表数范围的关系: 时,分析尾数
1 1 ( kp 2k ) 1 ( p11) k ( p 2 1) 2 (2 ) 2 1 2 2 2 2
相关文档
最新文档