计组答案与习题

1. CPU执行一段程序时,cache完成存取的次数为1900次,主存完成存取的次数为100

次,已知cache存取周期为50ns,主存存取周期为250ns,求 ⑴ cache的命中率;

⑵ cache/主存系统的效率; ⑶ 平均访问时间。 解: (1)命中率H?NC(NC?Nm)?1900/(1900?100)?0.95 (2)平均访问时间:

Ta?H?Tc?(1?H)?Tm?0.95?50ns?(1?0.95)?250ns?60ns (3)访问效率 e?Tc/Ta?50ns/60ns?100%?83.3%

2.有一个cache的容量为2K字,每块为16字,问: 。

(1)该cache可容纳多少个块?

(2)如果主存的容量是256K字,则有多少个块? (3)主存的地址有多少位? cache的地址有多少位?

(4)在直接映射方式下,主存中的第i块映射到cache中哪一个块? 解:

(1)cache的容量为2K字,每块为16字,则cache中有2048/16=128块 (2)如果主存的容量是256K字,则有256?1 024/16=16384个块。

(3)因为主存的容量是256K=218字,所以主存的地址有18位。cache的容量为2K 字,所以cache的地址有11位。 ,

(4)在直接映射方式下,主存中的第i块映射到cache中第I mod l28个块中。

4.一个虚拟存储器有8个页面,页面大小为1 024字,内存有4个页面框架,页面的内容为:

虚页号 0 1 2 3 4 5 6 7 实页号 3 1 - - 2 - 0 - (1)以下哪些虚拟地址将引起页面失效? (2)对应以下虚拟地址的主存地址是什么?

(a)0 (b)3728 (c)1023 (d)1024 (e)1025 (f)7800 (g)4096 解:题中所给地址对应的主存页面、页内地址、页面失效情况如表所示。

因为页面大小为1 024字,内存有4个页面框架,所以内存地址格式为:

11 10 9 页面 页内地址 实页面为0、页内地址0的虚拟地址所对应的主存地址是:00 0000000000=000H 实页面为0、页内地址1023的虚拟地址所对应的主存地址是:00 1111111111=3FFH 实页面为1、页内地址0的虚拟地址所对应的主存地址是:01 0000000000=400H 实页面为1、页内地址1023的虚拟地址所对应的主存地址是:01 1111111111=7FFH 实页面为2、页内地址0的虚拟地址所对应的主存地址是:10 0000000000=800H 实页面为2、页内地址1023的虚拟地址所对应的主存地址是:10 1111111111=BFFH

实页面为3、页内地址0的虚拟地址所对应的主存地址是:11 0000000000=C00H 实页面为3、页内地址1023的虚拟地址所对应的主存地址是:11 1111111111=FFFH

实页面为1、页内地址1的虚拟地址所对应的主存地址是:01 0000000001=401H

虚页号 0 1 2 3 4 5 6 7 实页号 3 1 - - 2 - 0 -

地址 虚页面 实页面 页内地址 主存地址 实访问情况 0 0 3 0 C00H 有效 3728(E90H) 3 - 656(290H) - 页面失效 1023(3FFH) 0 3 1023 FFFH 有效 1024(400H) 1 1 0 400H 有效 1025(401H) 1 1 1 401H 有效 7800(1E78H) 7 - 632(278H) - 页面失效 4096(1000H) 4 2 0 800H 有效

5.设主存容量4MB,虚存容量1GB,页面大小为4KB。 (1)写出主存地址格式。 (2)写出虚拟地址格式。 (3)页表长度为多少? 解:

(1)主存地址格式为:

21 12 11 0 页号(10位) 页内地址(12位) (2)虚拟地址格式为:

29 12 11 0 页面号(18位) (3)页表长度为218

页内地址(12位) ?256K。

3.设某计算机的cache采用4路组相联映像,己知cache容量为16KB,;主存容量为2MB,每个字块有8个字,每个字有32位。请回答:

(1)主存地址为多少位(按字节编址),各字段如何划分(各需多少位)?

(2)设cache起始为空,CPU从主存单元0,1,……,100。依次读出101个字(主 存—次读出一个字),并重复按此次序数读11次,问命中率为多少?

(3)若cache速度是主存的5倍,问采用cache与无cache比较速度提高多少倍? 解:

(1)●主存容量为2MB,技字节编址,所以主存地址为21位。 ●每个字块有8个字,每个字有32位(4个字节),所以字块的大小为8*4=32个字节,需要5位地址;

●cache采用4路组相联映像,所以组内块号需要2位地址;

●cache容量为16KB=214B,每个组有4路?32B=27B,214B/27B=27,所以组号地址为7位;

●主存害量为2MB=221B,221B/214B=27,所以主存高位地址为7位; 共地址格式如下:

(2)由于每个字块有8个字,所以CPU的0,1,……,100字单元分别在字块0—字块1l和字块12中,采用4路组相联映像将分别映像到第0组—第12组中,但cache起始为空,所以第一次读时没命中,但后面10次可以命中。 · 所以:命中率:10/11=91%

(3)设cache将所有数据读一次的访存时间为T,则主存的时间为5T。 有cache则访存时间:10T+5T=15T 无cache则访存时间:11?5T

所以:速度提高倍数=55/15=3.67倍

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4