计算机系统结构02指令系统(数据表示)

上传人:ldj****22 文档编号:50318424 上传时间:2018-08-07 格式:PPT 页数:200 大小:4.29MB
返回 下载 相关 举报
计算机系统结构02指令系统(数据表示)_第1页
第1页 / 共200页
计算机系统结构02指令系统(数据表示)_第2页
第2页 / 共200页
计算机系统结构02指令系统(数据表示)_第3页
第3页 / 共200页
计算机系统结构02指令系统(数据表示)_第4页
第4页 / 共200页
计算机系统结构02指令系统(数据表示)_第5页
第5页 / 共200页
点击查看更多>>
资源描述

《计算机系统结构02指令系统(数据表示)》由会员分享,可在线阅读,更多相关《计算机系统结构02指令系统(数据表示)(200页珍藏版)》请在金锄头文库上搜索。

1、1第二章 指令系统在机器上直接运行的程序是由指令组成的。指令系统是软件与硬件之间的一个主要界面,也 是它们之间互相沟通的桥梁。硬件人员采用各种手段实现指令系统,而软件 设计人员则使用这些指令系统编制系统软件和应 用软件,用这些软件来填补指令系统与人们习惯的 使用方式之间语义差别。指令系统设计必须由软件设计人员和硬件人员 共同完成的。指令系统发展相当缓慢,需要用软件来填补的功 能也就越来越多。2本章主要内容有三个方面:数据表示、寻址技术、指令系统设计。有三种类型的指令系统:CISC、RISC、VLIW。指令系统设计:指令的格式设计、指令系统 功能设计、指令系统性能评价。2.1 数据表示2.2 寻

2、址技术2.3 指令格式的优化设计2.4 指令系统的功能设计2.5 RISC指令系统2.6 超字长指令系统 32.1 数据表示2.1.1 数据表示与数据类型 2.1.2 浮点数的表示方法 2.1.3 浮点数格式设计 2.1.4 浮点数的舍入处理 2.1.5 警戒位的设置方法 2.1.6 自定义数据表示42.1.1 数据表示与数据类型一、数据表示的定义数据表示是指计算机硬件能够直接认识 ,可以被指令系统直接调用的那些数据类型 。例如:定点、逻辑、浮点、十进制、字 符、字符串、堆栈和向量等。 二、数据类型:文件、图、表、树、阵列、 队列、链表、栈、向量、串、实数、整数、 布尔数、字符等。在这数据类型

3、中,确定哪些用数据表示 实现,也就是软件与硬件的取舍的问题。5二、确定数据表示的原则:1、缩短程序的运行的时间;2、减少CPU与主存储器之间的通信量;3、数据表示具有通用性和高利用率; 三、数据表示在不断发展矩阵、树、图、表及自定义数据表示等已 经开始用于数据表示。例2.1 矩阵C=A+B,A、B、C都是200*200 的矩阵。下面分析采用向量数据表示的作用:6解:如果在没有向量数据表示的计算机上实现 ,一般需要6条指令,其中有4条指令要循环 4万次。因此,CPU与主存储器之间的通信 量为:取指令: 2440,000条读或写数据: 340,000个, 那么共要访问 主存储器: 740,000次

4、以上。如果有向量数据表示,只需要一条指令。 那么减少访问主存(取指令)次数440,000 次。用软件和硬件结合的方法实现新的数据表 示,如用变址寻址方式来支持向量数据表示 ,用字节编址支持字符串数据表示。72.1.2 浮点数据的表示方法一、浮点数的表示方式:(1)两个数值尾数m:数制(小数或整数)和码制(原码或补码)。阶码e: 整码,移码(偏码、增码、余码)或补码。 (2)两个基值:尾数基值rm:2、4、8、16和10进制等。阶码基值re:通常为2进制。(3)两个字长:长度和物理位置,均不包含符号位尾数长度p: 尾数部分按基值计算的长度阶码长度q : 阶码部分的二进制位数。8在浮点数表示中,上

5、述有些参数是隐含的。 浮点数的存储方式如下:八位阶码与补码的关系: 十进制:-128 -1 0 +127 补码:1000 0000 1111 1111 0000 0000 0111 1111 移码:0000 0000 0111 1111 1000 0000 1111 1111七位阶码与补码的关系: 十进制:-64 -1 0 +63 补码:100 0000 111 1111 000 0000 011 1111 移码:000 0000 011 1111 100 0000 111 11119例2.2 :已知一个32位符点数c1c00000,无法知道它 表示什么数值?因此,必须给出6个参数:尾数 用纯

6、小数,原码表示,rm=16,p=6;阶码用整数, 移码表示,re=2,q=6;浮点数格式如下图。 解:1100 0001 1100 0000 0000 0000 0000 0000-12/16 16=-12.0 100 0001是阶码,它是十进制数是多少?是26+1=65转换成补码,加或减64,然后进行mod运算,结果是1.浮点数的存储方式如下:102、浮点数的表示范围尾数为原码、小数,阶码用移码、整数时, 规格化浮点数N的表示范围:尾数为补码,负数区间的表数范围为:浮点数在数轴的分布情况:11例2.3:尾数用原码、小数表示,阶码用移码、整 数表示,p=23,q=7,rm=re=2,求规格化浮

7、点数N 的表示范围。解:规格化点数N的表数范围是:即:12规格化最大正数: 0111 1111 1111 1111 1111 1111 1111 1111 规格化最小正数: 0000 0000 0100 0000 0000 0000 0000 0000规格化最大负数: 1000 0000 0100 0000 0000 0000 0000 0000 规格化最小负数: 1111 1111 1111 1111 1111 1111 1111 111113阶码用移码表示浮点0的范围:对于上例:如果阶码用补码表示,浮点0表示为: 0100 0000 0000 0000 0000 0000 0000 000

8、0 浮点0与机器0不同,判0困难。阶码与补码的关系: 十进制:-128 -1 0 +127 补码:1000 0000 1111 1111 0000 0000 0111 1111 移码:0000 0000 0111 1111 1000 0000 1111 111114例2.4:尾数用补码、小数表示,阶码用移码、整数 表示,p=23,q=7,rm=re=2,求规格化浮点数N的 表示范围。解:规格化浮点数N在正数区的表数范围:N在负数区的表数范围:15规格化最大正数(补码) :相同 0111 1111 1111 1111 1111 1111 1111 1111 规格化最小正数(补码) :相同 000

9、0 0000 0100 0000 0000 0000 0000 0000规格化最大负数(补码):尾数-0.100 00 0001 1000 0000 0011 1111 1111 1111 1111 1111 规格化最小负数(补码) :尾数-1. 0 1111 1111 1000 0000 0000 0000 0000 000016例2.4:尾数用补码、小数表示,阶码用移码 、整数表示,p=6,q=6,rm=16,re=2,求规格 化浮点数N的表示范围。解:规格化浮点数N在正数区的表数范围 :N在负数区的表数范围:17规格化最大正数:相同 0111 11111111 1111 1111 111

10、1 1111 1111 规格化最小正数:相同 0000 0000 0001 0000 0000 0000 0000 0000 规格化最大负数:尾数-0.000 10 0001 1000 0000 1110 1111 1111 1111 1111 1111 规格化最小负数:尾数-1. 0 1111 1111 0000 0000 0000 0000 0000 0000183.IEEE754浮点数国际标准32位单精度浮点数格式如下:阶码用移码-127表示,即阶码的0255分别 表示阶码的真值为-127128.尾数用原码、小数,1位浮号位、23位小数 和1位隐藏的整数共25位表示。尾数和阶码的基值都是

11、2。64位双精度浮点数,阶码用11位移移码表示 。19 IEEE754单精度浮点数特殊数据的表示 当0e255时,表示规格化浮点数:N = (-1)S2e-127(1.m) 当e255,且m0时,表示一个非数NaN,NaN(Not-a-Number)可能是零除以零、求负数的平方根等情况产生的结果。 当e255,且m0时,表示一个无穷数:(-1)S。 当e0,且m0时,表示规格化浮点数:N=(-1)S2-126(0.m) 当e0,且m0时,表示浮点数零:(-1)S0204.浮点数的表数精度(误差)产生误差的根本原因是浮点数的不连续性误差产生的直接原因有两个: (1)两个浮点数都在浮点集内,而运算

12、结果却可能 不在这个浮点集内。 (2)数据从十进制转化为2、4、8、16进制,产生 误差。 规格化浮点数的精度为: 最后1个有效位的可信度为一半。当rm=2时,有:215.浮点数的表数效率浮点数是一种冗余数据(Redundat Number System) 浮点数的表数效率定义为:简化表示:当尾数基值为2时,浮点数的表数效率为:22浮点数的表数效率随rm增大当尾数基值rm=16时,浮点数的表数效率为:尾数基值rm=16与rm=2相比,浮点数的表数效 率提高了:232.1.3 浮点数格式设计一、浮点数格式设计的主要问题:在表示浮点数的6个参数中,只有尾数基值rm, 尾数长度p和 阶码长度q 与表

13、数的范围、表数精度和 表数效率有关。在字长确定的情况下,如何选择尾数基值rm, 使表数范围最大、表数精度和表数效率最高。242.浮点数尾数基值的选择假设有两种表示方式F1和F2,它们二进 制字长相同,尾数都用原码或补码、小 数表示,阶码都用移码、整数表示,阶 码的基值均为2,尾数基值不同。浮点数表示方式F1:rm1=2,p1,q1,二进制字长:L1= p1+q1+2浮点数表示方式F2:rm2=2k,p2,q2,二进制字长:L2= kp2+q2+2 由于F1和F2二进制字长相同,即L1= L2,得p1+q1 =kp2+q2 (2.1)25字长和表数的范围确定时,尾数基值与标数精度 的关系 F1的

14、表数范围是:F2的表数范围是:F1和F2的表数的范围相同,得到: 两边取以2为底的对数得: q1 =q2 +log2k (2.2) (2.2)代入(2.1)得: p1q2log2 kkp2q2 化简得到:p1=kp2 -log2k (2.3) F1的表数精度是:(2.4)26把(2.3)代入(2.4)得到:F2的表数精度是: 取F2与F1表数精度的比值:(2.5)只有k=1(rm=2)或k=2(rm=4)时,比值T=1 结论1:在字长和表数范围一定时,尾数基值rm取2或 4,浮点数具有最高的表精度。27字长和表数精度一定,尾数基值rm与 表数范围的关系由F1与F2的表数精度相同得到:即: p1

15、=kp2-k+1 (2.6) (2.6)代入(2.1)得: kp2-k+1 +q1=kp2+q2即: q1=q2+k-1 (2.7) F1的表数范围:F2的表数范围:28假使F2的表数范围大于F1的表数范围,则应 该有F2阶码的最大值要大于F1阶码的最大值 :即:这个不等式在正整数定义域内没有解只有k=1(rm=2)或k=2(rm=4)时,F2阶码的最大 值等于F1阶码的最大值。结论2:在字长和表数精度一定时,尾数基值 rm取2或4,浮点数具有最大的表示数范围。推论:在字长确定后,尾数基值rm取2或4,浮 点数具有最大的表数范围和最高表数精度。29例 2.6: IBM370系列机的短浮点数表示方式,rm=16, p=6,q=6,尾数用原码、小数表示、阶码用移码、整 数表示。求表示范围和表数精度,并与rm=2时,进 行比较。 解:表数精度为:表数范围是:若尾数基值rm=2,则有:解得p=21,则q=9,它的表数范围是:30表数效率: 当rm=2时:1/2=50% 当rm=4时:1/2=75% 当rm=2时,规格化浮点数可以采用隐藏位方法 表示,如果尾数用原码表示,最高位一定为1 ;如果尾数补码表示,最高位一定与符号位 相反,这时,表数效率为100%。 结论:浮点数的尾数基值rm取2,并采用隐藏位 方法表示是最佳的浮

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号