《计算机组成原理》课后题答案_清华大学出版_秦磊华_吴非··

12Tag (标记) Index(索引) 块内字地址

10 2 7

4、14 某计算机中主存容量为4MB,Cache容量为16KB,每块包含8个字,每字32位,映射方式采用4路组相联、设Cache得初始状态为空,CPU依次从主存第0,1,2,…,99号单元读出100个字(每次读一个字),并重复此操作10次、替换算法采用LRU、 (1)求Cache得命中率

(2)若Cache比主存块10倍,分析采用Cache后存储访问速度提高了多少?

解:(1)0,1,2,…,99号单元共100个字,每块8个字,故100个字被分配在13块内。

Cache中能存放得主存块数为:16KB/8=2K块

因为就是四路组相联,故每组中包含得块数为:2K/4=512块

由于Cache得初始状态为空,根据前面得分析,13块数据调入Cache后不会被调出,所有10次访问中,每块第一次访问不命中外,其余访问均可命中,因此10次循环访问共访问内存100*10 =1000次,其中不命中得次数只有13次。 则Cache得命中率为:(1000-13)/1000=98、7%

(2)设访问Cache得访问时间为T(访问一个数据单元所用得时间),则访问主存得访问时间为10T,故有:

使用Cache后访存所用时间为:T2=13*10T+(1000-13)*T=1117T 不使用Cache访问耗时为:T1=10000T

故使用了Cache后速度提高了:10000T/1117T=8、95倍

4、15 假定某数组元素按行优先顺序存放在主存中,则以下两段伪代码A与B中: (1)分析两段代码中对数组访问得时间局部性与空间局部性、 (2)分析变量SUM得时间局部性与空间局部性、

(3)分析for循环体对指令访问得时间局部性与空间局部性、

Int sum_array_A(int a[M][N]) { Int i,j,sum=0; For (i=0;i

解:(1)由于数组在内存中按照行优先存放,数据按块从主存映射到Cache中.

而程序A中对数组访问就是按行优先方式进行得,故有很好得空间局部性,但由于每个数组元素只使用一次,故不存在时间局部性;

而程序B中对数组访问就是按列优先方式进行得,故没有空间局部性,由于每个数组元素只使用一次,故不存在时间局部性;

(2)变量SUM就是单个变量,因此两段程序对该变量得访问不存在空间局部性,由于变量在循环中被多次使用,故具有两好得时间局部性.

(3)在for循环中对指令访问都很好得体现了时间局部性与空间局部性。

4、16 主存容量为8MB,虚存容量为2GB,分页管理时若页面大小为4KB,求出对应得VPN、VPO、PPN、PPO得位数。

解:虚存所包含得页面数为:2GB/4KB=512K页

故VPN得位数为:19位

由于页面得大小为4KB,故VPO与PPO得位数均为:12位 主存所包含得页面个数为:8MB/4KB=2K 故PPN得位数为:11位

4、17 某页式虚拟存储器共8页,每页1KB,主存容量为4KB,页表如表4、12所示、

表4、12 某页式虚拟存储器得页表

虚页号 实页号 装入位 0 1 2 3 4 5 6 7 3 2 1 2 3 1 0 0 1 1 0 0 1 0 1 0 (1)失效得页有哪几页? (2)虚地址(用十进制数表示)0,3028,1023,2048,4096,

>>鐏炴洖绱戦崗銊︽瀮<<
12@gma联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4