文档库 最新最全的文档下载
当前位置:文档库 › 计算机组织与系统结构第四章习题答案

计算机组织与系统结构第四章习题答案

计算机组织与系统结构第四章习题答案
计算机组织与系统结构第四章习题答案

第 4 章 习 题 答 案

3. 已知某机主存空间大小为64KB ,按字节编址。要求: (1)若用1K×4位的SRAM 芯片构成该主存储器,需要多少个芯片? (2)主存地址共多少位?几位用于选片?几位用于片内选址? (3)画出该存储器的逻辑框图。 参考答案: (1)64KB / 1K×4位 = 64×2 = 128片。

(2)因为是按字节编址,所以主存地址共16位,6位选片,10位片内选址。

(3)显然,位方向上扩展了2倍,字方向扩展了64倍。下图中片选信号CS 为高电平有效。

A 15

A 10A 9

A 0

D 0

D 7

WE

4. 用64K×1位的DRAM 芯片构成256K×8位的存储器。要求: (1) 计算所需芯片数,并画出该存储器的逻辑框图。

(2) 若采用异步刷新方式,每单元刷新间隔不超过2ms ,则产生刷新信号的间隔是多少时间?若采

用集中刷新方式,则存储器刷新一遍最少用多少读写周期? 参考答案:

(1)256KB / 64K×1位 = 4×8 = 32片。存储器逻辑框图见下页(图中片选信号CS 为高电平有效)。 (2)因为每个单元的刷新间隔为2ms ,所以,采用异步刷新时,在2ms 内每行必须被刷新一次,且

仅被刷新一次。因为DRAM 芯片存储阵列为64K=256×256,所以一共有256行。因此,存储器控制器必须每隔2ms/256=7.8μs 产生一次刷新信号。采用集中刷新方式时,整个存储器刷新一遍需要256个存储(读写)周期,在这个过程中,存储器不能进行读写操作。

A 17

A 16A 15

A 0

D 0

D 7

……

5. 用8K×

8位的EPROM 芯片组成32K×16位的只读存储器,试问:

(1)数据寄存器最少应有多少位? (2) 地址寄存器最少应有多少位? (3) 共需多少个EPROM 芯片? (4) 画出该只读存储器的逻辑框图。 参考答案:

(1)数据寄存器最少有16位。

(2)地址寄存器最少有:15位(若按16位的字编址);16位(若按字节编址)。 (3)共需要 32K×16位 / 8K×8位= 4×2 = 8片。

(4)该只读存储器的逻辑框图如下(假定按字编址,图中片选信号CS 为高电平有效)。

A 14A 13A 12

A 0

D 0

D 15

WE

D 8D 7

6. 某计算机中已配有0000H ~7FFFH 的ROM 区域,现在再用8K×4位的RAM 芯片形成32K×8位的存

储区域,CPU 地址总线为A0-A15,数据总线为D0-D7,控制信号为R/W#(读/写)、MREQ#(访存)。要求说明地址译码方案,并画出ROM 芯片、RAM 芯片与CPU 之间的连接图。假定上述其他条件不变,只是CPU 地址线改为24根,地址范围000000H ~007FFFH 为ROM 区,剩下的所有地址空间都用8K×4位的RAM 芯片配置,则需要多少个这样的RAM 芯片? 参考答案:

CPU 地址线共16位,故存储器地址空间为0000H ~FFFFH ,其中,8000H ~FFFFH 为RAM 区,

共215=32K个单元,其空间大小为32KB,故需8K×4位的芯片数为32KB/8K×4位= 4×2 = 8片。

因为ROM区在0000H~7FFFH,RAM区在8000H~FFFFH,所以可通过最高位地址A15来区分,当A15为0时选中ROM芯片;为1时选中RAM芯片,此时,根据A14和A13进行译码,得到4个译码信号,分别用于4组字扩展芯片的片选信号。(图略,可参照图4.15)

若CPU地址线为24位,ROM区为000000H~007FFFH,则ROM区大小为32KB,总大小为16MB=214KB=512×32KB,所以RAM区大小为511×32KB,共需使用RAM芯片数为511×32KB/8K×4位=511×4×2个芯片。

7.假定一个存储器系统支持4体交叉存取,某程序执行过程中访问地址序列为3, 9, 17, 2, 51, 37, 13, 4, 8, 41,

67, 10,则哪些地址访问会发生体冲突?

参考答案:

对于4体交叉访问的存储系统,每个存储模块的地址分布为:

Bank0: 0、4、8、12、16 … …

Bank1: 1、5、9、13、17…37…41…

Bank2: 2、6、10、14、18 … …

Bank3: 3、7、11、15、19...51 (67)

如果给定的访存地址在相邻的4次访问中出现在同一个Bank内,就会发生访存冲突。所以,17和9、37和17、13和37、8和4发生冲突。

8.现代计算机中,SRAM一般用于实现快速小容量的cache,而DRAM用于实现慢速大容量的主存。以

前超级计算机通常不提供cache,而是用SRAM来实现主存(如,Cray巨型机),请问:如果不考虑成本,你还这样设计高性能计算机吗?为什么?

参考答案:

不这样做的理由主要有以下两个方面:

①主存越大越好,主存大,缺页率降低,因而减少了访问磁盘所需的时间。显然用DRAM芯片

比用SRAM芯片构成的主存容量大的多。

②程序访问的局部性特点使得cache的命中率很高,因而,即使主存没有用快速的SRAM芯片

而是用DRAM芯片,也不会影响到访问速度。

9.分别给出具有下列要求的程序或程序段的示例:

(1)对于数据的访问,几乎没有时间局部性和空间局部性。

(2)对于数据的访问,有很好的时间局部性,但几乎没有空间局部性。

(3)对于数据的访问,有很好的空间局部性,但几乎没有时间局部性。

(4)对于数据的访问,空间局部性和时间局部性都好。

参考答案(略):

可以给出许多类似的示例。例如,对于按行优先存放在内存的多维数组,如果按列优先访问数组元素,则空间局部性就差,如果在一个循环体中某个数组元素只被访问一次,则时间局部性就差。

10.假定某机主存空间大小1GB,按字节编址。cache的数据区(即不包括标记、有效位等存储区)有64KB,

块大小为128字节,采用直接映射和全写(write-through)方式。请问:

(1)主存地址如何划分?要求说明每个字段的含义、位数和在主存地址中的位置。

(2)cache的总容量为多少位?

参考答案:

(1)主存空间大小为1GB,按字节编址,说明主存地址为30位。cache共有64KB/128B=512行,因

此,行索引(行号)为9位;块大小128字节,说明块内地址为7位。因此,30位主存地址中,高14位为标志(Tag);中间9位为行索引;低7位为块内地址。

(2)因为采用直接映射,所以cache中无需替换算法所需控制位,全写方式下也无需修改(dirty)位,而标志位和有效位总是必须有的,所以,cache总容量为512×(128×8+14+1)=519.5K位。

11.假定某计算机的cache共16行,开始为空,块大小为1个字,采用直接映射方式。CPU执行某程序时,

依次访问以下地址序列:2,3,11,16,21,13,64,48,19,11,3,22,4,27,6和11。要求:(1)说明每次访问是命中还是缺失,试计算访问上述地址序列的命中率。

(2)若cache数据区容量不变,而块大小改为4个字,则上述地址序列的命中情况又如何?

参考答案

(1)cache采用直接映射方式,其数据区容量为16行×1字/行=16字;主存被划分成1字/块,所以,主存块号= 字号。因此,映射公式为:cache行号= 主存块号mod 16 = 字号mod 16。

开始cache为空,所以第一次都是miss,以下是映射关系(字号-cache行号)和命中情况。

2-2: miss,3-3: miss,11-11: miss,16-0: miss, 21-5: miss,13-13: miss,64-0: miss、replace,

48-0: miss、replace,19-3: miss、replace,11-11: hit, 3-3: miss、replace,22-6: miss,

4-4: miss,27-11: miss、replace,6-6: miss、replace,11-11: miss、replace。

只有一次命中!

(2)cache采用直接映射方式,数据区容量不变,为16个字,每块大小为4个字,所以,cache共有4行;主存被划分为4个字/块,所以,主存块号= [字号/4]。因此,映射公式为:cache行号=

主存块号mod 4 = [字号/4] mod 4。

以下是映射关系(字号-主存块号-cache行号)和命中情况。

2-0-0: miss,3-0-0: hit,11-2-2: miss,16-4-0: miss、replace,21-5-1、13-3-3: miss,

64-16-0、48-12-0、19-4-0: miss, replace,11-2-2: hit,3-0-0: miss、replace,

22-5-1: hit,4-1-1: miss、replace,27-6-2: miss、replace,6-1-1: hit,11-2-2: miss、replace。

命中4次。

由此可见,块变大后,能有效利用访问的空间局部性,从而使命中率提高!

12.假定数组元素在主存按从左到右的下标顺序存放。试改变下列函数中循环的顺序,使得其数组元素的

访问与排列顺序一致,并说明为什么修改后的程序比原来的程序执行时间短。

int sum_array ( int a[N][N][N])

{

int i, j, k, sum=0;

for (i=0; i < N; i++)

for (j=0; j < N; j++)

for (k=0; k < N; k++) sum+=a[k][i][j];

return sum;

}

参考答案:

int sum_array ( int a[N][N][N])

{

int i, j, k, sum=0;

for (k=0; k < N; k++)

for (i=0; i < N; i++)

for (j=0; j < N; j++) sum+=a[k][i][j];

return sum;

}

修改后程序的数组元素的访问与排列顺序一致,使得空间局部性比原程序好,故执行时间更短。

13.分析比较以下三个函数的空间局部性,并指出哪个最好,哪个最差?

参考答案:

对于函数clear1,其数组访问顺序与在内存的存放顺序完全一致,因此,空间局部性最好。

对于函数clear2,其数组访问顺序在每个数组元素内跳越式访问,相邻两次访问的单元最大相差3个int型变量(假定sizeof(int)=4,则相当于12B),因此空间局部性比clear1差。若主存块大小比12B小的话,则大大影响命中率。

对于函数clear3,其数组访问顺序与在内存的存放顺序不一致,相邻两次访问的单元都相差6个int型变量(假定sizeof(int)=4,则相当于24B)因此,空间局部性比clear2还差。若主存块大小比24B 小的话,则大大影响命中率。

14.以下是计算两个向量点积的程序段:

float dotproduct (float x[8], float y[8])

{

float sum = 0.0;

int i,;

for (i = 0; i < 8; i++) sum += x[i] * y[i];

return sum;

}

要求:

(1)试分析该段代码中数组x和y的时间局部性和空间局部性,并推断命中率的高低。

(2)假定该段程序运行的计算机的数据cache采用直接映射方式,其数据区容量为32字节,每个主

存块大小为16字节。假定编译程序将变量sum和i分配给寄存器,数组x存放在00000040H

开始的32字节的连续存储区中,数组y紧跟在x后进行存放。试计算该程序数据访问的命中率,要求说明每次访问的cache命中情况。

(3)将上述(2)中的数据cache改用2-路组相联映射方式,块大小改为8字节,其他条件不变,则该程序数据访问的命中率是多少?

(4)在上述(2)中条件不变的情况下,如果将数组x定义为float[12],则数据访问的命中率是多少?

参考答案:

(1)数组x和y都按存放顺序访问,不考虑映射的情况下,空间局部性都较好,但都只被访问一次,故没有时间局部性。命中率的高低与块大小、映射方式等都有关,所以,无法推断命中率的高

低。

(2)cache采用直接映射方式,块大小为16字节,数据区大小为32字节,故cache共有2行。数组x的8个元素(共32B)分别存放在主存40H开始的32个单元中,共有2个主存块,其中x[0]

~ x[3]在第4块,x[4] ~ x[7]在第5块中;数组y的8个元素(共32B)分别在主存第6块和第7

块中。所以,x[0] ~ x[3]和y[0] ~ y[3]都映射到cache第0行;

每调入一块,装入4个数组元素,因为x[i]和y[i]总是映射到同一行,相互淘汰对方,故每次都

不命中,命中率为0.

(3)改用2路组相联,块大小为8B,则cache共有4行,每组两行,共两组。

数组x有4个主存块,x[0] ~ x[1]、x[2] ~ x[3],x[4] ~ x[5],x[6] ~ x[7]分别在第8~11块中;

数组y有4个主存块,y[0] ~ y[1]、y[2] ~ y[3],y[4] ~ y[5],y[6] ~ y[7]分别在第12~15块中;

每调入一块,装入两个数组元素,第二个数组元素的访问总是命中,故命中率为50%。

(4)若(2)中条件不变,数组x定义了12个元素,共有48B,使得y从第7块开始,因而,x[i]和y[i]就不会映射到同一个cache行中,即:x[0] ~ x[3]在第4块,x[4] ~ x[7]在第5块,x[8] ~ x[11]

在第6块中,

每调入一块,装入4个数组元素,第一个元素不命中,后面3个总命中,故命中率为75%。

15.以下是对矩阵进行转置的程序段:

typedef int array[4][4];

void transpose(array dst, array src)

{

int i, j;

for (i = 0; i < 4; i++)

for (j = 0; j < 4; j++)

dst[j][i] = src[i][j];

}

假设该段程序运行的计算机中sizeof(int)=4,且只有一级cache,其中L1 data cache的数据区大小为32B,采用直接映射、写回方式,块大小为16B,初始为空。数组dst从地址0000C000H开始存放,数组src从地址0000C040H开始存放。填写下表,说明数组元素src[row][col]和dst[row][col]映射到cache的哪一行,其访问是命中(hit)还是失效(miss)。若L1 data cache的数据区容量改为128B 时,重新填写表中内容。

参考答案:

从程序来看,数组访问过程如下:

src[0] [0]、dst[0] [0]、src[0] [1]、dst[1] [0]、src[0] [2]、dst[2] [0]、src[0] [3]、dst[3] [0]

src[1] [0]、dst[0] [1]、src[1] [1]、dst[1] [1]、src[1] [2]、dst[2] [1]、src[1] [3]、dst[3] [1]

src[2] [0]、dst[0] [2]、src[2] [1]、dst[1] [2]、src[2] [2]、dst[2] [2]、src[2] [3]、dst[3] [2]

src[3] [0]、dst[0] [3]、src[3] [1]、dst[1] [3]、src[3] [2]、dst[2] [3]、src[3] [3]、dst[3] [3]

因为块大小为16B,每个数组元素有4个字节,所以4个数组元素占一个主存块,因此每次总是调入4个数组元素到cache的一行。

当数据区容量为32B时,L1 data cache中共有2行。数组元素dst[0][i]、dst[2][i] 、src[0][i]、src[2][i] (i=0~3)都映射到cache第0行,数组元素dst[1][i]、dst[3][i] 、src[1][i]、src[3][i] (i=0~3)都映射到cache第1行。因此,从上述访问过程来看,src[0][0]所在的一个主存块(即存放src[0][i] (i=0~3)四个数组元素)刚调入cache后,dst[0][0]所在主存块又把src[0][0]替换掉了。……

当数据区容量为128B时,L1 data cache中共有8行。数组元素dst[0][i]、dst[1][i] 、dst[2][i]、dst[3][i]、src[0][i]、src[1][i]、src[2][i]、src[3][i] (i=0~3) 分别映射到cache第0、1、2、3、4、5、

6、7行。因此,不会发生数组元素的替换。每次总是第一个数组元素不命中,后面三个数组元素都命

中。

16.通过对方格中每个点设置相应的CMYK值就可以将方格图上相应的颜色。以下三个程序段都可实现对

一个8×8的方格中图上黄色的功能。

程序段A 程序段B 程序段C 假设cache的数据区大小为512B,采用直接映射,块大小为32B,存储器按字节编址,sizeof(int)=4。编译时变量i和j分配在寄存器中,数组square按行优先方式存放在000008C0H开始的连续区域中,主存地址为32位。要求:

(1)对三个程序段A、B、C中数组访问的时间局部性和空间局部性进行分析比较。

(2)画出主存中的数组元素和cache中行的对应关系图。

(3)计算三个程序段A、B、C中的写操作次数、写不命中次数和写缺失率。

参考答案:

(1)对于时间局部性来说:

程序段A、B和C中,都是每个数组元素只被访问一次,所以都没有时间局部性;

对于空间局部性来说:

程序段A访问顺序和存放顺序一致,所以,空间局部性好;

程序段B访问顺序和存放顺序不一致,所以,空间局部性不好;

程序段C虽然访问顺序和存放顺序一致,但同一个主存块有两次访问,所以空间局部性不好;(2)cache的行数为512B/32B=16;数组首地址为0000 0C80H,因为0000 0C80H正好是主存第1100100B(100)块的起始地址。所以数组从主存第100块开始存放,一个数组元素占4×4B=16B,所以每2个数组元素占用一个主存块。8×8的数组共占用32个主存块,正好是cache数据区大小的2倍。

主存中的数组元素与cache行的映射关系图如下:

(3)对于程序段A :

每两个数组元素(共涉及8次写操作)装入到一个cache 行中,总是第一次访问时未命中,后面7次都命中,所以,总的写操作次数为64 × 4 = 256次,写不命中次数为256×1/8 = 32次,因而写缺失率为12.5%。 对于程序段B :

每两个数组元素(共涉及8次写操作)装入到一个cache 行中,但总是只有一个数组元素(涉及4次写操作)在被淘汰之前被访问,并且总是第一次不命中,后面3次命中。即写不命中次数为256×1/4 = 64次,因而写缺失率为25%。 对于程序段C :

第一个循环共64次访问,每次装入两个数组元素,第一次不命中,第二次命中;第二个循环,共访问64×3次,每两个数组元素(共涉及6次写操作)装入到一个cache 行中,并且总是第一次不命中,后面5次命中。所以总的写不命中次数为32+(3×64)×1/6 = 64次,因而总缺失率为25%。

17. 假设某计算机的主存地址空间大小为64MB ,采用字节编址方式。其cache 数据区容量为4KB ,采用4

路组相联映射方式、LRU 替换和回写(write back )策略,块大小为64B 。请问:

(1)主存地址字段如何划分?要求说明每个字段的含义、位数和在主存地址中的位置。 (2)该cache 的总容量有多少位?

(3)若cache 初始为空,CPU 依次从0号地址单元顺序访问到4344号单元,重复按此序列共访问16次。

若cache 命中时间为1个时钟周期,缺失损失为10个时钟周期,则CPU 访存的平均时间为多少时钟周期? 参考答案:

(1)cache 的划分为:4KB = 212B = 24组×22行/组×26字节/行,所以,cache 组号(组索引)占4位。

主存地址划分为三个字段:高16位为标志字段、中间4位为组号、最低6位为块内地址。 即主存空间划分为:64MB = 226B = 216组群×24块/组群×26字节/块

(2)cache 共有64行,每行中有16位标志、1位有效位、1位修改(dirty)位、2位LRU 位,以及数

主存块号 100# 101# 102# 103#

128# 129# 130# 131#

0# 1# 2# 3# 15#

4# 5#

115# 114# 116#

Cache

据64B 。故总容量为64×(16+1+1+2+64×8)=34048位。

(3)因为每块为64B ,CPU 访问的单元范围为0~4344,共4345个单元,4345/64=67.89,所以CPU

访问的是主存前68块(第0~67块),也即CPU 的访问过程是对前68块连续访问16次,总访存次数为16×4345 = 69520。

cache 共有16组,每组4行,采用LRU 算法的替换情况如下图所示:

根据图中所示可知,第一次循环的每一块只有第一次未命中,其余都命中;以后15次循环中,有20块的第一字未命中,其余都命中。所以命中率p 为(69520–68–15×20)/69520 = 99.47%

平均访存时间为:Hit Time + (1–p) × Miss Penalty

=1+10×(1–p) = 1+0.0053×10 = 1.053个时钟周期

18. 假定某处理器可通过软件对高速缓存设置不同的写策略,那么,在下列两种情况下,应分别设置成什

么写策略?为什么?

(1)处理器主要运行包含大量存储器写操作的数据访问密集型应用。

(2)处理器运行程序的性质与(1)相同,但安全性要求高,不允许有任何数据不一致的情况发生。 参考答案:

(1)采用write back 策略较好,可减少访存次数。

(2)采用write through 策略较好,能保证数据的一致性。

19. 已知cache1采用直接映射方式,共16行,块大小为1个字,缺失损失为8个时钟周期;cache2也采用直

接映射方式,共4行,块大小为4个字,缺失损失为11个时钟周期。假定开始时cache 为空,采用字编址方式。要求找出一个访问地址序列,使得cache2具有更低的缺失率,但总的缺失损失反而比cache1大。 参考答案:

假设cache1和cache2的缺失次数分别为x 和y ,根据题意,x 和y 必须满足以下条件: 11×y > 8×x 且 x > y ,显然,满足该条件的x 和y 有许多,例如,x=4,y=3、x=5,y=4等等。 对于以下的访问地址序列:0,1,4,8,cache1缺失4次,而cache2缺失3次; 对于以下的访问地址序列:0,2,4,8,12,cache1缺失5次,而cache2缺失4次;

0 63

1

4344

128

4288 64 16次

1#

2#

67#

0# 65

68#

4352

对于以下的访问地址序列:0,3,4,8,12,16,20,cache1缺失7次,而cache2缺失6次;

如此等等,可以找出很多。

20.提高关联度通常会降低缺失率,但并不总是这样。请给出一个地址访问序列,使得采用LRU替换算法

的2-路组相联映射cache比具有同样大小的直接映射cache的缺失率更高。

参考答案:

2-路组相联cache的组数是直接映射cache的行数的一半,所以,可以找到一个地址序列A、B、C,使得:A映射到某一个cache行,B和C同时映射到另一个cache行,并且A、B、C映射到同一个cache组。这样,如果访存的地址序列为A、B、C、A、B、C、A、B、C …,则对于直接映射cache,其命中情况为:miss/miss/miss /hit/miss/miss /hit/miss/miss/… 命中率可达33.3%。

对于组相联cache,因为A、B、C映射到同一个组,每组只有2行,采用LRU替换算法,所以,每个地址处的数据刚调出cache就又被访问到,每次都是miss,命中率为0。

例如:假定直接映射cache为4行×1字/行,同样大小的2-路组相联cache为2组×2行/组×1字/行当访问序列为:0、2、4、0、2、4、0、2、4、…(局部块大小为3)时,则出现上述情况。

当访问的局部块大于组的大小时,可能会发生“颠簸”现象:刚被替换出去的数据又被访问,导致缺失率为100%!

21.假定有三个处理器,分别带有以下不同的cache:

cache1:采用直接映射方式,块大小为1个字,指令和数据的缺失率分别为4%和6%;

cache2:采用直接映射方式,块大小为4个字,指令和数据的缺失率分别为2%和4%;

cache3:采用2-路组相联映射方式,块大小为4个字,指令和数据的缺失率分别为2%和3%。

在这些处理器上运行相同的程序,该程序的CPI为2.0,其中有一半是访存指令。若缺失损失为(块大小+6)个时钟周期,处理器1和处理器2的时钟周期都为420ps,带有cache3的处理器3的时钟周期为450ps。请问:哪个处理器因cache缺失而引起的额外开销最大?哪个处理器执行速度最快?

参考答案:

假设所运行的程序共执行N条指令,每条访存指令仅读写一次内存数据,则在该程序执行过程中各处理器因cache缺失而引起的额外开销和执行时间计算如下。

对于处理器1:

额外开销为:N×(4% + 6%×50%)×(1+6) = 0.49 N个时钟周期

执行程序所需时间为:(N×2.0 +0.49N)×420ps = 1045.8N ps

对于处理器2:

额外开销为:N×(2%+4%×50%)×(4+6) = 0.40N个时钟周期

执行程序所需时间为:(N×2.0+0.40N)×420ps=1008N ps

对于处理器3:

额外开销为:N×(2%+3%×50%)×(4+6) = 0.35N个时钟周期

执行程序所需时间为:(N×2.0+0.35N)×450ps=1057.5N ps

由此可见,处理器1的cache缺失引起的额外开销最大,处理器2的执行速度最快。

22.假定某处理器带有一个数据区容量为256B的cache,其块大小为32B。以下C语言程序段运行在该处理

器上,sizeof(int) = 4,编译器将变量i, j, c, s都分配在通用寄存器中,因此,只要考虑数组元素的访存情况。若cache采用直接映射方式,则当s=64和s=63时,缺失率分别为多少?若cache采用2-路组相联映射方式,则当s=64和s=63时,缺失率又分别为多少?

int i, j, c, s, a[128];

……

for ( i = 0; i < 10000; i++ )

for ( j = 0; j < 128; j=j+s )

c = a[j];

参考答案:

已知块大小为32B,cache容量为256B = 8行×8字/行× 4B/字,仅考虑数组访问情况。

1) 直接映射,s=64: 访存顺序为a[0]、a[64] , a[0]、a[64], … … ,共循环10000次。这两个元素被映

射到同一个cache行中,每次都会发生冲突,因此缺失率为100%。

2) 直接映射,s=63: 访存顺序为a[0]、a[63]、a[126], a[0]、a[63]、a[126], … …共循环10000次。这

三个元素中后面两个元素因为映射到同一个cache行中,因此每次都会发生冲突,而a[0]不会发生冲突,故缺失率为67%。

3) 2-路组相联,s=64: 访存顺序为a[0]、a[64] , a[0]、a[64], … …, 共循环10000次。这两个元素虽

然映射到同一个cache组中,但可以放在该组不同cache行中,所以不会发生冲突,缺失率为0。

4) 2-路组相联,s=63: 访存顺序为a[0]、a[63]、a[126], a[0]、a[63]、a[126], … …共循环10000次。

这三个元素中后面两个元素虽映射到同一个cache组中,但可放在不同cache行中, 而a[0]不会发生冲突,故缺失率为0。

23.假定一个虚拟存储系统的虚拟地址为40位,物理地址为36位,页大小为16KB,按字节编址。若页表中

有有效位、存储保护位、修改位、使用位,共占4位,磁盘地址不在页表中,则该存储系统中每个进程的页表大小为多少?如果按计算出来的实际大小构建页表,则会出现什么问题?

参考答案:

因为每页大小有16KB,所以虚拟页数为240B/16KB=2(40-14)=226页。

物理页面和虚拟页面大小相等,所以物理页号的位数为36–14=22位。

页表项位数为:有效位+保护位+修改位+使用位+物理页号位数=4+22=26位。

为简化页表访问,每项大小取32位。因此,每个进程的页表大小为:226×32b=256MB。

如果按实际计算出的页表大小构建页表,则页表过大而导致页表无法一次装入内存。

24.假定一个计算机系统中有一个TLB和一个L1 data cache。该系统按字节编址,虚拟地址16位,物理地

址12位;页大小为128B,TLB为四路组相联,共有16个页表项;L1 data cache采用直接映射方式,块大小为4B,共16行。在系统运行到某一时刻时,TLB、页表和L1 data cache中的部分内容(用十六进制表示)如下:

组号标记页框号有效位标记页框号有效位标记页框号有效位标记页框号有效位

1

2

3

(a)TLB(四路组相联):四组、16个页表项

虚页号页框号有效位行索引标记有效位字节3 字节2 字节1 字节0

00 0

01 1

02 2

03 3

04 4

05 5

06 6

07 7

08 8

09 9

0A A

0B B

0C C

0D D

0E E

0F F

(b) 部分页表:(开始16项)(c) L1 data cache:直接映射,共16行,块大小为4B

请回答下列问题:

(1)虚拟地址中哪几位表示虚拟页号?哪几位表示页内偏移量?虚拟页号中哪几位表示TLB标记?

哪几位表示TLB索引?

(2)物理地址中哪几位表示物理页号?哪几位表示页内偏移量?

(3)主存(物理)地址如何划分成标记字段、行索引字段和块内地址字段?

(4)CPU从地址067AH中取出的值为多少?说明CPU读取地址067AH中内容的过程。

参考答案:

(1)16位虚拟地址中低7位为页内偏移量,高9位为虚页号;虚页号中高7位为TLB标记,低2位为TLB组索引。

(2)12位物理地址中低7位为页内偏移量,高5位为物理页号。

(3)12位物理(主存)地址中,低2位为块内地址,中间4位为cache行索引,高6位为标记。

(4)地址067AH=0000 0110 0111 1010B,所以,虚页号为0000011 00B,映射到TLB的第00组,将0000011B=03H与TLB第0组的四个标记比较,虽然和其中一个相等,但对应的有效位为0,

其余都不等,所以TLB缺失,需要访问主存中的慢表。直接查看0000011 00B =00CH处的页表

项,有效位为1,取出物理页号19H=11001B,和页内偏移111 1010B拼接成物理地址:11001 111 1010B。根据中间4位1110直接找到cache第14行(即:第E行),有效位为1,且标记为

33H=110011B,正好等于物理地址高6位,故命中。根据物理地址最低两位10,取出字节2中

的内容4AH=01001010B。

25.缓冲区溢出是指分配的某个内存区域(缓冲区)的大小比存放内容所需空间小。例如,在栈(stack)中

分配了一块空间用于存放某个过程中的一个字符串,结果字符串长度超过了分配空间的大小。黑客往往会利用缓冲区溢出来植入入侵代码。请说明可以采用什么措施来防止缓冲区溢出漏洞。

计算机系统结构题库

《计算机系统结构》题库 一.单项选择题(在下列每小题的四个备选答案中,只有一个答案是正确的,请把你认为是正确的答案填入题后的()内,每小题2分) 第一章: 1.计算机系统多级层次中,从下层到上层,各级相对顺序正确的应当是: A.汇编语言机器级---操作系统机器级---高级语言机器级 B.微程序机器级---传统机器语言机器级---汇编语言机器级 C.传统机器语言机器级---高级机器语言机器级---汇编语言机器级 D.汇编语言机器级---应用语言机器级---高级语言机器级 答案:B 分数:2 所属章节1—1 2.汇编语言源程序变成机器语言目标程序是经来实现的。 A. 编译程序解释 B. 汇编程序解释 C. 编译程序翻译 D. 汇编程序翻译 答案:D 分数:2 所属章节1—1 3.直接执行微指令的是: A. 汇编程序 B. 编译程序 C. 硬件 D. 微指令程序 答案:C 分数:2 所属章节1—1 4.对系统程序员不透明的是: A. Cache存储器 B. 系列机各档不同的数据通路宽度 C. 指令缓冲寄存器 D. 虚拟存储器 答案:D 分数:2 所属章节1—2 5.对应用程序员不透明的是: A. 先行进位链 B. 乘法器 C. 指令缓冲器 D. 条件码寄存器 答案:D 分数:2 所属章节1—2 6.对机器语言程序员透明的是: A. 中断字 B. 主存地址寄存器 C. 通用寄存器 D. 条件码 答案:B 分数:2 所属章节1—2 7.计算机系统结构不包括: A. 主存速度 B. 机器工作状态 C. 信息保护 D. 数据表示 答案:A 分数:2 所属章节1—2 8.对计算机系统结构透明的是: A. 字符行运算指令 B. 是否使用通道行I/O处理机 C. 虚拟存储器 D. VLSI技术 答案:D 分数:2 所属章节1—2 9.对汇编语言程序员透明的是: A.I/O方式中的DMA访问方式 B. 浮点数据表示 C. 访问方式保护 D 程序性中断. 答案:A 分数:2 所属章节1—2 10.属计算机系统结构考虑的应是:

计算机系统结构课后答案

1、数据结构和机器的数据表示之间是什么关系?确定和引入数据表示的基本原则是什么? 答:数据表示是能由硬件直接识别和引用的数据类型。数据结构反映各种数据元素或信息单元之间的结构关系。数据结构要通过软件映象变换成机器所具有的各种数据表示实现,所以数据表示是数据结构的组成元素。不同的数据表示可为数据结构的实现提供不同的支持,表现在实现效率和方便性不同。数据表示和数据结构是软件、硬件的交界面。 除基本数据表示不可少外,高级数据表示的引入遵循以下原则:(1)看系统的效率有否提高,是否养活了实现时间和存储空间。(2)看引入这种数据表示后,其通用性和利用率是否高。 2、标志符数据表示与描述符数据表示有何区别?描述符数据表示与向量数据表示对向量数据结构所提供的支持有什么不同? 答:标志符数据表示指将数据类型与数据本身直接联系在一起,让机器中每个数所都带类型樗位。其优点是:(1)简化了指令系统和程序设计;(2)简化了编译程序;(3)便于实现一致性校验;(4)能由硬件自动变换数据类型;(5)支持数据库系统的实现与数据类型无关;(6)为软件调试和应用软件开发提供支持。缺点是:(1)会增加程序所点的主存空间;(2)在微观上对机器的性能(运算速度)不利。 数据描述符指数据的描述与数据分开存放,描述所访问的数据是整块还是单个的,及访问该数据块或数据元素的地址住处它具备标志符数据表示的优点,并减少了标志符数据表示所占的空间,为向量和数组结构的实现提供支持。 数据描述符方法优于标志符数据表示,数据的描述与数据分开,描述所访问的数据是整块还是单个的,及访问该数据块或数据元素的地址信息,减少了樗符数据表示所占的窨。用描述符方法实现阵列数据的索引比用变址方法实现要方便,且便于检查出程序中的阵列越界错误。但它不能解决向量和数组的高速运算问题。而在有向量、数组数据表示的向量处理机上,硬件上设置有丰富的赂量或阵列运算指令,配有流水或阵列方式处理的高速运算器,不仅能快速形成向量、数组的元素地址,更重要的是便于实现把向量各元素成块预取到中央处理机,用一条向量、数组指令流水或同时对整个向量、数组高速处理.如让硬件越界判断与元素运算并行。这些比起用与向量、阵列无关的机器语言和数据表示串行实现要高效的多。 3、堆栈型机器与通用寄存器型机器的主要区别是什么?堆栈型机器系统结构为程序调用的哪些操作提供了支持? 答:有堆栈数据表示的机器称为堆栈机器。它与一般通用寄存器型机器不同。通用寄存器型

计算机组织与系统结构第四章习题答案

第 4 章 习 题 答 案 3、 已知某机主存空间大小为64KB,按字节编址。要求: (1)若用1K×4位的SRAM 芯片构成该主存储器,需要多少个芯片? (2)主存地址共多少位?几位用于选片?几位用于片内选址? (3)画出该存储器的逻辑框图。 参考答案: (1)64KB / 1K×4位 = 64×2 = 128片。 (2)因为就是按字节编址,所以主存地址共16位,6位选片,10位片内选址。 (3)显然,位方向上扩展了2倍,字方向扩展了64倍。下图中片选信号CS 为高电平有效。 A 15 A 10A 9 A 0 D 0 D 7 … … WE … 4、 用64K×1位的DRAM 芯片构成256K×8位的存储器。要求: (1) 计算所需芯片数,并画出该存储器的逻辑框图。 (2) 若采用异步刷新方式,每单元刷新间隔不超过2ms,则产生刷新信号的间隔就是多少时间?若采用集 中刷新方式,则存储器刷新一遍最少用多少读写周期? 参考答案: (1)256KB / 64K×1位 = 4×8 = 32片。存储器逻辑框图见下页(图中片选信号CS 为高电平有效)。 (2)因为每个单元的刷新间隔为2ms,所以,采用异步刷新时,在2ms 内每行必须被刷新一次,且仅被刷新 一次。因为DRAM 芯片存储阵列为64K=256×256,所以一共有256行。因此,存储器控制器必须每隔2ms/256=7、8μs 产生一次刷新信号。采用集中刷新方式时,整个存储器刷新一遍需要256个存储(读写)周期,在这个过程中,存储器不能进行读写操作。

A 17 A 16A 15 A 0 D 0 D 7 … …… 5、 用8K×8位的EPROM 芯片组成32K×16位的只读存储器,试问: (1)数据寄存器最少应有多少位? (2) 地址寄存器最少应有多少位? (3) 共需多少个EPROM 芯片? (4) 画出该只读存储器的逻辑框图。 参考答案: (1)数据寄存器最少有16位。 (2)地址寄存器最少有:15位(若按16位的字编址);16位(若按字节编址)。 (3)共需要 32K×16位 / 8K×8位= 4×2 = 8片。 (4)该只读存储器的逻辑框图如下(假定按字编址,图中片选信号CS 为高电平有效)。 A 14A 13A 12 A 0 D 0 D 15 … WE … D 8D 7 … 6. 某计算机中已配有0000H ~7FFFH 的ROM 区域,现在再用8K×4位的RAM 芯片形成32K×8位的存 储区域,CPU 地址总线为A0-A15,数据总线为D0-D7,控制信号为R/W#(读/写)、MREQ#(访存)。要求说明地址译码方案,并画出ROM 芯片、RAM 芯片与CPU 之间的连接图。假定上述其她条件不变,只就是CPU 地址线改为24根,地址范围000000H ~007FFFH 为ROM 区,剩下的所有地址空间都用8K×4位的RAM 芯片配置,则需要多少个这样的RAM 芯片? 参考答案: CPU 地址线共16位,故存储器地址空间为0000H ~FFFFH,其中,8000H ~FFFFH 为RAM 区,共

计算机系统结构习题解答

《计算机系统结构》习题解答 第一章(P33) 1.7 (1)从指定角度来看,不必要了解的知识称为透明性概念。 1.8见下表,“√”为透明性概念,“P ”表示相关课文页数。 1.12 已知Se=20 , 求作Fe-Sn 关系曲线。 将Se 代入Amdahl 定律得 e n F S 20 19 11 -= 1.13 上式中令Sn=2,解出Fe=10/19≈0.526 1.14 上式中令Sn=10,解出Fe=18/19≈0.947 1.15 已知两种方法可使性能得到相同的提高,问哪一种方法更好。 (1)用硬件组方法,已知Se=40,Fe=0.7,解出Sn=40/12.7≈3.1496(两种方法得到的相同性能) (2)用软件组方法,已知Se=20,Sn=40/12.7,解出Fe=27.3/38≈0.7184(第二种方法的百分比) (3)结论:软件组方法更好。因为硬件组需要将Se 再提高100%(20→40),而软件组只需将Fe 再提高1.84%(0.7→0.7184)。 Sn 20 1

1.17 57.34 .15 5 9.01.01≈= + = n S 1.18 记f ── 时钟频率,T=1/f ── 时钟周期,B ── 带宽(Byte/s )。 方案一:)/(44 11s Byte f T B =?= 方案二:)/(5.3421 %252%752s Byte f T B =??+?= 1.19 由各种指令条数可以得到总条数,以及各百分比,然后代公式计算。 ∑===4 1 510i i IC IC (1)∑==?+?+?+?=? = 4 1 55.108.0215.0232.0245.01)(i i i IC IC CPI CPI (2)806.2555.140 10 55.11040106 66≈=??=?=CPI f MIPS (3)(秒)003876.040055 .110 6 ≈=?= MIPS IC T 1.21 (1)24.21.0812.0418.026.01=?+?+?+?=CPI (2)86.171024.21040106 6 6≈??=?= CPI f MIPS 1.24 记Tc ── 新方案时钟周期,已知CPI = CPI i = 1 原时间 = CPI × IC × 0.95Tc = 0.95IC ×Tc 新时间 = (0.3×2/3+0.7)× IC × Tc = 0.9IC ×Tc 二者比较,新时间较短。 第二章(P124) 2.3(忽略P124倒1行 ~ P125第8行文字,以简化题意)已知2种浮点数,求性能指标。 此题关键是分析阶码、尾数各自的最大值、最小值。 原图为数据在内存中的格式,阶码的小数点在其右端,尾数的小数点在其左端,遵守规格化要求。

2010年4月自考计算机系统结构试题及答案

全国2010年4月自学考试计算机系统结构试题 课程代码:02325 一、单项选择题(本大题共10小题,每小题1分,共10分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均不得分。 1.在计算机系统结构设计中,提高软件功能实现的比例可( ) A.提高解题速度B.减少需要的存储器容量 C.提高系统的灵活性D.提高系统的性能价格比 2.浮点数表示的尾数的基r m=16,尾数长度p=8,可表示的规格化最大正尾数的值是( ) A.1/256 B.1/2 C.15/16 D.255/256 3.下列数据存储空间为隐含寻址方式的是( ) A.CPU中的通用寄存器B.主存储器 C.I/O接口中的寄存器D.堆栈 4.当计算机系统执行通道程序完成输入输出工作时,执行通道程序的是( ) A.CPU B.通道 C.CPU和通道D.指定的外设 5.下列有关中断的叙述正确的是( ) A.中断响应的次序是由硬件决定的B.中断处理的次序是由硬件决定的 C.中断处理的次序是不可改的D.中断响应的次序是可灵活改变的 6.与虚拟存储器的等效访问速度无关 ..的是( ) A.访存页地址流B.页面替换算法 C.主存的容量D.辅存的容量 7.非线性流水线的特征是( ) A.一次运算中使用流水线中的多个功能段 B.一次运算中多次使用流水线中的某些功能段 C.流水线中某些功能段在各次运算中的作用不同 D.流水线的各功能段在不同的运算中可以有不同的连接 8.属于集中式共享存储器结构的SIMD计算机是( ) A.ILLIAC IV B.BSP C.CM-2 D.MP-1 1

计算机系统结构课后答案unit3

第3章总线、中断与输入输出系统 3.1.简要举出集中式串行链接,定时查询和独立请求3种总线控制方式的优缺点。同时分析硬件产生故障时通讯的可靠性。 答:集中式串行链连接方式。其过程为: ①所有部件都经公共的“总线请求”线向总线控制器发使用总线申请。 ②当“总线忙”信号未建立时,“总线请求”才被总线控制器响应,送出“总线可用”信号,它串行地通过每个部件。 ③如果某部件未发过“总线请求”,则它将“总线可用”信号往下一部件转,如果某部件发过“总线请求”,则停止“总线可用”信号的传送。 ④该部件建立“总线忙”,并除去“总线请求”,此时该部件获得总线使用权,准备传送数据。 ⑤数据传送期间,“总线忙”维持“总线可用”的建立。 ⑥传送完成后,该部件去除“总线忙”信号和“总线可用”信号。 ⑦当“总线请求”再次建立时,就开始新的总线分配过程。 优点:①选择算法简单;②控制总线数少;③可扩充性好;④可靠性高。 缺点:①对“总线可用”线及其有关电路失效敏感,②不灵活;③总线中信号传送速度慢。 集中式定时查询方式,过程: ①总线上每个部件通过“总线请求”发请求。 ②若“总线忙”信号未建立,则计数器开始计数,定时查询个部件,以确定是谁发的请求。 ③当查询线上的计数值与发出请求的部件号一致时,该部件建立“总线忙”,计数停止,查询也停止。除去“总线请求”,该部件获得总线使用权。 ④“总线忙”维持到数据传送完毕。 ⑤数据传送完,去除“总线忙”。 ⑥当“总线请求”线上有新的请求,就开始下一个总线分配过程。 优点:①优先次序灵活性强;②可靠性高。 缺点:①控制线数较多;②扩展性较差;③控制较为复杂;④总线分配受限于计数信号,不能很高。 集中式独立请求方式,过程:

(完整版)计算机网络_第4章习题答案

第四章练习题答案 4.01局域网标准的多样性体现在4个方面的技术特性,请简述之。 答: 局域网技术一经提出便得到了广泛应用,各计算机和网络设备生产厂商纷纷提出自己的局域网标准,试图抢占和垄断局域网市场。因此,局域网标准一度呈现出特有的多样性。局域网标准的多样性体现在局域网的四个技术特性: (1)传输媒体传输媒体指用于连接网络设备的介质类型,常用的有双绞线、同轴电缆、光纤,以及微波、红外线和激光等无线传输媒体。目前广泛应用的传输媒体是双绞线。随着无线局域网的广泛应用,无线正得到越来越多的应用。 (2)传输技术传输技术指借助传输媒体进行数据通信的技术,常用的有基带传输和宽带传输两种。传输技术主要包括信道编码、调制解调以及复用技术等,属于物理层研究的范畴。 (3)网络拓扑网络拓扑指组网时计算机和通信线缆连接的物理结构和形状。常用的有星形、总线形和环形。不同的网络拓扑需要采用不同的数据发送和接收方式。 (4)媒体访问控制方法访问控制方法指多台计算机对传输媒体的访问控制方法,这里的访问,是指通过传输媒体发送和接收数据。常用的有随机争用、令牌总线和令牌环等访问控制方法。目前局域网中广泛采用的是一种受控的随机争用方法,即载波监听多点接入/冲突检测(CSMA/CD)方法。 4.02逻辑链路控制(LLC)子层有何作用?为什么在目前的以太网网卡中没有LLC子层的功能? 答: 在局域网发展的早期,有多种类型的局域网,如802.4令牌总线网、802.5令牌环网等。为了使数据链路层能更好地适应多种局域网标准,IEEE 802委员会在局域网的数据链路层定义了两个子层,即逻辑链路控制LLC (Logical Link Control)子层和媒体接入控制MAC (Medium Access control)子层。与接入传输媒体有关的内容放在MAC子层,而与传输媒体无关的链路控制部分放在LLC子层。这样可以通过LLC子层来屏蔽底层传输媒体和访问控制方法的异构性,实现多种类型局域网之间的互操作。 随着以太网技术的发展,以太网得到了越来越广泛的应用。到了20世纪90年代后,以太网在局域网市场中取得了垄断地位。实际应用的局域网类型日趋单一化,因此LLC子层的作用已经不大了,很多厂商生产的网卡上仅实现了MAC协议。 4.03简述以太网CSMA/CD的工作原理。 答: CSMA/CD采用分布式控制方法,总线上的各个计算机通过竞争的方式,获得总线的使用权。只有获得总线使用权的计算机才能向总线上发送数据,而发送的数据能被连在总线上的所有计算机接收到。 CSMA/CD的具体含义解释如下: (1)载波监听是指每个计算机在发送数据之前先要检测总线上是否有其他计算机在发送数据,如果有,则暂时不发送数据,以减少发生冲突的机会。 (2)多点接入是指在总线式局域网中,有多台计算机连接在一根总线上,共享总线的信道资源。 (3)冲突检测是指发送数据的计算机在发送数据的同时,还必须监听传输媒体,判断

计算机系统结构_课后答案

习题一 1、解释下列术语 计算机系统的外特性:通常所讲的计算机系统结构的外特性是指机器语言程序员或编译程序编写者所看到的外特性,即由他们所看到的计算机的基本属性(概念性结构和功能特性)。 计算机系统的内特性:计算机系统的设计人员所看到的基本属性,本质上是为了将有关软件人员的基本属性加以逻辑实现的基本属性。 模拟:模拟方法是指用软件方法在一台现有的计算机上实现另一台计算机的指令系统。 可移植性:在新型号机出台后,原来开发的软件仍能继续在升级换代的新型号机器上使用,这就要求软件具有可兼容性,即可移植性。可兼容性是指一个软件可不经修改或只需少量修改,便可由一台机器移植到另一台机器上运行,即同一软件可应用于不同环境。 Amdahl 定律:系统中对于某一部件采用某种更快的执行方式所能获得的系统性能改进程度,取决于这种执行方式被使用的频度或占总执行时间的比例。 虚拟机(Virtual Machine ):指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。 6、 7、假定求浮点数平方根的操作在某台机器上的一个基准测试程序中占总执行时间的20%,为了增强该操作的性能,可采用两种不同的方法:一种是增加专门的硬件,可使求浮点数平方根操作的速度提高为原来的20倍;另一种方法是提高所有浮点运算指令的速度,使其为原来的2倍,而浮点运算指令的执行时间在总执行时间中占30%。试比较这两种方法哪一种更好些。 答:增加硬件的方法的加速比23.120 /2.0)2.01(1 1=+-= p S , 另一种方法的加速比176.12 /3.0)3.01(1 2=+-=p S ,经计算可知Sp1>Sp2第一种方 法更好些。 9、假设高速缓存Cache 的工作速度为主存的5倍,且Cache 被访问命中的概率

计算机体系结构试题汇总

计算机系统结构 姓名:学号: 一、简答题(每小题10分,共20分) 1.简述使用物理地址进行DMA存在的问题,及其解决办法。 2.从目的、技术途径、组成、分工方式、工作方式等5个方面对同构型多处理机和异构型多处理机做一比较(列表)。 二、(60分)现有如下表达式: Y=a ×X 其中:X和Y是两个有64个元素的32位的整数的向量,a为32位的整数。假设在存储器中,X和Y的起始地址分别为1000和5000,a的起始地址为6000。 1.请写出实现该表达式的MIPS代码。 2.假设指令的平均执行时钟周期数为5,计算机的主频为500 MHz,请计算上述MIPS 代码(非流水化实现)的执行时间。 3.将上述MIPS代码在MIPS流水线上(有正常的定向路径、分支指令在译码段被解析出来)执行,请以最快执行方式调度该MIPS指令序列。注意:可以改变操作数,但不能改变操作码和指令条数。画出调度前和调度后的MIPS代码序列执行的流水线时空图,计算调度前和调度后的MIPS代码序列执行所需的时钟周期数,以及调度前后的MIPS流水线执行的加速比。 4.根据3的结果说明流水线相关对CPU性能的影响。 三、(20分)请分析I/O对于性能的影响有多大?假设: 1.I/O操作按照页面方式进行,每页大小为16 KB,Cache块大小为64 B;且对应新页的地址不在Cache中;而CPU不访问新调入页面中的任何数据。 2.Cache中95%被替换的块将再次被读取,并引起一次失效;Cache使用写回方法,平均50%的块被修改过;I/O系统缓冲能够存储一个完整的Cache块。 3.访问或失效在所有Cache块中均匀分布;在CPU和I/O之间,没有其他访问Cache 的干扰;无I/O时,每1百万个时钟周期中,有15,000次失效;失效开销是30个时钟周期。如果替换块被修改过,则再加上30个周期用于写回主存。计算机平均每1百万个周期处理一页。

完整版计算机体系结构课后习题原版答案_张晨曦著

第1章计算机系统结构的基本概念 (1) 第2章指令集结构的分类 (10) 第3章流水线技术 (15) 第4章指令级并行 (37) 第5章存储层次 (55) 第6章输入输出系统 (70) 第7章互连网络 (41) 第8章多处理机 (45) 第9章机群 (45) 第1章计算机系统结构的基本概念 1.1 解释下列术语 层次机构:按照计算机语言从低级到高级的次序,把计算机系统按功能划分成多级层次结构,每一层以一种不同的语言为特征。这些层次依次为:微程序机器级,传统机器语言机器级,汇编语言机器级,高级语言机器级,应用语言机器级等。 虚拟机:用软件实现的机器。 翻译:先用转换程序把高一级机器上的程序转换为低一级机器上等效的程序,然后再在这低一级机器上运行,实现程序的功能。

解释:对于高一级机器上的程序中的每一条语句或指令,都是转去执行低一级机器上的一段等效程序。执行完后,再去高一级机器取下一条语句或指令,再进行解释执行,如此反复,直到解释执行完整个程序。 计算机系统结构:传统机器程序员所看到的计算机属性,即概念性结构与功能特性。 在计算机技术中,把这种本来存在的事物或属性,但从某种角度看又好像不存在的概念称为透明性。 计算机组成:计算机系统结构的逻辑实现,包含物理机器级中的数据流和控制流的组成以及逻辑设计等。 计算机实现:计算机组成的物理实现,包括处理机、主存等部件的物理结构,器件的集成度和速度,模块、插件、底板的划分与连接,信号传输,电源、冷却及整机装配技术等。 系统加速比:对系统中某部分进行改进时,改进后系统性能提高的倍数。 Amdahl定律:当对一个系统中的某个部件进行改进后,所能获得的整个系统性能的提高,受限于该部件的执行时间占总执行时间的百分比。 程序的局部性原理:程序执行时所访问的存储器地址不是随机分布的,而是相对地簇聚。包括时间局部性和空间局部性。

(完整版)计算机系统结构试题及答案

计算机系统结构复习题 单选及填空: 计算机系统设计的主要方法 1、由上往下的设计(top-down) 2、由下往上的设计(bottom-up) 3、从中间开始(middle-out) Flynn分类法把计算机系统的结构分为以下四类: (1)单指令流单数据流 (2)单指令流多数据流 (3)多指令流单数据流 (4) 多指令流多数据流 堆栈型机器:CPU 中存储操作数的单元是堆栈的机器。 累加器型机器:CPU 中存储操作数的单元是累加器的机器。 通用寄存器型机器:CPU 中存储操作数的单元是通用寄存器的机器。 名词解释: 虚拟机:用软件实现的机器叫做虚拟机,但虚拟机不一定完全由软件实现,有些操作可以由硬件或固件(固件是指具有软件功能的固件)实现。 系列机:由同一厂家生产的具有相同系统结构、但具有不同组成和实现的一系列不同型号的计算机。 兼容机:它是指由不同公司厂家生产的具有相同系统结构的计算机。 流水线技术:将一个重复的时序过程,分解成为若干个子过程,而每一个子过程都可有效地在其专用功能段上与其它子过程同时执行。 单功能流水线:指流水线的各段之间的连接固定不变、只能完成一种固定功能的流水线。 多功能流水线:指各段可以进行不同的连接,以实现不同的功能的流水线。 顺序流水线:流水线输出端任务流出的顺序与输入端任务流入的顺序完全相同。 乱序流水线:流水线输出端任务流出的顺序与输入端任务流入的顺序可以不同,允许后进入流水线的任务先完成。这种流水线又称为无序流水线、错序流水线、异步流水线。 吞吐率:在单位时间内流水线所完成的任务数量或输出结果的数量。 指令的动态调度:

是指在保持数据流和异常行为的情况下,通过硬件对指令执行顺序进行重新安排,以提高流水线的利用率且减少停顿现象。是由硬件在程序实际运行时实施的。 指令的静态调度: 是指依靠编译器对代码进行静态调度,以减少相关和冲突。它不是在程序执行的过程中、而是在编译期间进行代码调度和优化的。 超标量: 一种多指令流出技术。它在每个时钟周期流出的指令条数不固定,依代码的具体情况而定,但有个上限。 超流水:在一个时钟周期内分时流出多条指令。 多级存储层次: 采用不同的技术实现的存储器,处在离CPU不同距离的层次上,各存储器之间一般满足包容关系,即任何一层存储器中的内容都是其下一层(离CPU更远的一层)存储器中内容的子集。目标是达到离CPU最近的存储器的速度,最远的存储器的容量。 写直达法: 在执行写操作时,不仅把信息写入Cache中相应的块,而且也写入下一级存储器中相应的块。写回法: 只把信息写入Cache中相应块,该块只有被替换时,才被写回主存。 集中式共享多处理机: 也称为对称式共享存储器多处理SMP。它一般由几十个处理器构成,各处理器共享一个集中式的物理存储器,这个主存相对于各处理器的关系是对称的, 分布式共享多处理机: 它的共享存储器分布在各台处理机中,每台处理机都带有自己的本地存储器,组成一个“处理机-存储器”单元。但是这些分布在各台处理机中的实际存储器又合在一起统一编址,在逻辑上组成一个共享存储器。这些处理机存储器单元通过互连网络连接在一起,每台处理机除了能访问本地存储器外,还能通过互连网络直接访问在其他处理机存储器单元中的“远程存储器”。 多Cache一致性: 多处理机中,当共享数据进入Cache,就可能出现多个处理器的Cache中都有同一存储器块的副本,要保证多个副本数据是一致的。 写作废协议: 在处理器对某个数据项进行写入之前,它拥有对该数据项的唯一的访问权 。 写更新协议: 当一个处理器对某数据项进行写入时,它把该新数据广播给所有其它Cache。这些Cache用该新数据对其中的副本进行更新。 机群:是一种价格低廉、易于构建、可扩放性极强的并行计算机系统。它由多台同构或异构

计算机网络课后习题参考答案第四章

第四章网络层 1.网络层向上提供的服务有哪两种?是比较其优缺点。 网络层向运输层提供“面向连接”虚电路(Virtual Circuit)服务或“无连接”数据报服务 前者预约了双方通信所需的一切网络资源。优点是能提供服务质量的承诺。即所传送的分组不出错、丢失、重复和失序(不按序列到达终点),也保证分组传送的时限,缺点是路由器复杂,网络成本高; 后者无网络资源障碍,尽力而为,优缺点与前者互易 2.网络互连有何实际意义?进行网络互连时,有哪些共同的问题需要解决? 网络互联可扩大用户共享资源范围和更大的通信区域 进行网络互连时,需要解决共同的问题有: 不同的寻址方案 不同的最大分组长度 不同的网络接入机制 不同的超时控制 不同的差错恢复方法 不同的状态报告方法 不同的路由选择技术 不同的用户接入控制 不同的服务(面向连接服务和无连接服务) 不同的管理与控制方式 3.作为中间设备,转发器、网桥、路由器和网关有何区别? 中间设备又称为中间系统或中继(relay)系统。 物理层中继系统:转发器(repeater)。 数据链路层中继系统:网桥或桥接器(bridge)。 网络层中继系统:路由器(router)。 网桥和路由器的混合物:桥路器(brouter)。 网络层以上的中继系统:网关(gateway)。 4.试简单说明下列协议的作用:IP、ARP、RARP和ICMP。 IP协议:实现网络互连。使参与互连的性能各异的网络从用户看起来好像是一个统一的网络。网际协议IP是TCP/IP体系中两个最主要的协议之一,与IP协议配套使用的还有四个协议。 ARP协议:是解决同一个局域网上的主机或路由器的IP地址和硬件地址的映射问题。RARP:是解决同一个局域网上的主机或路由器的硬件地址和IP地址的映射问题。 ICMP:提供差错报告和询问报文,以提高IP数据交付成功的机会 因特网组管理协议IGMP:用于探寻、转发本局域网内的组成员关系。

计算机系统结构课后习题四、五答案

习题四 1.教材P88 存储层次的访问效率e计算公式。 e=T A1/(H T A1+(1-H) T A2) e H T A1+ e(1-H) T A2= T A1 H T A1+ (1-H) T A2= T A1/ e H T A1 -H T A2= T A1/ e- T A2 H (T A1 - T A2) = T A1/ e- T A2 H = T A1/ e- T A2/ (T A1 - T A2) H = T A1(1/ e- T A2/ T A1)/ T A1 (1- T A2/ T A1) H = (1/ e- T A2/ T A1)/ (1- T A2/ T A1) 把题意的条件带入,命中率H=(1/ e- T A2/ T A1)/ (1- T A2/ T A1) =(1/ 0.8- 10-2/ 10-7)/ (1- 10-2/ 10-7) =0.999999975 实际上,这样高的命中率是极难达到的。 在主辅存之间增设一级存储器,让其速度介于主存辅存之间,让主存与中间级的访问时间比为1:100,中间级与辅存之间的访问时间比为1:1000,将它们配上相应辅助软硬件,组成一个三级存储层次,这样,可以使第1级主存的命中率降低到 H=(1/ 0.8- 10-5/ 10-7)/ (1- 10-5/ 10-7) =0.997 1.教材P84 每个存储周期能访问到的平均字数 B=(1-(1-λ)m)/λ=(1-0.7532)/0.25 ≈4 既每个存储周期能访问到的平均字数为4。 若将λ=25%,m=16代入得

B=(1-(1-λ)m)/λ=(1-0.7516)/0.25 =3.96 既每个存储周期能访问到的平均字数为3.96。 可见,模数m不宜太大,否则性能改进不大。 3.教材P81。m个存储体并行的最大频宽B m=W*m/T M,根据题意,实际频宽要低于最大频宽。即实际频宽≤0.6最大频宽。 4*106B/s≤0.6*4 B*m/(2*10-6 s) 4≤0.6* m*4/2 2≤0.6* m 3.333≤ m m取2的幂,即m为4。 4.教材P91。根据题意,画出页表。 虚存页号实页号装入位 0 3 1 1 1 1 2 2 0 3 3 0 4 2 1 5 1 0 6 0 1 7 0 0 ⑴发生页面失效的全部虚页号就是页映像表中所有装入位为0的行所对应的虚页号的集合。本题为2,3,5,7。 ⑵按以下虚地址计算主存实地址的情况列表 虚地址虚存 页号页内位移装入 位 实页号页内位移实地址 0 0 0 1 3 0 (3*1024+0)3072 3728(3*1024+656) 3 656 0 页面失效页面失效无 1023(0*1024+1023)0 1023 1 3 1023 (3*1024+1023)4095 1024(1*1024+0) 1 0 1 1 0 (1*1024+0)1024 2055(2*1024+7) 2 7 0 页面失效页面失效无 7800(7*1024+632)7 632 0 页面失效页面失效无

计算机系统结构考试题库及答案

计算机系统结构试题及答案 一、选择题(50分,每题2分,正确答案可能不只一个,可单选 或复选) 1.(CPU周期、机器周期)是内存读取一条指令字的最短时间。 2.(多线程、多核)技术体现了计算机并行处理中的空间并行。 3.(冯?诺伊曼、存储程序)体系结构的计算机把程序及其操作数 据一同存储在存储器里。 4.(计算机体系结构)是机器语言程序员所看到的传统机器级所具 有的属性,其实质是确定计算机系统中软硬件的界面。 5.(控制器)的基本任务是按照程序所排的指令序列,从存储器取 出指令操作码到控制器中,对指令操作码译码分析,执行指令操作。 6.(流水线)技术体现了计算机并行处理中的时间并行。 7.(数据流)是执行周期中从内存流向运算器的信息流。 8.(指令周期)是取出并执行一条指令的时间。 9.1958年开始出现的第二代计算机,使用(晶体管)作为电子器件。 10.1960年代中期开始出现的第三代计算机,使用(小规模集成电路、 中规模集成电路)作为电子器件。 11.1970年代开始出现的第四代计算机,使用(大规模集成电路、超 大规模集成电路)作为电子器件。 12.Cache存储器在产生替换时,可以采用以下替换算法:(LFU算法、 LRU算法、随机替换)。

13.Cache的功能由(硬件)实现,因而对程序员是透明的。 14.Cache是介于CPU和(主存、内存)之间的小容量存储器,能高 速地向CPU提供指令和数据,从而加快程序的执行速度。 15.Cache由高速的(SRAM)组成。 16.CPU的基本功能包括(程序控制、操作控制、时间控制、数据加 工)。 17.CPU的控制方式通常分为:(同步控制方式、异步控制方式、联合 控制方式)反映了时序信号的定时方式。 18.CPU的联合控制方式的设计思想是:(在功能部件内部采用同步控 制方式、在功能部件之间采用异步控制方式、在硬件实现允许的情况下,尽可能多地采用异步控制方式)。 19.CPU的同步控制方式有时又称为(固定时序控制方式、无应答控 制方式)。 20.CPU的异步控制方式有时又称为(可变时序控制方式、应答控制 方式)。 21.EPROM是指(光擦可编程只读存储器)。 22.MOS半导体存储器中,(DRAM)可大幅度提高集成度,但由于(刷 新)操作,外围电路复杂,速度慢。 23.MOS半导体存储器中,(SRAM)的外围电路简单,速度(快),但 其使用的器件多,集成度不高。 24.RISC的几个要素是(一个有限的简单的指令集、CPU配备大量的 通用寄存器、强调对指令流水线的优化)。

计算机体系结构课后答案

计算机体系结构课后答案

计算机体系结构课后答案 【篇一:计算机体系结构习题(含答案)】 1、尾数用补码、小数表示,阶码用移码、整数表示,尾数字长p=6(不包括符号位),阶码字长q=6(不包括符号位),为数基值rm=16,阶码基值re=2。对于规格化浮点数,用十进制表达式写出如下数据(对于前11项,还要写出16进值编码)。 (1)最大尾数(8)最小正数 (2)最小正尾数(9)最大负数 (3)最小尾数(10)最小负数 (4)最大负尾数(11)浮点零 (5)最大阶码(12)表数精度 (6)最小阶码(13)表数效率 (7)最大正数(14)能表示的规格化浮点数个数 2.一台计算机系统要求浮点数的精度不低于10-7.2,表数范围正数不小于1038,且正、负数对称。尾数用原码、纯小数表示,阶码用移码、整数表示。 (1) 设计这种浮点数的格式 (2) 计算(1)所设计浮点数格式实际上能够表示的最大正数、最大负数、表数精度和表数效率。 3.某处理机要求浮点数在正数区的积累误差不大于2-p-1 ,其中,p是浮点数的尾数长度。 (1) 选择合适的舍入方法。

(2) 确定警戒位位数。 (3) 计算在正数区的误差范围。 4.假设有a和b两种不同类型的处理机,a处理机中的数据不带标志符,其指令字长和数据字长均为32位。b处理机的数据带有标志符,每个数据的字长增加至36位,其中有4位是标志符,它的指令数由最多256条减少到不到64条。如果每执行一条指令平均要访问两个操作数,每个存放在存储器中的操作数平均要被访问8次。对于一个由1000条指令组成的程序,分别计算这个程序在a处理机和b处理机中所占用的存储空间大小(包括指令和数据),从中得到什么启发? 5.一台模型机共有7条指令,各指令的使用频率分别为35%,25%,20%,10%,5%,3%和2%,有8个通用数据寄存器,2个变址寄存器。 (1) 要求操作码的平均长度最短,请设计操作码的编码,并计算所设计操作码的平均长度。 6.某处理机的指令字长为16位,有双地址指令、单地址指令和零地址指令3类,并假设每个地址字 段的长度均为6位。 (1) 如果双地址指令有15条,单地址指令和零地址指令的条数基本相同,问单地址指令和零地址指令各有多少条?并且为这3类指令分配操作码。 (2) 如果要求3类指令的比例大致为1:9:9,问双地址指令、单地址指令和零地址指令各有多少条?并且为这3类指令分配操作码。 7.别用变址寻址方式和间接寻址方式编写一个程序,求c=a+b,其中,a与b都是由n个元素组成的一维数组。比较两个程序,并回答下列问题: (1) 从程序的复杂程度看,哪一种寻址方式更好?

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

1. 假设一条指令的执行过程分为“取指令”、“分析”和“执行”三段,每一 段的时间分别是△t 、2△t 和3△t 。在下列各种情况下,分别写出连续执行n 条指令所需要的时间表达式。 ⑴ 顺序执行方式。 ⑵ 仅“取指令”和“执行”重叠。 ⑶ “取指令”、“分析”和“执行”重叠。 答: ⑴ 顺序执行方式 1 2 ...... 1 2 1 2 T =∑=++n 1 i i i i )t t t (执行分析取址=n(△t +2△t +3△t)=6n △t ⑵ 仅“取指令”和“执行”重叠 1 2 ...... 1 2 1 2 T =6△t +∑=+1 -n 1 i i i )t t (执行分析=6△t +(n-1)(2△t +3△t)=(5n +1)△t ⑶ “取指令”、“分析”和“执行”重叠 1 2 3 4 ...... 1 2 3 4 1 2 3 4 △t 2△t 3△t △t 2△t 3△t △t 2△t 3△t

T =6△t +∑=1 -n 1i i )t (执行=6△t +(n-1)(3△t)=(3n +3)△t 2. 一条线性流水线有4个功能段组成,每个功能段的延迟时间都相等,都为 △t 。开始5个任务,每间隔一个△t 向流水线输入一个任务,然后停顿2个△t ,如此重复。求流水线的实际吞吐率、加速比和效率。 答: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ... 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 我们可以看出,在(7n+1)Δt 的时间内,可以输出5n 个结果,如果指令的序列足够长(n →∞),并且指令间不存在相关,那么,吞吐率可以认为满足: )n (t 75 t )n /17(5t )1n 7(n 5TP ∞→?=?+=?+= 加速比为: )n (7 20 n /17201n 7n 20t )1n 7(t 4n 5S ∞→=+=+=?+??= 从上面的时空图很容易看出,效率为: )n (7 5 n /1751n 7n 5t )1n 7(4t 4n 5E ∞→=+=+=?+???= 3. 用一条5个功能段的浮点加法器流水线计算∑==10 1i i A F 。每个功能段的延迟 时间均相等,流水线的输出端与输入端之间有直接数据通路,而且设置有足够的缓冲寄存器。要求用尽可能短的时间完成计算,画出流水线时空图,计算流水线的实际吞吐率、加速比和效率。 答: 首先需要考虑的是“10个数的和最少需要做几次加法?”,我们可以发现,

体系结构课后习题答案

3.某模型机有10条指令I1~I10,它们的使用频度分别为0.3,0.24,0.16,0.12,0.07,0.04,0.03,0.02, 0.01,0.01。 (1)计算采用等长操作码表示时的信息冗余量。 (2)要求操作码的平均长度最短,试设计操作码的编码,并计算所设计操作码的平均长度。 (3)只有二种码长,试设计平均码长最短的扩展操作码编码并计算平均码长。 (4)只有二种码长,试设计平均码长最短的等长扩展码编码并计算平均码长。 3.(1)采用等长操作码表示时的信息冗余量为33.5%。 (2)操作码的Huffman编码法如表2.2所示,此种编码的平均码长为2.7位。 表2.2 操作码的Huffman编码法、2-5扩展码和2-4等长扩展码编码法 (4)操作码的2-4等长扩展码编码法如表2.2所示,此种编码的平均码长为2.92位。 5.若某机设计有如下格式的指令: 三地址指令12种,一地址指令254种,设指令字的长度为16位,每个地址码字段的位数均为4位。若操作码的编码采用扩展操作码,问二地址指令最多可以设计多少种? 5.二地址指令最多可以设计48种。 6.一台模型机共有9条指令I1~I9,各指令的使用频度分别为30%,20%,20%,10%,8%,6%,3%,2%,1%。该模型机有8位和16位两种指令字长。8位字长指令为寄存器-寄存器(R-R)二地址类型,16位字长指令为寄存器-存储器(R-M)二地址变址寻址类型。 (1)试设计有二种码长的扩展操作码,使其平均码长最短,并计算此种编码的平均码长。 (2)在(1)的基础上,该机允许使用多少个可编址的通用寄存器? (3)若采用通用寄存器作为变址寄存器,试设计该机的两种指令格式,并标出各字段的位数。 (4)计算变址寻址的偏移地址范围。 6.(1)操作码的2-5扩展码编码法如表2.3所示,此种编码的平均码长为2.9位。 表2.3 操作码的Huffman编码法和2-4等长扩展码编码法

计算机体系结构课后习题

第1章 计算机系统结构的基本概念 试用实例说明计算机系统结构、计算机组成与计算机实现之间的相互关系。 答:如在设计主存系统时,确定主存容量、编址方式、寻址范围等属于计算机系统结构。确定主存周期、逻辑上是否采用并行主存、逻辑设计等属于计算机组成。选择存储芯片类型、微组装技术、线路设计等属于计算机实现。 计算机组成是计算机系统结构的逻辑实现。计算机实现是计算机组成的物理实现。一种体系结构可以有多种组成。一种组成可以有多种实现。 计算机系统设计中经常使用的4个定量原理是什么?并说出它们的含义。 答:(1)以经常性事件为重点。在计算机系统的设计中,对经常发生的情况,赋予它优先的处理权和资源使用权,以得到更多的总体上的改进。(2)Amdahl 定律。加快某部件执行速度所获得的系统性能加速比,受限于该部件在系统中所占的重要性。(3)CPU 性能公式。执行一个程序所需的CPU 时间 = IC ×CPI ×时钟周期时间。(4)程序的局部性原理。程序在执行时所访问地址的分布不是随机的,而是相对地簇聚。 计算机系统中有三个部件可以改进,这三个部件的部件加速比为: 部件加速比1=30; 部件加速比2=20; 部件加速比3=10 (1) 如果部件1和部件2的可改进比例均为30%,那么当部件3的可改进比例为多少时,系统加速比才可以达到10? (2) 如果三个部件的可改进比例分别为30%、30%和20%,三个部件同时改进,那么系统中不可加速部分的执行时间在总执行时间中占的比例是多少? 解:(1)在多个部件可改进情况下,Amdahl 定理的扩展: ∑∑+-= i i i n S F F S )1(1 已知S 1=30,S 2=20,S 3=10,S n =10,F 1=,F 2=,得: ) ()(10/20/0.330/0.30.30.3-11 1033F F +++++= 得F 3=,即部件3的可改进比例为36%。 (2)设系统改进前的执行时间为T ,则3个部件改进前的执行时间为:(++)T = ,不可改进部分的执行时间为。 已知3个部件改进后的加速比分别为S 1=30,S 2=20,S 3=10,因此3个部件改进后的执行时间为: T T T T T n 045.010 2.020 3.0303.0'=++= 改进后整个系统的执行时间为:Tn = + = 那么系统中不可改进部分的执行时间在总执行时间中占的比例是: 82.0245.02.0=T T 假设某应用程序中有4类操作,通过改进,各操作获得不同的性能提高。具体数据如下表所示: 操作类型 程序中的数量 (百万条指令) 改进前的执行时间 (周期) 改进后的执行时间 (周期)

相关文档
相关文档 最新文档