计算机系统结构第二章第一部分

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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 与表数范围、表数精度和表数效率有关

相关文档
最新文档