计算机系统结构第2章补充数据表示解析_第1页
计算机系统结构第2章补充数据表示解析_第2页
计算机系统结构第2章补充数据表示解析_第3页
计算机系统结构第2章补充数据表示解析_第4页
计算机系统结构第2章补充数据表示解析_第5页
已阅读5页,还剩71页未读 继续免费阅读

下载本文档

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

文档简介

1、2020/7/6,张功萱 修订,1,数据类型与数据表示,第 2 章 补充,2020/7/6,2,本章学习内容,数据类型、数据表示、数据结构的基本概念 各类数据表示方法,2020/7/6,3,2.1 数据类型、数据表示和数据结构,2.1.1 基本概念 1. 数据类型 数据类型是指一组值的集合以及可作用于这个集合上的操作集。,2020/7/6,4, 基本数据类型 包括二进制位及其位串、整数及自然数(正整数)、实数(浮点数)、字符和布尔数等。 结构数据类型 一组由相互有关的数据元素复合而成的数据类型。 结构数据类型中的数据元素可以是基本数据类型中的元素,也可以是结构数据类型本身中的元素。,数据类型的

2、分类,2020/7/6,5,2. 数据表示,数据表示是指可由硬件直接识别和处理、指令系统可以直接调用的数据类型,即数据的硬件表示。 3. 数据结构 数据结构是指结构数据类型的组织形式。,2020/7/6,6,2.1.2 数据表示与数据类型、数据结构的关系,数据表示与数据结构都是数据类型的子集。 数据表示是数据处理的前提,计算机处理信息时,必须首先确定数据表示。 每一种数据表示必须有唯一的一组指令与之对应,并有相应的硬件支持。 数据表示反映了硬件对软件的支持。即凡是有数据表示的数据类型均可直接由硬件实现,凡是没有数据表示的数据类型,必须通过软件映象,变换为已有的数据表示,由软件实现。可见数据表示

3、问题实际也是软硬件功能分配的问题。,2020/7/6,7,2.1.3 数据表示与系统结构的关系,1. 数据表示是指令设计的基础 2. 数据表示是ALU数据的依据 3. 数据表示的单位影响软件使用的灵活性 4. 数据表示直接涉及系统的软硬件功能分配,影响系统的性能/价格比。,2020/7/6,8,2.1.4 引入数据表示的原则,1. 有利于减少程序的执行时间和所需的存储容量。 2. 具有较好的通用性和较高的效率。 即: 一是缩短程序的运行时间 二是减少CPU与主存储器之间的通信量 三是这种数据表示具有较强的通用性和较高的利用率,2020/7/6,9,例如:如果用一台定点运算速度为1000万次/秒

4、的进行32位的浮点运算。由于用定点指令实现32位浮点运算平均需要执行100条以上的指令,即处理器与主存之间的信息通信量将增加100多倍,相当于机器速度降低了两个数量级,即10万次/秒。因此应引入浮点数据表示。,2020/7/6,10,例:计算200200的矩阵加法AB。 如果在没有向量数据表示的机器上进行计算,设需要6条指令,其中4条指令相应循环4万次,则整体计算实现共需访存740000次以上,其中: 取指需 2440000 取2次操作数,写1次结果,共需访存340000次 如果在有向量表示的机器上进行计算,只需1条向量加指令即可实现运算,可以少取指440000次,程序执行时间可缩短50以上。

5、,2020/7/6,11,2.2 浮点数据表示,浮点数据表示方式要研究的核心内容是: 表数范围、表数精度和表数效率之间的关系。,2020/7/6,12,2.2.1 浮点数据表示的一般形式,2020/7/6,13,浮点数的数值,m:尾数的值及采用的码制和数制 e:阶码的值,一般采用移码或补码,整数 rm:尾数的基,可采用二、四、八、十六和十进制。 re:阶码的基,通常采用二进制。 p:尾数的长度。注意当尾数不采用二进制时,p不是指尾数的二进制位数。如rm16时,每4个二进制位表示一位尾数。 q:阶码的长度。通常是阶码的二进制位数。,2020/7/6,14,阶码和尾数均用补码表示时的浮点数表数范围

6、,2020/7/6,15, 浮点数的表数范围 浮点数的表数精度,2020/7/6,16,表数精度也称为表数误差,产生误差的根本原因是浮点数的不连续性. 误差产生的直接原因有两个: (1) 两个浮点数都在浮点集内,而运算结果却可能不在这个浮点集内 (2) 数据从十进制转化为2、4、8、16进制,产生误差。,2020/7/6,17,上式是规格化浮点数的精度, 有的采用下列形式表示: 最后1个有效位的可信度为一半 当rm2时,有:,2020/7/6,18, 浮点数的表数效率,浮点数是一种冗余数制(Redundat Number System) 浮点数的表数效率定义为:,2020/7/6,19,简化表

7、示:,2020/7/6,20,当尾数基值为2时,浮点数的表数效率为:,2020/7/6,21,浮点数的表数效率随rm增大, 当尾数基值rm16时,浮点数的表数效率为:,2020/7/6,22,尾数基值rm16与rm2相比,浮点数的表数效率提高了:,2020/7/6,23,浮点数的值: 非负阶的最小值为:0 规格化最小正数的尾数为:rm1 非负阶的规格化最小正数: rm1 rm0rm1 非负阶的最大值为: 2p1 规格化最大正数的尾数为: 1 rmm 非负阶的规格化最大正数:(1 rmm )rm2p1,2020/7/6,24,2020/7/6,25,一,浮点数格式设计的主要问题,在表示浮点数的6

8、个参数中,只有尾数基值rm、尾数长度p和阶码长度q与表数范围、表数精度和表数效率有关.,2020/7/6,26,在字长确定的情况下,如何选择尾数基值rm, 使表数范围最大、表数精度和表数效率最高.,2020/7/6,27,二,浮点数尾数基值的选择,假设有两种表示方式F1和F2,它们二进制字长相同,尾数都用原码或补码、小数表示,阶码都用移码、整数表示,阶码的基值均为2,尾数的基值不同。 浮点数表示方式F1:rm12,p1,q1, 二进制字长:L1p1q12 浮点数表示方式F2:rm22k,p2,q2, 二进制字长:L2kp2q22 由F1与F2的二进制字长相同,即L1L2,得: p1q1kp2q

9、2 (3.2.1),2020/7/6,28,(1)字长和表数范围确定时,尾数基值与表数精度的关系,F1的表数范围是: F2的表数范围是: F1与F2的表数范围相同,得到: 两边取以2为底的对数得:q1q2log2 k (3.2.2) (3.2.2)代入(3.2.1) 得: p1q2log2 kkp2q2 化简得到:p1kp2log2 k (3.2.3) F1的表数精度是: (3.2.4),2020/7/6,29,把(3.2.3)代入(3.2.4)得到: F2的表数精度是: 取F2与F1表数精度的比值: (3.2.5) 只有k1(rm2)或k2(rm4)时,比值T1,2020/7/6,30,结论

10、1: 在字长和表数范围一定时,尾数基值 rm取2或4,浮点数具有最高的表数精度。,2020/7/6,31,(2)字长和表数精度一定,尾数基值rm与表数范围的关系,由F1与F2的表数精度相同得到: 即: p1kp2k1 (3.2.6) (3.2.6)代入(3.2.1)得:kp2k1q1kp2q2 即:q1q2k1 (3.2.7) F1的表数范围: F2的表数范围:,2020/7/6,32,假设F2的表数范围大于F1的表数范围,则应该有F2阶码的最大值要大于F1阶码的最大值: 即: 这个不等式在正整数定义域内没有解 只有k1(rm2)或 k2(rm4)时,F2阶码的最大值等于F1阶码的最大值。,2

11、020/7/6,33,结论2: 在字长和表数精度一定时,尾数基值rm取2或4,浮点数具有最大的表数范围。 推论: 在字长确定之后,尾数基值rm取2或4,浮点数具有最大表数范围和最高表数精度。,2020/7/6,34,例:IBM 370系列机的短浮点数表示方式, rm16,p6,re2,q6,尾数用原码、 小数表示,阶码用移码、整数表示。求表数 范围和表数精度,并与rm2时进行比较。 解:表数精度为: 表数范围是: 若尾数基值rm2,则有: 解得p21,则q9,它的表数范围是:,2020/7/6,35,表数效率: 当rm2时:1/250 当rm4时:3/475 当rm2时,规格化浮点数可以采用隐

12、藏位方法表示 如果尾数用原码表示,最高位一定为1 如果尾数用补码表示,最高位一定与符号位相反 这时,表数效率为100 结论:浮点数的尾数基值rm取2,并采用隐藏位表数方法是最佳的浮点数表示方式。这种浮点数表示方式能做到表数范围最大、表数精度最高、表数效率最好。,2020/7/6,36,主要的浮点数表示方法,IBM公司的IBM360、370、4300系列机等,尾数基值rm16 Burroughs公司的B6700、B7700等大型机,尾数基值rm8 DEC公司的PDP-11、VAX-11和Alpha小型机; CDC公司的CDC6600、CYBER70等大型机; HP公司的PR-RISC; Inte

13、l公司的x86系列机; IEEE754浮点数国际标准; 均采用尾数基值rm2,2020/7/6,37,三, 浮点数格式设计,定义浮点数格式的6个参数,确定原则如下: 1.尾数:多数机器用原码、小数表示 采用原码表示:加减法比补码表示复杂,乘除法比补码简单,而且非常直观。 采用小数表示能简化运算,特别是乘法和除法运算。 2.阶码:一般机器用整数、移码表示 采用移码表示的主要原因是:浮点0与机器0一致。阶码进行加减运算时,移码的加减法运算要比补码复杂.,2020/7/6,38,3.基值: 尾数的基值rm2, 阶码的基值re2, 采用隐藏位表示方式能够使规格化浮点数的表数效率达到100(当rm2时)

14、 浮点数格式设计的关键问题是: 在表数范围和表数精度给定的情况下,如何确定最短的尾数字长p和阶码字长q,并根据总字长的要求,恰当分配p与q,2020/7/6,39,四,现代计算机理论观点,现代计算机理论认为: 在浮点数的字长和表数范围一定时,尾数基值rm取2或4,具有最高的表数精度。 在浮点数的字长和表数精度一定时,尾数基值rm取2或4,具有最大的表数范围。 若采用隐藏表数方式,则rm2时,可取得最高的表数效率。 隐藏表数方式:将规格化浮点数尾数的最高位隐藏不表示,只有在运算时才恢复隐藏位。,2020/7/6,40,结论: 当rm2且采用隐藏表数方式时,浮点数的表数方法最优。 目前,浮点数格式

15、采用IEEE754国际标准,2020/7/6,41,五,浮点数格式设计举例(略),例: 请设计一种浮点数格式,要求表数范围 不小于1037,正、负数对称,表数精度不低于10-16。,2020/7/6,42,解:根据表数范围的要求: 解这个不等式:两边取以10为底的对数。 两边取以10为底的对数:,2020/7/6,43,q6.95 , 取阶码字长q7 又根据表数精度的要求: 解这个不等式: 解得:,2020/7/6,44,由于浮点数的字长通常为 8 的倍数, 因此,取p55 总的字长为:755 11 64, 浮点数格式如下:,尾数用原码、小数表示,阶码用移码、整数表示,rm2,p56(最高有效

16、位隐藏), re2,q7。 本例所设计浮点数格式的性能如下:,2020/7/6,45,绝对值最大的尾数:1-rm-p = 1-2-56 绝对值最小的尾数:1/rm = 1/2 最大阶码: re q-1 = 127 最小阶码: -re q = -128 最大正数:(1-2-56) 2127= 1.70 1038 最小正数:1/2 2-128 = 1.47 10-39 最大负数:-1/2 2-128 = -1.47 10-39 最小负数:-(1-2-56) 2127= -1.70 1038 表数精度:2-56 = 1.39 10-17 表数效率:100% 浮点零:与机器零相同,64位全0,2020

17、/7/6,46,2.2.2 浮点数的舍入处理,1恒舍法(截断法、必舍法) 设舍入前规格化尾数的长度为pg位,p是尾数有效字长,g是有效字长p位之外的代码长度。 恒舍法的舍入规则: 无论g位长度的代码是什么,一律把它舍去,只保留有效字长p位代码作为尾数,且不作任何修改。 恒舍法的特点:容易实现,但积累误差较大。 在运算精度要求较高的应用场合,不宜采用恒舍法。,2020/7/6,47,2恒置法,恒置法又称恒置r/2法(r是尾数的基值),或恒置1法(当尾数基值取2时),或冯诺依曼法。 恒置法的舍入规则: 把规格化尾数有效字长p位的最低一位置成r/2,而不管超过有效字长之外的g位代码是什么。 当尾数基

18、值取2时,把尾数有效位的最低一位置成1;尾数基值取16时,把尾数有效位的最低一位置成8。,2020/7/6,48,恒置法的特点, 实现比较容易。 在正数区和负数区的积累误差都比较小,而且能达到平衡。 表数精度比较低。由于尾数的最低位被恒置成了r/2,因此损失了一位精度。,2020/7/6,49,3下舍上入法,下舍上入法在十进制中称为4舍5入法,在二进制中称为0舍1入法,在16进制中称为7舍8入法。 下舍上入法的舍入规则 以规格化尾数有效字长p位之外的g位代码的中间值为界,小于这个中间值的则舍,大于或等于这个中间值的则入。,2020/7/6,50,下舍上入法的特点, 精度高,积累误差小。 正数区

19、和负数区的积累误差能达到完全平衡。 实现起来比较困难,因为在舍入之后可能要再次进行右规格化。,2020/7/6,51,4. R舍入法,将下舍上入法和恒置法结合得到的一种完全没有积累误差的舍入方法。 R舍入法的特点 完全没有积累误差,而且精度很高。 实现起来非常复杂。,2020/7/6,52,5.查表舍入法(ROM舍入法),根据尾数的低K位的代码值及被丢掉数位的最高位值,按一定舍入规则,编制成舍入表,并把它存放在只读存储器中。当需要舍入操作时,以尾数低K位及被丢掉数位的最高位作为ROM地址,通过查舍入表,得到舍入后尾数低K位值。 舍入表编制原则是:若尾数低K位值不为全1,则按0舍1入法编制;若尾

20、数低K位值为全1,则按截断法编制。,2020/7/6,53,2020/7/6,54,2.3 向量数据表示,向量:一组数据在一维空间的有序集合。 进行向量数据处理的过程是: 将向量的各元素连续存放。 设置要操作的向量的起始地址和长度。 进行运算。,2020/7/6,55,1.向量运算方法, 采用变址寻址方式循环操作。 例:计算ciaibi8,i4,5,11的向量加法时,用C可写成如下的FOR循环部分: for ( I4;I12;I+) CIAI+BI8 在一般标量计算机上运行时,在编译后需借助变址操作实现,即先将I置成4,然后循环执行取AI,加BI8,存入CI,然后增量I,并判断I值是否已到达终

21、值11。 这种方法需多次取指和执行指令。,2020/7/6,56, 采用向量数据表示,利用一条向量操作指令完成运算。 设置向量加法指令: X、Y、Z:寄存器号,向量A、B、C的位移量 A、B、C:存放源向量A、B、C的基址及长度。 基址:向量首元素的地址 向量长度:元素的个数 位移量:运算相对于基址的距离 元素大小:每个元素的长度,2020/7/6,57,2. 向量的存储结构,向量长度,基址,位移量,2020/7/6,58,例:计算ciaibi8,i4,5,11的向量加法。 设向量A有12个元素,元素ai的编号为 011; 向量B有8个元素,元素bi的编号为 43; 向量C有12个元素,元素c

22、i的编号为 011 。 计算ciaibi8 ,i4,5,11实际是进行8个元素的加法。 采用向量指令控制运算时,需在指令中指明参加运算和结果向量的基址、位移量和向量有效长度。 参加运算的向量起始地址基址位移量 向量有效长度向量长度位移量,2020/7/6,59,2020/7/6,60,参加运算的起始向量的位移量: X4,Y4,Z4 参加运算的向量长度: A12,B4,C12 向量指令:C(4:11)A(4:11)B(4:3),2020/7/6,61, 在有向量数据表示的计算机上运行,由于设置了相应的向量运算指令和快速的向量运算部件,就可大大提高向量运算操作的速度。 利用不同的位移量,可以方便地

23、实现斜加、斜乘。 可方便地实现对稀疏向量的压缩,节省存储空间。 有利于发挥流水线的效率。,3. 使用向量数据表示的优点,2020/7/6,62,4. 稀疏向量的压缩,稀疏向量:含有大量零元素的向量。 向量的压缩表示方法: 形成一个“位向量” Z,用来指明稀疏向量中各元素的状况及所在位置。 根据Z向量的内容将稀疏向量中与Z向量中“1”元素相对应的向量元素存入指定存储单元,转变成压缩向量。,2020/7/6,63,例:A(a0,0, 0, a3, a4 , 0, 0, a7) ,其压缩方法为:,2020/7/6,64,稀疏向量压缩后,可节省存储稀疏向量的空间,使实际的向量运算长度减小,从而可加快稀

24、疏向量的运算速度。 有序向量Z在稀疏向量的生命周期内应予以保存,这样在运算结束后仍可根据有序向量Z再恢复原来的稀疏向量。,2020/7/6,65,2.4 自定义数据表示,数据本身带有说明数据类型和其他属性的标志。 1. 带标志符数据表示 对每一个数据都附加标志符。 例:R2型计算机采用了10位标志符,2020/7/6,66,R-2巨型机中的标志符,功能位:操作数、指令、地址、控制字 陷井位:由软件定义四种捕捉方式 封写位:指定数据是只读的还是可读可写 类型位:二进制,十进制,定点数,浮点数,复数,字符串,单精度,双精度;绝对地址、相对地址、变址地址、未连接地址等。 程序(包括指令和数据)的存储量分析 数据存储量增加,指令存储量减少。,2020/7/6,67,标志符通常由高级语言的编译器或其他系统软件建立,对高级语言程序员和用户是透明的,但对系统程序员不透明。 带标志符数据表示的优点: 简化了

温馨提示

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

评论

0/150

提交评论