计算机系统结构第二章第一部分
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第二章指令系统
∙指令系统是计算机系统结构的主要组成部分
∙指令系统是软件与硬件分界面的一个主要标志
∙指令系统软件与硬件之间互相沟通的桥梁
∙指令系统与软件之间的语义差距越来越大
2.1 数据表示
2.2 寻址技术
2.3 指令格式的优化设计
2.4 指令系统的功能设计
2.5 RISC指令系统
2.1 数据表示
∙新的研究成果,如浮点数基值的选择
∙新的数据表示方法,如自定义数据表示
2.1.1 数据表示与数据类型
2.1.2 浮点数的设计方法
2.1.3 自定义数据表示
2.1.1 数据表示与数据类型
∙数据的类型:文件、图、表、树、阵列、队列、链表、栈、向量、串、实数、整数、布尔数、字符
∙数据表示的定义:数据表示研究的是计算机硬件能够直接识别,可以被指令系统直接调用的那些数据类型。
例如:定点、逻辑、浮点、十进制、字符、字符串、堆栈和向量
∙确定哪些数据类型用数据表示实现,是软件与硬件的取舍问题
∙确定数据表示的原则:
一是缩短程序的运行时间,
二是减少CPU与主存储器之间的通信量,
三是这种数据表示的通用性和利用率。
例2.1:实现A=A+B,A和B均为200×200的矩阵。分析向量指令的作用解:如果在没有向量数据表示的计算机系统上实现,一般需要6条指令,其中有4条指令要循环4万次。因此,CPU与主存储器之间的通信量:取指令2+4×40,000条,
读或写数据3×40,000个,
共要访问主存储器7×40,000次以上
如果有向量数据表示,只需要一条指令
减少访问主存(取指令)次数:4×40,000次
缩短程序执行时间一倍以上
N m m e
r =⋅∙ 数据表示在不断扩大,如字符串、向量、堆栈、图、表 ∙ 用软件和硬件相结合的方法实现新的数据表示
例如:用字节编址和字节运算指令来支持字符串数据表示 用变址寻址方式来支持向量数据表示
2.1.2 浮点数的设计方法
1、浮点数的表示方式
∙ 一个浮点数N 可以用如下方式表示: 需要有6个参数来定义。 两个数值:
m :尾数的值,包括尾数的码制(原码或补码)和数制(小数或整数) e :阶码的值,移码(偏码、增码、译码、余码等)或补码,整数 两个基值:
r m :尾数的基值,2进制、4进制、8进制、16进制和10进制等 r e :阶码的基值,通常为2 两个字长:
p :尾数长度,当r m =16时,每4个二进制位表示一位尾数 q :阶码长度,阶码部分的二进制位数 p 和q 均不包括符号位 ∙ 浮点数的存储式
注:m f 为尾数的符号位,e f 为阶码的符号位,e 为阶码的值,m 为尾数的值。
2、浮点数的表数范围
∙ 尾数为原码 尾数用原码、纯小数,阶码用移码、整数时,规格化浮点数N 的表数范围:
---⋅≤≤-⋅-111r r N r r m m
p m m q e q
e r r () ∙ 尾数为补码
尾数用补码表示时,正数区间的表数范围与尾数采用原码时完全相同,而负数区间的表数范围为:
q e q
e r r r N r r r m m p m m ----≤≤-+⋅-11() ∙ 浮点数在数轴上的分布情况
min max min max
例2.2:设p =23,q =7,r m =r e =2,尾数用原码、纯小数表示,阶码用移码、整数表示,求规格化浮点数N 的表数范围。
解:规格化浮点数N 的表数范围是:
122
7
722321122-≤≤-⋅--N () 即:
-129
231272
122≤≤-⋅-N () 例2.3:尾数用补码、纯小数表示,阶码用移码、整数表示,p =6,q =6,
r m =16,r e =2,求规格化浮点数N 的表数范围。
解: 规格化浮点数N 在正数区间的表数范围是:
-65
66316
11616≤≤-⋅-N ()
在负数区间的表数范围是:
63
6641616161
16-≤≤-+⋅--N (
)
3、浮点数的表数精度(误差)
∙ 产生误差的根本原因是浮点数的不连续性 ∙ 误差产生的直接原因有两个:
一是两个浮点数都在浮点集内,而运算结果却可能不在这个浮点集内, 二是数据从十进制转化为2、4、8、16进制,产生误差。 ∙ 规格化尾数的表数精度为:
δ(,)()r p p m m r =
--11 最后1个有效位的可信度为一半, 当r m =2时,有:
δ(,)()
22212
1p p p ==⋅---
4、浮点数的表数效率
∙ 浮点数是一种冗余数制(Redundat Number System)
∙ 浮点数的表数效率定义为:
η==⋅⋅-⋅⋅+⋅⋅⋅-可表示的规格化浮点数的个数
全部浮点数个数2121221()r r r r r m m e m e p q p q 简化表示:η()r r r m m m
=-1
当尾数基值为2时,浮点数的表数效率为:
η()2212
50%=-= ∙ 浮点数的表数效率随r m 增大
当尾数基值r m =16时,浮点数的表数效率为:
η()1616194%=-= 尾数基值r m =16与r m =2相比,浮点数的表数效率提高了:
T ==ηη()
()
.1621875倍
4、浮点数尾数基值的选择
∙ 在表示浮点数的6个参数中,只有尾数基值r m 、尾数长度p 和阶码长度q 与表数范围、表数精度和表数效率有关