计算机系统结构第三章习题解答.docx

上传人:b****3 文档编号:1920489 上传时间:2022-10-25 格式:DOCX 页数:12 大小:236.94KB
下载 相关 举报
计算机系统结构第三章习题解答.docx_第1页
第1页 / 共12页
计算机系统结构第三章习题解答.docx_第2页
第2页 / 共12页
计算机系统结构第三章习题解答.docx_第3页
第3页 / 共12页
计算机系统结构第三章习题解答.docx_第4页
第4页 / 共12页
计算机系统结构第三章习题解答.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

计算机系统结构第三章习题解答.docx

《计算机系统结构第三章习题解答.docx》由会员分享,可在线阅读,更多相关《计算机系统结构第三章习题解答.docx(12页珍藏版)》请在冰豆网上搜索。

计算机系统结构第三章习题解答.docx

计算机系统结构第三章习题解答

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

1.什么是存储系统?

对于一个由两个存储器M1和M2构成的存储系统,假设M1的命中率为h,两个存储器的存储容量分别为s1和s2,存取时间分别为t1和t2,每千字节的成本分别为c1和c2。

⑴ 在什么条件下,整个存储系统的每千字节平均成本会接近于c2?

⑵ 该存储系统的等效存取时间ta是多少?

⑶ 假设两层存储器的速度比r=t2/t1,并令e=t1/ta为存储系统的访问效率。

试以r和命中率h来表示访问效率e。

⑷如果r=100,为使访问效率e>0.95,要求命中率h是多少?

⑸对于⑷中的命中率实际上很难达到,假设实际的命中率只能达到0.96。

现在采用一种缓冲技术来解决这个问题。

当访问M1不命中时,把包括被访问数据在内的一个数据块都从M2取到M1中,并假设被取到M1中的每个数据平均可以被重复访问5次。

请设计缓冲深度(即每次从M2取到M1中的数据块的大小)。

答:

⑴ 整个存储系统的每千字节平均成本为:

不难看出:

当s1/s2非常小的时候,上式的值约等于c2。

即:

s2>>s1时,整个存储器系统的每千字节平均成本会接近于c2。

⑵ 存储系统的等效存取时间ta为:

⑶ 

⑷将数值代入上式可以算得:

h>99.95%

通过缓冲的方法,我们需要将命中率从0.96提高到0.9995。

假设对存储器的访问次数为5,缓冲块的大小为m。

那么,不命中率减小到原来的1/5m,列出等式有:

解这个方程得:

m=16,即要达到⑷中的访问效率,缓冲的深度应该至少是16(个数据单位)。

2.要求完成一个两层存储系统的容量设计。

第一层M1是Cache,其容量有三种选择:

64KB、128KB和256KB,它们的命中率分别为0.7、0.9和0.98;第二层M2是主存储器,其容量为4MB。

并设两个存储器的存取时间分别为t1和t2,每千字节的成本分别为c1和c2。

如果c1=20c2和t2=10t1。

⑴ 在t1=20ns的条件下,分别计算三种存储系统的等效存取时间。

⑵如果c2=0.2美元/KB,分别计算三种存储系统每千字节的平均成本。

⑶ 对三种存储系统的设计作一个比较,并分别按平均成本和等效存取时间指出它们性能的排列次序。

⑷ 根据等效存取时间和平均成本的乘积,选择最优的设计。

答:

⑴ 

∴三种存储系统的等效存取时间分别为:

三种存储系统每千字节的平均成本为:

⑶ 按照平均成本来说ca1

⑷ 

方案

ta(ns)

ca($/KB)

乘积

比较

1

74

0.26

19.24

最差

2

38

0.32

12.16

中等

3

23.6

0.42

9.912

最优

3.有16个存储器模块,每个模块的容量为4M字节,字长为32位。

现在要用这16个存储器模块构成一个主存储器,有如下几种组织方式:

方式1:

16个存储器模块采用高位交叉方式构成存储器。

方式2:

16个存储器模块构成并行访问存储器。

方式3:

16个存储器模块采用低位交叉方式构成存储器。

方式4:

2路高位交叉8路低位交叉构成存储器。

方式5:

4路高位交叉4路低位交叉构成存储器。

方式6:

4路并行访问4路低位交叉构成存储器。

⑴写出各种存储器的地址格式。

⑵比较各种存储器的优缺点。

⑶不考虑访问冲突,计算各种存储器的频带宽度。

⑷画出各种存储器的逻辑示意图。

答:

⑴各种存储器的地址格式如下:

方式1:

16个模块高位交叉

高低

4bit模块号

20bit模块内地址

2bit字地址

方式2:

16个模块并行访问

高低

20bit模块内地址

2bit字地址

4bit多路选择

方式3:

16个模块低位交叉

高低

20bit模块内地址

2bit字地址

4bit模块号

方式4:

2路高位交叉8路低位交叉

高低

1bit组号

20bit模块内地址

2bit字地址

3bit模块号

方式5:

4路高位交叉4路低位交叉

高低

2bit组号

20bit模块内地址

2bit字地址

2bit模块号

方式6:

4路并行访问4路低位交叉

高低

20bit模块内地址

2bit字地址

2bit组号

2bit多路选择

这几种存储器都能够并行工作,因此一般而言都可以用来提高内存的吞吐率。

但他们也有所区别:

并行访问存储器的优点是实现简单、容易,缺点是访问冲突大;高位交叉访问存储器的优点是扩充方便,但是因为访问冲突太大,一般不用于并行存取,缺点是访问效率不高;低位交叉访问存储器可以用分时的方法来提高速度,但扩充不方便。

各种存储器的频带宽度和他们的并行程度有关,在不考虑冲突的情况下,如果有足够多的独立控制电路和寄存器,那么,他们的频带宽度是相同的。

但是,高位交叉访问存储器一般不用于并行存取,因此频带宽度最小。

方式1:

16个模块高位交叉

方式2:

16个模块并行访问

方式3:

16个模块低位交叉

注意:

并行访问存储器和低位交叉访问存储器很相象,只不过,并行访问存储器使用存储模块号(存储体号)来对已经输出的结果进行选择,而低位交叉访问存储器则用来生成对存储模块(存储体)的片选信号,他通过流水的方式来提高访问的速度。

前者用一套存储器控制电路,后者用多套(与交叉模块数相等)存储器控制电路。

方式4:

2路高位交叉8路低位交叉

方式5:

4路高位交叉4路低位交叉

方式6:

4路并行访问4路低位交叉

4.一个程序由5个虚页组成,采用LRU替换算法,在程序执行过程中依次访问的页地址流如下:

P4,P5,P3,P2,P5,P1,P3,P2,P3,P5,P1,P3

⑴可能的最高页命中率是多少?

⑵至少要分配给该程序多少个主存页面才能获得最高的命中率?

⑶如果在程序执行过程中每访问一个页面,平均要对该页面内的存储单元访问1024次,求访问存储单元的命中率。

答:

在分配的主存页面数目足够大的情况下,除了第一次调入不命中,以后的访问均命中,可以达到最高的页面命中率,即:

实际命中的次数为7次,所以可能达到的最高页面命中率为:

由于在页面数大于等于5的情况下,肯定可以达到最高命中率,所以我们来看页面数小于5时能否达到该命中率:

若分配的主存页面数等于4时,调度过程如下:

访问流

P4

P5

P3

P2

P5

P1

P3

P2

P3

P5

P1

P3

统计

LRU

算法

4

4

4

4*

4*

1

1

1

1

1*

1

1

命中

7次

5

5

5

5

5

5

5*

5*

5

5

5

3

3

3

3*

3

3

3

3

3

3

2

2

2

2*

2

2

2

2*

2*

调入

调入

调入

调入

命中

调入

命中

命中

命中

命中

命中

命中

此时也可以达到最高命中率;

若分配的主存页面等于3时,调度过程如下:

访问流

P4

P5

P3

P2

P5

P1

P3

P2

P3

P5

P1

P3

统计

LRU

算法

4

4

4*

2

2

2*

3

3*

3

3

3*

3

命中

3次

5

5

5*

5

5

5*

2

2

2*

1

1

3

3

3*

1

1

1

1*

5

5

5

调入

调入

调入

调入

命中

调入

调入

调入

命中

调入

调入

命中

此时不能达到最高命中率。

所以至少应该分配4个主存页面。

我们假设程序每次只访问一个存储单元,这样,对每一个特定页面的访问过程可以描述如下:

因为第一次总是不命中的,而平均起来,随后的1023次总是命中的,然后再次被调出主存,并再次重复先前的过程。

所以访问存储单元的命中率为:

5.假设在一个采用组相联映象方式的Cache中,主存由B0~B7共8块组成,Cache有2组,每组2块,每块的大小为16个字节,采用LRU块替换算法。

在一个程序执行过程中依次访问这个Cache的块地址流如下:

B6,B2,B4,B1,B4,B6,B3,B0,B4,B5,B7,B3

⑴写出主存地址的格式,并标出各字段的长度。

⑵写出Cache地址的格式,并标出各字段的长度。

⑶画出主存与Cache之间各个块的映象对应关系。

⑷如果Cache的各个块号为C0、C1、C2和C3,列出程序执行过程中Cache的块地址流情况。

⑸如果采用FIFO替换算法,计算Cache的块命中率。

⑹如果采用LRU替换算法,计算Cache的块命中率。

⑺如果改用全相联映象方式,再做⑸和⑹,可以得到什么结论?

⑻如果在程序执行过程中,每从主存装入一块到Cache,则平均要对这个块访问16次。

请计算在这种情况下的Cache命中率。

答:

⑴主存地址的格式为:

高低

1bit区号

1bit组号

1bit组内块号

4bit块内地址

⑵ Cache地址的格式为:

高低

1bit组号

1bit组内块号

4bit块内地址

⑶ 

主存的组到Cache的组之间是直接映象,对应组的块之间是全相联映象。

即:

主存块0、1、4、5只能装入Cache块0、1的任何块位置上,主存块2、3、6、7只能装入Cache块2、3的任何块位置上。

⑷ 

由于主存按Cache大小分区,因此去掉主存块地址中的区号就可以得出满足组相联映象关系的一种Cache块地址,所以该主存块地址流相应的一种Cache的块地址流为:

B6

B2

B4

B1

B4

B6

B3

B0

B4

B5

B7

B3

110

010

100

001

100

110

011

000

100

101

111

011

Cache

10

10

00

01

00

10

11

00

00

01

11

11

C2

C2

C0

C1

C0

C2

C3

C0

C0

C1

C3

C3

⑸ 采用FIFO替换算法,Cache的块命中率为:

3/12=0.25。

访问流

B6

B2

B4

B1

B4

B6

B3

B0

B4

B5

B7

B3

统计

C0

B4

B4*

B4*

B4*

B4*

B0

B0*

B5

B5

B5

命中

3次

C1

B1

B1

B1

B1

B1*

B4

B4*

B4*

B4*

C2

B6

B6*

B6*

B6*

B6*

B6*

B3

B3

B3

B3

B3*

B3*

C3

B2

B2

B2

B2

B2

B2*

B2*

B2*

B2*

B7

B7

动作

调入

调入

调入

调入

命中

命中

调入

调入

调入

调入

调入

命中

⑹ 采用LRU替换算法,Cache的块命中率为:

4/12≈0.33。

访问流

B6

B2

B4

B1

B4

B6

B3

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1