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

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

第二章指令系统

?指令系统是计算机系统结构的主要组成部分

?指令系统是软件与硬件分界面的一个主要标志

?指令系统软件与硬件之间互相沟通的桥梁

?指令系统与软件之间的语义差距越来越大

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 与表数范围、表数精度和表数效率有关

? 在字长确定的情况下,如何选择尾数基值r m ,使表数范围最大、表数精度和表数效率最高;

假设有两种表示方式F1和F2,它们二进制字长相同,尾数都用原码或补码、小数表示,阶码都用移码、整数表示,阶码的基均为2,尾数的基不同。

浮点数表示方式F1:尾数基值r m1=2,尾数长度p1,阶码长度q1, 二进制字长:L1=p1+q1+2。

浮点数表示方式F2:尾数基值r m2=2k ,尾数长度p2,阶码长度q2, 二进制字长:L2=k p2+q2+2。 由F1与F2的二进制字长相同,即L1=L2,得:

p1+q1=k p2+q2 (2.1)

? 字长和表数范围确定时,尾数基值r m 与表数精度的关系

F1的表数范围是:q N 1

212||max =, F2的表数范围是:|max |()

N q k 22

22=,

F1与F2的表数范围相同,得到:q q k 1222=? 两边取以2为底的对数,得到:q1=q2+log 2 k (2.2) 把(2.2)式代入(2.1)式,得到:p1=k p2-log 2 k (2.3) F1的表数精度是:δ11112

2=?-p

(2.4)

把(2.3)代入(2.4)得到:δ11212

2=?-+kp k log

F2的表数精度是:δ212122=??-k p ()

取F2与F1表数精度的比值:T k k ==--δδ21

12log

(2.5)

只有k =1(尾数基值r m =2)或k =2(尾数基值r m =4)时,比值T =1。 结论1:在字长和表数范围一定时,尾数基值r m 取2或4,浮点数具有最高的表数精度。

? 字长和表数精度一定,尾数基值r m 与表数范围的关系 由F1与F2的表数精度相同得到:

122122

1112?=?--p p k () 即: p1=kp2-k +1 (2.6) 把(2.6)代入(2.1)得到:q1=q2+k -1 (2.7)

F1的表数范围:q q k q k 1

21

2

12

2

2

2222==+--?

F2的表数范围:q q k k

2

2

22

2

2()=?

假设表数范围F2大于F1,则阶码的最大值F2大于F1:

q q k k k k 22112222?>?--> 即

这个不等式在正整数定义域内没有解,即不存在比F1的表数范围更大的浮

点数表示方式

只有k =1(尾数基值r m =2)或k =2(尾数基值r m =4)时,F2阶码的最大值等于F1阶码的最大值。

结论2:在字长和表数精度一定时,尾数基值r m 取2或4,浮点数具有最大的表数范围。

推论1:在字长确定之后,尾数基值r m 取2或4,浮点数具有最大的表数

范围和最高的表数精度。

例2.4:IBM 370系列计算机的短浮点数表示方式,尾数基值r m =16,尾数字长为16进制6位,阶码基值r m =2,阶码字长6位,尾数用原码、小数表示,阶码用移码、整数表示。求表数范围和表数精度,并尾数基址r m =2的浮点数表示方式进行比较。

解: 表数精度为:δ==?---12

1626121()

表数范围是:N max ==6

2256162

若尾数基值r m =2,则有:12

22121?=---()p

解得p =21,则q =32-21-2=9,它的表数范围是:

N max ==9

251222

推论2:浮点数的尾数基值r m 取2,并采用隐藏位表数方法是最佳的浮点数表示方式。这种浮点数表示方式能做到表数范围最大、表数误差最小、表数效率最高。

目前,IBM 公司的IBM360、370、4300系列机等,尾数基值r m =16。 Burroughs 公司的B6700、B7700等大型机,尾数基值r m =8。 DEC 公司的PDP-11、VAX-11和Alpha 等小型机,CDC 公司的CDC6600、CYBER70等大型机,Intel 公司的x86系列机等均采用尾数基值r m =2。

5、浮点数格式的设计

定义浮点数表示方式的6个参数的确定原则: ? 尾数:多数机器采用原码、小数表示

采用原码制表示:加减法比补码表示复杂,乘除法比补码简单 表示非常直观。

采用小数表示能简化运算,特别是乘除法运算。 ? 阶码:一般机器都采用整数、移码表示

采用移码表示的主要原因是:浮点0与机器0一致。 阶码进行加减运算时,移码的加减法运算要比补码复杂 ? 尾数的基值r m 选择2, ? 阶码的基值r e 取2,

浮点数格式设计的关键问题是:

在表数范围和表数精度给定的情况下,如何确定最短的尾数字长p 和阶码字长q

例2.5:要求设计一种浮点数格式,其表数范围不小于1037,正、负数对称,表数精度不低于10-16。

解:根据表数范围的要求:

q

21372

10

-> 解这个不等式:q >+=log(log /log )log .3710212

695 取阶码字长q =7

根据表数精度的要求,得到:12

211610?

--<-(P )

解这个不等式:

p >

-=-log log .16

102

532

由于浮点数字长通常是8的倍数,因此取尾数字长p =55 所设计浮点数的格式如下:

所设计浮点数的主要参数如下: 最大尾数值:()()11255-=---p r m

绝对值最小的尾数值:11

2

r m =

最大阶码:q r e -=-=1211277 最小阶码:-=-=-q r e 72128 最大正数:7

215555127381

1122

12217010--?=-?-??----==(p

q

r r m e m r )()().;

最小正数:

--?=

??--==7

2

129391

12

22147

10r r m e m

q

r .; 最大负数:---

?=-??--=-=-7

2

129391122147

10r r m e m

q

r .; 最小负数:7

215555127381

1122

12217010---?--?-??----=-=-(p

q

r r m

e m r )()().; 表数精度:δ=??==?------=11

2

222781015515517r r m m p ()().;

浮点零:浮点零与机器零相同,64位全为0; 表数效率:采用隐藏位,表数效率η=100%;

6、浮点数的舍入处理

? 浮点数要进行舍入处理的原因是:

十进制实数转化为浮点数时,有效位长度超过给定的尾数字长。 两个浮点数的加、减、乘、除结果,尾数长度超过给定的尾数字长。 ? 舍入处理要解决的问题是:

把规格化尾数的p +g 位处理成只有p 位。 其中:p 是浮点数表示方式给定的尾数字长,

g 是超过给定尾数字长的部分。 ? 舍入方法的主要性能标准是:

绝对误差小,积累误差小,容易实现。

? 进行舍入处理时要注意的问题是:

必须先规格化,然后再舍入,否则舍入是没有意义的。 在计算积累误差时,要同时考虑到正数区和负数区的情况; 方法1:恒舍法

恒舍法又称截断法、必舍法等

恒舍法的主要优点:实现起来非常容易。误差大。

方法2

:恒置法

又称恒置r/2法、恒置1法、或冯诺依曼法。

恒置法的舍入规则是:把规格化尾数有效字长p 位的最低一位置成r/2。 恒置法的主要缺点:表数精度比较低。 主要优点:实现起来比较容易,

在正数区和负数区的积累误差都比较小,而且能达到平衡。

方法3:下舍上入法

又称为4舍5入法、0舍1入法、7舍8入法等。

下舍上入法的舍入规则是:g 位代码的中间值为界,小于这个中间值的则舍,大于或等于这个中间值的则入。

下舍上入法的主要优点:精度高,积累误差小。

在正数区和负数区的积累误差能达到完全平衡。 主要缺点:实现起来比较困难。

R*舍入法的优点:没有积累误差。精度很高。

主要缺点:实现起来非常复杂,要判断g 是否为10......00,采用下舍上入法或恒置法,判断舍入后是否溢出,若溢出,要再次进行右规格化。

只有少数巨型计算机(如BSP 科学处理机)采用R*舍入法。 方法5:查表法

又称ROM 舍入法,PLA 舍入法等。 查表入法的主要优点:

通过修改ROM 或PLA 中的内容来使积累误差达到平衡。

查表法继承了下舍上入法精度高、积累误差小的优点,同时又克服了它实现起来比较困难的缺点。

m x m :

查表法的原理框图

关于舍入方法的主要结论:

(1) 恒置法虽有少量的积累误差,且损失一位精度,但由于实现起来很容易,已普遍在小型及微型机中使用。

(2) R*舍入法是唯一一种积累误差能达到完全平衡的舍入方法,但由于实现起来非常复杂,仅在极少数对误差要求非常高的具型计算机中才采用。

(3) 下舍上入法只有少量的积累误差,且精度也比较高,但实现起来很复杂,在用软件实现的算法中经常采用。

(4) 查表法实现比较容易,积累误差很小,而且可以通过改变ROM或PLA中的内容来修正积累误差,因此是一种很有前途的舍入方法。

n是查表法中ROM或PLA的字长

7、警戒位的设置方法

为了保证浮点数在运算和转换过程中的精度,在规定的尾数字长之外,运算器中的累加器需要另外增加的长度称为警戒位(Guard Digit or Guard Bit)。 不设置警戒位,可能出现很大的误差。一个例子:

例1:0.10000000×20-0.11111101×2-1,没有警戒位时:

0.10000000×20

对阶:+1.10000001×20

求和:0.00000001×2

左规:0.10000000×2-7

设置一个警戒位时:

0.10000000对阶:+1.10000001 ×20 1×20

求和:0.00000001 左规:0.11000000 1×20×2-7

?可能造成完全错误的运算结果。

例2:0.1000×2125-0.1111×2124,设置一个警戒位时:

0.1000 对阶:+1.1000 ×2125 1×2125

求和:0.0000 左规:0.1000 1×2125×2121

不设置警戒位时,运算结果是0。

0.1000×2125

对阶:+1.1000×2125

求和:0.0000×2125

?警戒位的用处只有两个:

(1) 用于左规格化时移入尾数有效字长内。

(2) 用于舍入。

?警戒位的来源有以下几个方面:

(1) 做加、减法时,因对阶从有效字长内移出去的部分。

(2) 做乘法时,双倍字长乘积的低字长部分。

(3) 做除法时,因没有除尽而多上商的几位。

(4) 右规格化时移出有效字长的那部分。

(5) 从十进制转换成二进制时,尾数超出有效字长的部分。

?加减法运算对警戒位的需要

(1) 同号相加或异号相减,浮点数的尾数之和不需要左规格化。

1 r m ≤|m A|<1,两数之和为:

1

r m≤|m A+m B|<2,

(2) 同号相减或异号相加,阶差为0

例3:0.10001×20-0.10000×20=0.10000×2-4

0.10001 对阶:+1.10000 ×20×20

求和:0.00001 左规:0.10000 ×20×2-4

两个尾数之和最多左规格化p-1位,但是对阶时没有移出任何代码。警戒位有需要但没有来源,因此不必设置警戒位。

(3) 同号相减或异号相加,阶差为1

例4:0.10000×20-0.11111×2-1=0.10000×2-5

p=5 g=1

0.10000 对阶:+1.10000 0×20 1×20

求和:0.00000 左规:0.10000 1×20 0×2-4

两个尾数之和最多左规格化p位,但是对阶时只移出1位代码,只需要设置一位警戒位。

(4) 同号相减或异号相加,阶差大于或等于2

例5:0.10000×20-0.11111×2-2=0.10000×2-1

p=5 g=2

0.10000 对阶:+1.11000 00×20 01×20

求和:0.01000 左规:0.10000 舍入:0.10001 01×2 10×2-1×2-1

对阶时位移出去很多位,但是两个尾数之和最多只左规格化1位,只需要为左规格化设置一位警戒位。

?乘法运算对警戒位的需要

1

r m≤|m A|<1,两数乘积:

1

2

r m

≤|m A×m B|<1,

两个规格化尾数的乘积最多左规格化一位,因此只需要设置一个警戒位。?除法运算对警戒位的需要

1 m ≤|m A|<1,尾数的商:

1

r m≤|

m

m

A

b

|<r m,

两个规格化尾数的商不可能左规格化,因此不必设置警戒位。

计算机组成与系统结构第二章习题及答案

、填空题(20 每空 2 分) 1. 计数制中使用的数据个数被称为________ 。(基) 2. 移码常用来表示浮点数的_ 部分,移码和补码比较,它们除_外, 其他各位都相同。(阶码,符号位) 3. 码值80H: 若表示真值0, 则为_; 若表示-128 ,则为_ ; 若表示-127 ,则为____ ; 若表示-0, 则为 ____ 。(移码补码反 码原码) 4. 在浮点运算过程中,如果运算结果的尾数部分不是_ 形式,则需要进行规格化处理。设尾数采用补码表示形式,当运算结果—时, 需要进行右规操作;当运算结果________________________________ 时,需要进行左规操作。 (规格化溢出不是规格化数) 二、选择题(20 每题 2 分) 1. 以下给出的浮点数,_______ 规格化浮点数。(B ) A. 2 八-10 X 0.010101 B . 2 八-11 X 0.101010 C. 2 八-100 X 1.010100 D . 2 八-1 X 0.0010101 2. 常规乘除法器乘、除运算过程采用部分积、余数左移的做法,其好处是 。( C )

A. 提高运算速度 B. 提高运算精度 C.节省加法器的位数 D. 便于控制 3. 逻辑异运算10010011 和01011101 的结果是_____ 。(B) A.01001110 B.11001110 C.11011101 D.10001110 4. _________浮点数尾数基值rm=8, 尾数数值部分长 6 位,可表示的规 格化最小正尾数为。(Q 1. A.0.5 B.0.25 C.0.125 D.1/64 5?当浮点数尾数的基值rm=16, 除尾符之外的尾数机器位数为8 位时, 可表示的规格化最大尾数值是_____________ 。(D) A.1/2 B.15/16 C.1/256 D.255/256 6. 两个补码数相加,采用1 位符号位,当_时表示结果溢出。(D) A、符号位有进位 B、符号位进位和最高数位进位异或结果为0 C符号位为1D、符号位进位和最高数位进位异或结果为1 7. 运算器的主要功能时进行_ 。(0 A、逻辑运算 B、算术运算 C、逻辑运算和算术运算 D、只作加法 8. 运算器虽有许多部件组成,但核心部件是_______ 。(B) A、数据总线 B、算术逻辑运算单元 C、多路开关 D、累加寄存器9?在定

计算机体系结构第五章练习题参考解答

第 五 章 5.34 在一个采用组相联映象方式的Cache 存储系统中,主存由B 0~B 7共8块组成,Cache 有2组,每组2块,每块大小为16B 。在一个程序执行过程中,访存的主存块地址流为:B 6,B 2,B 4,B 1,B 4,B 6,B 3,B 0,B 4,B 5,B 7,B 3。 (1)写出主存地址的格式,并标出各字段的长度。 (2)写出Cache 地址的格式,并标出各字段的长度。 (3)指出主存与Cache 之间各个块的映象关系。 (4)若Cache 的4个块号为C 0、C 1、C 2和C 3,列出程序执行过程中的Cache 块地址流。 (5)若采用FIFO 替换算法,计算Cache 的块命中率。 (6)若采用LRU 替换算法,计算Cache 的块命中率。 (7)若改为全相联映象方式,再做(5)和(6)。 (8)若在程序执行过程中,每从主存装入一块到Cache ,平均要对这个块访问16次,计算在这种情况下的Cache 命中率。 解:(1)(2)采用组相联映象时,主存和Cache 地址的格式分别为: 主存按Cache 的大小分区,现主存有8个块,Cache 有2×2=4个块,则主存分为8/4=2 个区,区号E 的长度为1位。又每区有2个组,则组号G 、g 的长度都为1位。而每组有2个块,则块号B 、b 的长度又都为1位。每块大小为16个存储字,故块内地址W 、w 的长度都为4位。 (3)根据组相联映象的规则,主存块0~7与Cache 块0~3之间的映象关系为:主存块0、1、4、5与Cache 块0、1之间全相联,主存块2、3、6、7与Cache 块2、3之间全相联。 (4)根据组相联映象的规则,该主存块地址流相应的一种Cache 块地址流如下表所示(组内替换算法为FIFO )。 时间: 1 2 3 4 5 6 7 8 9 10 11 12 主存块地址流: B 6 B 2 B 4 B 1 B 4 B 6 B 3 B 0 B 4 B 5 B 7 B 3 Cache 块地址流: C 2 C 3 C 0 C 1 C 0 C 2 C 2 C 0 C 0 C 0 C 3 C 2 (5)组内替换算法采用FIFO 时,Cache 块0~3的使用过程如下表所示。 时间: 1 2 3 4 5 6 7 8 9 10 11 12 主存块地址流: B 6 B 2 B 4 B 1 B 4 B 6 B 3 B 0 B 4 B 5 B 7 B 3 Cache 块0 Cache 块1 Cache 块2 Cache 块3 命中 命中 命中 可见命中三次,Cache 块命中率为H i = 3/12 = 0.25。 (6)组内替换算法采用LRU 时,Cache 块0~3的使用过程如下表所示。

吉林大学 计算机系统结构题库 第二章

第二章计算机指令集结构 知识点汇总: 指令集设计、堆栈型机器、累加器型机器、通用寄存器型机器、CISC、RISC、寻址方式、数据表示 简答题 1.增强CISC机器的指令功能主要从哪几方面着手?(CISC) (1) 面向目标程序增强指令功能。 (2) 面向高级语言和编译程序改进指令系统。 (3) 面向操作系统的优化实现改进指令系统。 2.简述CISC存在的主要问题。(知识点:CISC) 答:(1)CISC结构的指令系统中,各种指令的使用频率相差悬殊。 (2)CISC结构指令系统的复杂性带来了计算机系统结构的复杂性,这不仅增加了研制时间和成本,而且还容易造成设计错误。 (3)CISC结构指令系统的复杂性给VLSI设计增加了很大负担,不利于单片集成。 (4)CISC结构的指令系统中,许多复杂指令需要很复杂的操作,因而运行速度慢。 (5)在CISC结构的指令系统中,由于各条指令的功能不均衡性,不利于采用先进的计算机系统结构技术来提高系统的性能。 3.简述RISC的优缺点及设计RISC机器的一般原则。(知识点:RISC) 答:(1)选取使用频率最高的指令,并补充一些最有用的指令。 (2)每条指令的功能应尽可能简单,并在一个机器周期内完成。 (3)所有指令长度均相同。 (4)只有load和store操作指令才访问存储器,其它指令操作均在寄存器之间进行。 (5)以简单、有效的方式支持高级语言。 4.根据CPU内部存储单元类型,可将指令集结构分为哪几类?(知识点:堆栈型机器、累加器型机器、通用寄存器型机器) 答:堆栈型指令集结构、累加器型指令集结构、通用寄存器型指令集结构。 5.常见的三种通用寄存器型指令集结构是什么?(知识点:通用寄存器型机器) 答:(1)寄存器-寄存器型。 (2)寄存器-存储器型。 (3)存储器-存储器型。

计算机系统结构-第二章自考练习题答案

计算机系统结构-第二章自考练习题答案

第二章数据表示与指令系统 历年真题精选 1. 计算机中优先使用的操作码编码方法是( C )。 A. BCD码 B. ASCII码 C. 扩展操作码 D. 哈夫曼编码 2.浮点数尾数基值r m=16,除尾符之外的尾数机器位数为8位时,可表示的规格化最大尾数值为( D )。 A. 1/2 B. 15/16 C. 1/256 D. 255/256 3. 自定义数据表示包括(标志符)数据表示和(数据描述符)两类。 4. 引入数据表示的两条基本原则是:一看系统 的效率是否有提高;二看数据表示的(通

用)性和(利用)率是否高。 5. 简述设计RISC的一般原则。 6. 简述程序的动态再定位的思想。 7. 浮点数表示,阶码用二进制表示,除阶符之外 的阶码位数p=3,尾数基值用十进制表示,除尾符外的尾数二进制位数m=8,计算非负阶、规格化、正尾数时, (1)可表示的最小尾数值;(2)可表示的最大值;(3)可表示的尾数个数。 8. (1)要将浮点数尾数下溢处理成K—1位结 果,则ROM表的单元数和字长各是多少? 并简述ROM表各单元所填的内容与其地址之间的规则。

(2)若3位数,其最低位为下溢处理前的附 加位,现将其下溢处理成2位结果,设 计使下溢处理平均误差接近于零的 ROM表,以表明地址单元与其内容的 关系。 同步强化练习 一.单项选择题。 1. 程序员编写程序时使用的地址是( D )。 A.主存地址B.有效地址C.辅存实地址D.逻辑地址 2. 在尾数下溢处理方法中,平均误差最大的是( B )。 A.舍入法B.截断法C.恒置“1”法

计算机系统结构_第五章练习 答案

第五章练习 1、描述计算机系统流水线的性能指标有哪些?其定义和定量表达式是什么? 指标主要有吞吐率、加速比、效率。 (1)吞吐率:在单位时间内流水线所完成的任务数量或输出的结果数量。 基本公式:TP=n/Tk,其中,n是任务数,Tk是处理完成n个任务所用的时间。 各个功能段执行时间均相等,输入连续n个任务的一条k段线性流水线的实际吞吐率为:TP=n/[(k+n-1) ?t] (2)加速比:完成一批任务,不使用流水线所用的时间与使用流水线所用的时间之比。 基本公式:S=T0/Tk,其中,T0为不使用流水线所用的时间,Tk为使用流水 线的执行时间。 各个功能段执行时间均相等的一条K段流水线完成n个连续任务时的实际加速比为:s=k*n*?t/[(k+n-1) ?t]=k*n/( k+n-1). (3)效率:指流水线的设备利用率。 在时空图上,流水线的效率定义为n个任务占用的时空区与k个功能段总的时空区之比。即:E=T0/(k*Tk) 各个功能段执行时间均相等,输入连续n个任务的一条k段线性流水线的效率为:E=n/(k+n-1) 2、假设某个流水线由4个功能部件组成,每个功能部件的执行时间都为?t。当 连续输入10个数据后,停顿5?t,又连续输入10个数据,如此重复。 画出时空图,计算流水线的实际吞吐率,加速比和效率。 总时间:Tk=[(4+10-1)+2] *?t*n =15n*?t 实际吞吐率:TP=N/Tk=10n/(15n*?t)=2/(3?t) 不使用流水线所用的时间为T0=4*N*?t =40n*?t 加速比:S=T0/Tk=2.67 效率:E=T0/(k*Tk)=0.67

计算机组成与设计第五版答案

计算机组成与设计(2010年机械工业出版社出版的图书): 《计算机组成与设计》是2010年机械工业出版社出版的图书,作者是帕特森(DavidA.Patterson)。该书讲述的是采用了一个MIPS 处理器来展示计算机硬件技术、流水线、存储器的层次结构以及I/O 等基本功能。此外,该书还包括一些关于x86架构的介绍。 内容简介: 这本最畅销的计算机组成书籍经过全面更新,关注现今发生在计算机体系结构领域的革命性变革:从单处理器发展到多核微处理器。此外,出版这本书的ARM版是为了强调嵌入式系统对于全亚洲计算行业的重要性,并采用ARM处理器来讨论实际计算机的指令集和算术运算。因为ARM是用于嵌入式设备的最流行的指令集架构,而全世界每年约销售40亿个嵌入式设备。 采用ARMv6(ARM 11系列)为主要架构来展示指令系统和计算机算术运算的基本功能。 覆盖从串行计算到并行计算的革命性变革,新增了关于并行化的一章,并且每章中还有一些强调并行硬件和软件主题的小节。 新增一个由NVIDIA的首席科学家和架构主管撰写的附录,介绍了现代GPU的出现和重要性,首次详细描述了这个针对可视计算进行了优化的高度并行化、多线程、多核的处理器。 描述一种度量多核性能的独特方法——“Roofline model”,自带benchmark测试和分析AMD Opteron X4、Intel Xeo 5000、Sun Ultra SPARC T2和IBM Cell的性能。

涵盖了一些关于闪存和虚拟机的新内容。提供了大量富有启发性的练习题,内容达200多页。 将AMD Opteron X4和Intel Nehalem作为贯穿《计算机组成与设计:硬件/软件接口(英文版·第4版·ARM版)》的实例。 用SPEC CPU2006组件更新了所有处理器性能实例。 作者简介: David A.Patterson,加州大学伯克利分校计算机科学系教授。美国国家工程研究院院士。IEEE和ACM会士。曾因成功的启发式教育方法被IEEE授予James H.Mulligan,Jr教育奖章。他因为对RISC 技术的贡献而荣获1 995年IEEE技术成就奖,而在RAID技术方面的成就为他赢得了1999年IEEE Reynold Johnson信息存储奖。2000年他~13John L.Hennessy分享了John von Neumann奖。 John L.Hennessy,斯坦福大学校长,IEEE和ACM会士。美国国家工程研究院院士及美国科学艺术研究院院士。Hennessy教授因为在RISC技术方面做出了突出贡献而荣获2001年的Eckert-Mauchly奖章.他也是2001年Seymour Cray计算机工程奖得主。并且和David A.Patterson分享了2000年John von Neumann奖。

计算机系统结构作业答案第三章(张晨曦)

3.1 -3.3为术语解释等解答题。 3.4 设一条指令的执行过程分为取指令,分析指令和执行指令3个阶段,每个阶段所需时间分别为ΔT, ΔT, 2ΔT,分别求出下列各种情况下,连续执行N条指令所需的时间。 (1) 顺序执行方式 (2) 只有“取指令”与“执行指令”重叠 (3) “取指令”,“分析指令”与“执行指令”重叠 解: (1) 4NΔT (2) (3N+1) ΔT (3) 2(N+1) ΔT 3.6 解决流水线瓶颈问题有哪两种常用方法? 解: (1) 细分瓶颈段 将瓶颈段细分为若干个子瓶颈段 (2) 重复设置瓶颈段 重复设置瓶颈段,使之并行工作,以此错开处理任务 3.9 列举下面循环中的所有相关,包括输出相关,反相关,真数据相关。 for(i = 2; i < 100; i=i+1) { a[i] = b[i] + a[i]; -----(1) c[i+1] = a[i] + d[i]; -----(2) a[i-1] = 2*b[i]; -----(3) b[i+1] = 2*b[i]; -----(4) } 解: 输出相关:第k次循环时(1)与第k+1轮时(3) 反相关:第k次循环时(1)和(2)与第k-1轮时(3) 真数据相关:每次循环(1)与(2),第k次循环(4)与k+1次循环(1),(3),(4) 3.12 有一指令流水线如下所示 50ns 50ns 100ns 200ns (1)求连续如入10条指令的情况下,该流水线的实际吞吐率和效率 (2)该流水线的“瓶颈”在哪一段?请采用两种不同的措施消除此“瓶颈”。对于你所给出 的两种新的流水线连续输入10条指令时,其实际吞吐率和效率各是多少? 解:(1)(m表示流水线级数,n 表示任务数)

计算机系统结构第二章自考练习题答案

计算机系统结构第二章自考练习题答案

第二章数据表示与指令系统 历年真题精选 1. 计算机中优先使用的操作码编码方法是( C )。 A. BCD码 B. ASCII码 C. 扩展操作码 D. 哈夫曼编码 2.浮点数尾数基值r m=16,除尾符之外的尾数机器位数为8位时,可表示的规格化最大尾数值为( D )。 A. 1/2 B. 15/16 C. 1/256 D. 255/256 3. 自定义数据表示包括(标志符)数据表示和(数据描述符)两类。 4. 引入数据表示的两条基本原则是:一看系统 的效率是否有提高;二看数据表示的(通

用)性和(利用)率是否高。 5. 简述设计RISC的一般原则。 6. 简述程序的动态再定位的思想。 7. 浮点数表示,阶码用二进制表示,除阶符之外 的阶码位数p=3,尾数基值用十进制表示,除尾符外的尾数二进制位数m=8,计算非负阶、规格化、正尾数时, (1)可表示的最小尾数值;(2)可表示的最大值;(3)可表示的尾数个数。 8. (1)要将浮点数尾数下溢处理成K—1位结 果,则ROM表的单元数和字长各是多少? 并简述ROM表各单元所填的内容与其地址之间的规则。 (2)若3位数,其最低位为下溢处理前的附 加位,现将其下溢处理成2位结果,设

计使下溢处理平均误差接近于零的 ROM表,以表明地址单元与其内容的 关系。 同步强化练习 一.单项选择题。 1. 程序员编写程序时使用的地址是( D )。 A.主存地址B.有效地址C.辅存实地址D.逻辑地址 2. 在尾数下溢处理方法中,平均误差最大的是( B )。 A.舍入法B.截断法C.恒置“1”法D.ROM查表法 3. 数据表示指的是( C )。A.应用中要用到的数据元素之间的结构关系

计算机系统结构 第一章自考练习题答案教学内容

第一章计算机系统结构的基本概念 历年真题精选 1. 下列对系统程序员不透明的是()。 A. 乘法器 B. 先行进位链 C. 指令缓冲器 D. 条件码寄存器2.“从中间开始”设计的“中间”目前多数是在( D )。 A. 微程序机器级与汇编语言机器级之间 B. 操作系统机器级与汇编语言机器级之间 C. 传统机器语言机器级与微程序机器级之间 D. 传统机器语言机器级与操作系统机器级之间 3. 开发计算机系统结构并行性的主要技术途径有时间重叠、(资源重复)和(资源 共享)。 4. 计算机系统弗林分类法,把计算机系统分成单指令流单数据流(SISD)、单指令流多数 据流(SIMD)、(多指令流单数据流(MISD))和(多指令流多数据流(MIMD))四大类。 5. 设计指令系统时,以乘法运算为例,简述系统结构设计、计算机组成设计、计算机实现 各应考虑的问题。(P4) 6. 实现软件移植的途径有哪些?各受什么限制?(P14) 同步强化练习 一.单项选择题。 1. 实现汇编语言源程序变换成机器语言目标程序是由( C )。 A. 编译程序翻译 B. 编译程序解释 C. 汇编程序翻译 D. 汇编程序解释

2. 系列机软件应做到( B ) A. 向前兼容,并向下兼容 B. 向后兼容,力争向上兼容 C. 向前兼容,并向上兼容 D. 向后兼容,力争向下兼容 3. 在计算机系统多级层次结构中,机器级由低到高,相对顺序正确的应当是( B )。 A. 传统机器语言、汇编语言、操作系统 B. 微程序、传统机器语言、高级语言 C. 高级语言、汇编语言、传统机器语言 D. 传统机器语言、应用语言、高级语言 4. 可以直接执行微指令的是( C )。 A. 编译程序 B. 微程序 C. 硬件 D. 汇编程序 5. 计算机系统结构不包括( A )。 A. 主存速度 B. 数据表示 C. 机器工作状态 D. 信息保护 6. 对计算机系统结构透明的是()。 A. 是否使用通道型I/0处理机 B. 虚拟存储器 C. 字符行运算指令 D. VLSI技术 7. 在主存设计上,属计算机系统结构考虑的应是( C )。 A. 频宽的确定 B. 多体交叉还是单体 C. 容量和编址单位 D. 用MOS还是TTL 8. 计算机组成设计不考虑( B )。 A. 缓冲技术 B. 功能部件的集成度 C. 专用部件设置 D. 控制机构的组成 9. 下列说法中不正确的是( D ) A. 硬件的生产费用比软件的生产费用高 B.软件设计费用比软件重复生产费用高 C. 硬件功能只需实现一次而软件功能可能要多次重复实现 D. 硬件实际费用比软件设计费用低

吉林大学计算机系统结构题库第三章

第三章流水线技术 知识点汇总 先行控制、流水线、单功能流水线、多功能流水线、静态流水线、动态流水线、部件级流水线、处理机级流水线、处理机间流水线、线性流水线、非线性流水线、顺序流水线、乱序流水线、时空图、流水线性能评价(吞吐率、加速比、效率)、解决流水线瓶颈问题方法、相关(数据相关、名相关、控制相关)、换名技术、流水线冲突(结构冲突、数据冲突、控制冲突)、流水线互锁机制、定向技术、指令调度、预测分支失败、预测分支成功、延迟分支(从前调度、从失败处调度、从成功处调度)、流水寄存器、3种向量处理方式(横向、纵向、纵横)、链接技术。 简答题 1.流水技术有哪些特点?(答出4个即可)(知识点:流水线) 答:1.将处理过程分解为若干子过程,由专门的功能部件来实现,2各段的时间尽可能相等,3各部件间都有一个缓冲寄存器,4适用于大量重复的时序过程,5需要通过时间和排空时间。 2.什么是静态流水线?什么是动态流水线?(知识点:静态流水线、动态流水线) 答:同一时间段内,多功能流水线中的各段只能按同一种功能的连接方式工作;同一时间段内,多功能流水线中的各段可以按照不同的方式连接同时执行多种功能。 3.什么是单功能流水线?什么是多功能流水线?(知识点:单功能流水线、多功能流水线) 答:只能完成一种固定功能的流水线。流水线的各段可以进行不同的连接,以实现不同的功能。 4.什么是线性流水线?什么是非线性流水线?(知识点:线性流水线、非线性流水线) 答:流水线的各段串行连接,没有反馈回路。流水线中除了有串行的连接外,还有反馈回路。 5.列举3种相关。(知识点:相关) 答:数据相关,名相关,控制相关。 6.流水线中有哪三种冲突?各是什么原因造成的?(知识点:流水线冲突) 答:结构冲突,硬件资源满足不了指令重叠执行的要求;数据冲突,指令在流水线中重叠执行时需要用到前面指令的执行结果;控制冲突,流水线遇到分支指令和其他会改变PC值的指令。 7.选择至少2种解决流水线结构冲突的方法简述。(知识点:结构冲突) 答:流水线停顿一个时钟周期,推迟后面的指令操作。设置相互独立的指令存储器和数据存储器。 8.选择至少2种解决流水线数据冲突的方法简述。(知识点:数据冲突) 答:定向技术,将计算结果从其产生的地方直接送到其他指令需要的地方。通过编译时让编译器重新组织指令顺序来消除冲突。

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

第二章指令系统 ?指令系统是计算机系统结构的主要组成部分 ?指令系统是软件与硬件分界面的一个主要标志 ?指令系统软件与硬件之间互相沟通的桥梁 ?指令系统与软件之间的语义差距越来越大 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 的表数范围是:

计算机系统结构李学干版习题答案

第一章 1- 1如有一个经解释实现的计算机,可以按功能划分成4级。每一级为了执行一条指令需要下一级的N条指令解释。若执行第1级的一条指令需K ns时间,那么执行第2、3、4级的一条指令各需要多少时间? 答:执行第2、3、4级的一条指令各需KN ns、(N*N)*K ns、(N*N*N)*K ns 的时间。 1- 2操作系统机器级的某些指令就用传统机器级的指令,这些指令可以用微程序直接解释实现,而不必有操作系统自己来实现。更具你对1-1题的回答,你认为这样做有哪些好处? 答:这样做,可以加快操作系统中操作命令解释的速度,同时也节省了存放解释操作命令这部分解释程序所占的存储空间,简化了操作系统机器级的设计,也有利于减少传统机器级的指令条数。 1- 3有一个计算机系统可按功能分成4级,每级的指令互不相同,每一级的指令都比其下一级的指令在效能上强M倍,即第i级的一条指令能完成第i-1级的M条指令的计算量。 现若需第i级的N条指令解释第i+1级的一条指令,而有一段第1级的程序需要运行Ks,问在第2、3和4级上一段等效程序各需要运行多长时间? 答:第2级上等效程序需运行:(N/M)*Ks。第3级上等效程序需运行:(N/M)*(N/M)*Ks。 第4级上等效程序需运行:(N/M)*(N/M)*(N/M)*Ks。 1- 4硬件和软件在什么意义上是等效的?在什么意义上又是不等效的?试举例说明。 答:软件和硬件在逻辑功能上是等效的,原理上,软件的功能可用硬件或固件完成,硬件的功能也可用软件模拟完成。但是实现的性能价格比,实现的难易程序不同。

例如,编译程序、操作系统等许多用机器语言软件子程序实现的功能完全可以用组合电路硬件或微程序固件来解释实现。它们的差别只是软件实现的速度慢,软件的编制复杂,编程工作量大,程序所占的存储空间量较多,这些都是不利的;但是,这样所用硬件少,硬件实现上也就因此而简单容易,硬件的成本低,解题的灵活性和适应性较好,这些都是有利的。 又如,乘除法运算可以经机器专门设计的乘法指令用硬件电路或乘除部件来实现。向量、数组运算在向量处理机中是直接使用向量、数组类指令和流水或陈列等向量运算部件的硬件方式来实现的,但在标量处理机上也可以通过执行用标量指令组成的循环程序的软件方式来完成。 浮点数运算可以直接通过设置浮点运算指令用硬件来实现,也可以用两个定点数分别表示浮点数的阶码和尾数,通过程序方法把浮点数阶码和尾数的运算映像变换成两个定点数的运算,用子程序软件的方式实现。十进制数的运算可以通过专门设置十进制数运算类指令和专门的十进制运算部件硬的方式来完成,或者通过设置BCD数的表示和若干BCD数运算的校正指令来软硬结合地实现,也可以先经十转二的数制转换子程序将十进制数转成二进制数,再用二进制运算类指令运算,所得结果又调用二转十的数制转换子程序转换成十进制数结果,用全软件的方式实现。 1- 5试以实例说明计算机系统结构、计算机组成与计算机实现之间的相互关系与影响。 答:计算机系统结构、计算机组成、计算机实现互不相同,但又相互影响。 (1)计算机的系统结构相同,但可采用不同的组成。如IBM370系列有115、125、135、158、168等由低档到高档的多种型号机器。从汇编语言、机器语言程序设计者看到的概念性结构相同,均是由中央处理机/主存,通道、设备控制器,外设4级构成。其中,中央处理机都有相同的机器指令和汇编指令系统,只是指令的分析、执行在低档机上采用顺序进行,在高档机上采用重叠、流水或其它并行处理方式。

计算机系统结构-第二章(习题解答)

1. 数据类型、数据表示和数据结构之间是什么关系?在设计一个计算机系统 时,确定数据表示的原则主要有哪几个? 答: 略 2. 假设有A 和B 两种不同类型的处理机,A 处理机中的数据不带标志位,其 指令字长和数据字长均为32位。B 处理机的数据带有标志位,每个数据的字长增加至36位,其中有4位是标志符,它的指令条数由最多256条减少至不到64条。如果每执行一条指令平均要访问两个操作数,每个存放在存储器中的操作数平均要被访问8次。对于一个由1000条指令组成的程序,分别计算这个程序在A 处理机和B 处理机中所占用的存储空间大小(包括指令和数据),从中得到什么启发? 答: 我们可以计算出数据的总数量: ∵ 程序有1000条指令组成,且每条指令平均要访问两个操作数 ∴ 程序访问的数据总数为:1000×2=2000个 ∵ 每个数据平均访问8次 ∴ 程序访问的不同数据个数为:2000÷8=250 对于A 处理机,所用的存储空间的大小为: bit 4000032250321000Mem Mem Mem data n instructio A =?+?=+= 对于B 处理机,指令字长由32位变为了30位(条数由256减少到64),这样,所用的存储空间的大小为: bit 3900036250301000Mem Mem Mem data n instructio B =?+?=+=

由此我们可以看出,由于数据的平均访问次数要大于指令,所以,采用带标志符的数据表示不会增加总的存储空间大小。 3. 对于一个字长为64位的存储器,访问这个存储器的地址按字节编址。假设 存放在这个存储器中的数据中有20%是独立的字节数据(指与这个字节数据相邻的不是一个字节数据),有30%是独立的16位数据,有20%是独立的32位数据,另外30%是独立的64位数据;并且规定只能从一个存储字的起始位置开始存放数据。 ⑴计算这种存储器的存储空间利用率。 ⑵给出提高存储空间利用率的方法,画出新方法的逻辑框图,并计算这种方法 的存储空间利用率。 答: ⑴ 由于全是独立数据,有20%浪费56位(7/8);30%浪费48位(6/8);20%浪费32位(4/8);30%浪费0位(0/8)。 总共浪费:0.2×7/8+0.3×6/8+0.2×4/8+0.3×0/8=0.5 即:存储器的存储空间利用率为50%,浪费率为50%。 ⑵ 方案为:数据从地址整数倍位置开始存储,即,双字地址000结尾,单字地址00结尾,半字地址0结尾,字节地址结尾任意。 可能出现的各种情况如下:

吉林大学计算机系统结构题目整合第五章

第五章存储层次 知识点汇总 存储器层次结构、存储层次性能参数(平均每位价格、命中率、平均访存时间)、存储层次4个问题、CPU 访存地址分割、全相联映像、直接映像、组相联映像、查找方法、替换算法(随机、先进先出、最近最少使用法)、写直达法、写回法、按写分配、不按写分配、Cache性能分析、3C失效(强制失效、容量失效、冲突失效)、Victim Cache、伪相联映像Cache、硬件预取、编译器优化(数组合并、内外循环交换、循环融合、分块)、写缓冲合并、单字宽存储器、多字宽存储器、多体交叉存储器、存储体、虚拟存储器(页式、段式)、快表(TLB) 简答题 1.单级存储器的主要矛盾是什么?通常采取什么方法来解决?(知识点:多级存储器) 答:主要矛盾: (1) 速度越快,每位价格就越高。 (2) 容量越大,每位价格就越低。 (3) 容量越大,速度越慢。 采取多级存储层次方法来解决。 2.“Cache-主存”和“主存-辅存”层次的主要区别是什么?(知识点:存储层次)

3.在存储层次中应解决哪四个问题?(知识点:存储层次的四个问题) 答:(1)映像规则:当把一个块调入高一层存储器时,可以放到哪些位置上。 (2)查找算法:当所要访问的块在高一层存储器中时,如何找到该块。 (3)替换算法:当发生失效时,应替换哪一块。 (4)写策略:当进行写访问时,应进行哪些操作。 4.地址映像方法有哪几种?它们各有什么优缺点?(知识点:地址映像) (1)全相联映像。实现查找的机制复杂,代价高,速度慢。Cache空间的利用率较高,块冲突概率较低,因而Cache的失效率也低。 (2)直接映像。实现查找的机制简单,速度快。Cache空间的利用率较低,块冲突概率较高,因而Cache 的失效率也高。 (3)组相联映像。组相联是直接映像和全相联的一种折中。 5.Cache的3C失效是哪三种失效?针对每种失效给出一种降低失效率的方法。(知识点:3C失效) 答:强制性失效、容量失效、冲突失效。 6.简述Cache的两种写策略(知识点:写直达、写回) 写直达法:执行“写”操作时,不仅写入Cache,而且也写入存储器

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

第二章指令系统 指令系统是计算机系统结构的主要组成部分 指令系统是软件与硬件分界面的一个主要标志 指令系统软件与硬件之间互相沟通的桥梁 指令系统与软件之间的语义差距越来越大 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条,

N m m e r =? 读或写数据3×40,000个, 共要访问主存储器7×40,000次以上 如果有向量数据表示,只需要一条指令 减少访问主存(取指令)次数:4×40,000次 缩短程序执行时间一倍以上 数据表示在不断扩大,如字符串、向量、堆栈、图、表 用软件和硬件相结合的方法实现新的数据表示 例如:用字节编址和字节运算指令来支持字符串数据表示 用变址寻址方式来支持向量数据表示 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 均不包括符号位 浮点数的存储式 1位 1位 q 位 p 位 m f e f e m 注:m f 为尾数的符号位,e f 为阶码的符号位,e 为阶码的值,m 为尾数的值。 2、浮点数的表数范围 尾数为原码 尾数用原码、纯小数,阶码用移码、整数时,规格化浮点数N 的表数范围: ---?≤≤-?-111r r N r r m m p m m q e q e r r () 尾数为补码 尾数用补码表示时,正数区间的表数范围与尾数采用原码时完全相同,而负数区间的表数范围为:

计算机系统结构教程答案chap2-answer

第二章计算机指令集结构设计 2.1 名词解释 堆栈型机器——CPU中存储操作数的单元是堆栈的机器。 累加型机器——CPU中存储操作数的单元是累加器的机器。 通用寄存器型机器——CPU中存储操作数的单元是通用寄存器的机器。 CISC——复杂指令集计算机。 RISC——精简指令集计算机。 2.2 堆栈型机器、累加器型机器和通用寄存器型机器各有什么优缺点? 2.3 常见的三种通用寄存器型机器的优缺点各有哪些? 2.4 指令集结构设计所涉及的内容有哪些? 指令集功能设计:主要有RISC和CISC两种技术发展方向; 寻址方式的设计:设置寻址方式可以通过对基准程序进行测试统计,察看各种寻址方式的

使用频度,根据适用频度设置相应必要的寻址方式; 操作数表示和操作数类型:主要的操作数类型和操作数表示的选择有,浮点数据类型(可以采用IEEE 754标准)、整型数据类型(8位、16位、32位的表示方法)、字符型(8位)、十进制数据类型(压缩十进制和非压缩十进制数据表示)等等。 寻址方式的表示:可以将寻址方式编码与操作码中,也可将寻址方式作为一个单独的域来表示。 指令集格式的设计:有固定长度编码方式、可变长编码方式和混合编码方式三种选择。2.5 简述CISC计算机结构指令集功能设计的主要目标。从当前的计算机技术观点来看,CISC 结构有什么缺点? CISC结构追求的目标是强化指令功能,减少程序的指令条数,以达到提高性能的目的。 从目前的计算机技术观点来看,CISC结构存在以下几个缺点: (1) 在CISC结构的指(2) 令系统中,(3) 各种指(4) 令的使用频率相差悬殊。 (5) CISC结构的指(6) 令系统的复(7) 杂性带来了计算机体系结构的复(8) 杂性, (9) 这不(10) 仅增加了研制时间和成本,而(11) 且还容易造成设计错误。 (12) C ISC结构的指(13) 令系统的复(14) 杂性给VLSI设计带来了很大负担,(15) 不 (16) 利于单片集成。 (17) C ISC结构的指(18) 令系统中,(19) 许多复(20) 杂指(21) 令需要很复(22) 杂 的操作,(23) 因而(24) 运行速度慢。 (25) 在结构的指(26) 令系统中,(27) 由于各条指(28) 令的功能不(29) 均衡 性,(30) 不(31) 利于采用先进的计算机体系结构技术(如流水技术)来提高系 统的性能。 2.6 简述RISC结构的设计原则。 选取使用频率最高的指令,并补充一些最有用的指令; 每条指令的功能应尽可能简单,并在一个机器周期内完成; 所有指令长度均相同; 只有Load和Store操作指令才访问存储器,其它指令操作均在寄存器之间进行 以简单有效的方式支持高级语言。 2.7 简述操作数的类型及其相应的表示方法。 操作数的类型主要有:整数(定点)、浮点、十进制、字符、字符串、向量、堆栈等。 操作数类型有两种表示方法: (1)操作数的类型由操作码的编码指定,这也是最常见的一种方法; (2)数据可以附上由硬件解释的标记,由这些标记指定操作数的类型,从而选择适当的运算。

计算机系统结构 第五章(习题)

1. 向量流水机的工作方式可分为哪两大类?它们的主要特点是什么? 2. 向量的加工方法有哪几种?各有什么特点?试从加工速度、需用中间变量 等方面加以比较。 3. 在CRAY1机上,V为向量寄存器,设向量长度均为32,s为标量寄存器, 所用浮点功能执行部件的执行时间分别为:加法需6拍,相乘需7拍,从存储器读数需6拍,求倒数近似值需14拍,打入寄存器及启动功能部件(包括寄存器)各需1拍。问下列各指令组中的哪些指令可以链接?哪些指令可以并行执行?试说明其原因并分别计算出各指令组全部完成所需的拍数。 (1)V0←存储器 V1←V2+V3 V4←V5*V6 (2)V2←V0*V1 V3←存储器 V4←V2+V3 (3)V0←存储器 V3←V1+V2 V4←V0*V3 V6←V4+V5 (4)V0←存储器 V1←1/V0 V3←V1+V2 V5←V3*V4 (5)V0←存储器 V1←V2+V3 V4←V5*V6 s0←s1+s2 (6)V3←存储器 V2←V0+V1 s0←s2+s3 V3←V1*V4 (7)V3←存储器 V2←V0+V1 V4←V2*V3 存储器←V4 (8)V0←存储器 V2←V0+V1 V3←V2*V1 V5←V3*V4 4. 在CRAYl机上,按链接方式执行下述4条向量指令(括号中给出相应功能 部件时间),如果向量寄存器和功能部件之间的数据传送需1拍,试求此链

接流水线的流过时间为多少拍?如果向量长度为64,则需多少拍能得到全部结果? V0←存储器(存储器取数:7拍) V2←V0+Vl (向量加:3拍) V3←V2<A3 (按(A3)左移:4拍) V5←V3∧V4 (向量逻辑乘:2拍) 5. 若某个向量机其向量方式的执行速率Rv=10MFLOPS,标量方式的执行速 率Rs=1MFLOPS,设α是程序中可向量化的百分比。要求: ⑴推导该向量机的平均执行速率Ra的公式。 ⑵画出在(0,1)范围内,Ra与α的关系图。 ⑶为使平均执行速率Ra=7.5MFlOPS,则α应取何值? ⑷假定Rs=1MFLOPS,α=0.7,则为使Ra=2MFLOPS,Rv应取何值?

计算机系统结构_第三章练习 答案

第三章练习题(1) 一、单项选择题 在下面各题的4个备选答案中,只有一个答案是正确的,请把正确答案的标号(A~D)填入题后面的括号中。 1.程序员编写程序时使用的访存地址是()。 A.物理地址 B.有效地址 C.逻辑地址 D.主存地址 2.虚拟存储器通常采用的地址映像是(D )。 A.全相联、组相联和直接映像 B.直接映像 C.组相联映像 D.全相联映像 3.不属于堆栈型替换算法是()。 A.近期最少使用替换算法 B.先进先出替换算法 C.最优替换算法 D.近期最久未使用替换算法 4.确保提高虚拟存储器的主存命中率的途径是()。 A.采用LFU替换算法并增大页面数 B.采用FIFO替换算法并增大页面 C.采用FIFO替换算法并增大页面数 D.采用LRU替换算法并增大页面 5.虚拟存储器主要是为了解决()问题。 A.便于程序的“访存操作” B.扩大存储系统的容量和提高存储系统的速度 C.提高存储系统的速度 D.扩大存储系统的容量 6.与虚拟存储器的等效访问速度无关的是()。 A.辅存的容量 B.主存的容量 C.页面替换算法 D.访存页地址流 二、填空题 1.使二级存储系统的等效访问速度接近于第一级存储器访问速度的依据是程序的(局部性原理),它包括(时间局部性)和(空间局部性)两个方面。 2.程序的空间局部性是指程序通常是(顺序)存储和执行的,程序使用的数据通常是(簇聚或集中)存储的。 3.假设T1和T2分别是CPU访问到M1和M2中信息所需要的时间,H为命中M1的概率,则由M1和M2构成的二级存储系统的等效访问时间应当表示为(H*T1+(1-H)*T2)。4.存储器速度性能可以采用存储器的(频宽)衡量,它是存储器单位时间能够访问的信息量。

相关文档
最新文档