CSAPP 6.17习题解析

CSAPP 6.17习题解析1.题目描述二、答案答案B容易分析答案A中src最后一个为什么是hit?分析:Cache为直接映射一组一行块大小8B映射两个int也就是一个缓存行映射一行数组src始终按行访问dst始终按列访问Cache内容变化过程如下共8次内存引用for(i=0;i<2;i++) for(j=0;j<2;j++ dst[j][i]=src[i][j];//src行访问顺序src[0][0]src[0][1]src[

1. 题目描述在这里插入图片描述

二、答案在这里插入图片描述

  1. 答案B容易分析 答案A中src最后一个为什么是hit?
  2. 分析:Cache为直接映射一组一行 块大小8B 映射两个int 也就是一个缓存行映射一行数组
  3. src 始终按行访问 dst始终按列访问 Cache内容变化过程如下 共8次内存引用
for (i = 0; i < 2; i++)
	for (j = 0; j < 2; j++
		dst[j][i] = src[i][j];
// src行访问顺序 src[0][0] src[0][1] src[1][0] src[1][1] 
// dst列访问顺序 dst[0][0] dst[1][0] dst[1][0] dst[1][1] 
  
(1)访问src[0][0]  src[0][0]映射到块0  初始Cache为空   不命中  同时加载sr[0][1]到Cache块0

	Cache 
	0 | src[0][0] | src[0][1] |
	1 |           |           |
	
(2)访问dst[0][0] dst[0][0]映射到块0  不命中  同时加载dst[0][1]到Cache块0

	Cache 
	0 | dst[0][0] | dst[0][1] |
	1 |           |           |
	
(3)访问src[0][1]  src[0][1]映射到块0  不命中  同时加载sr[0][0]到Cache块0

	Cache 
	0 | src[0][0] | src[0][1] |
	1 |           |           |
	
(4)访问dst[1][0] dst[1][0]映射到块1  不命中  同时加载dst[1][1]到Cache块1

	Cache 
	0 | src[0][0] | src[0][1] |
	1 | dst[1][0] | dst[1][1] |
	
(5)访问src[1][0]  src[1][0]映射到块1  不命中  同时加载sr[1][1]到Cache块1

	Cache 
	0 | src[0][0] | src[0][1] |
	1 | src[1][0] | src[1][1] |
	
(6)访问dst[0][1] dst[0][1]映射到块0  不命中  同时加载dst[0][0]到Cache块0

	Cache 
	0 | dst[0][0] | dst[0][1] |
	1 | src[1][0] | src[1][1] |
	
(7)访问src[1][1]  命中

	Cache 
	0 | dst[0][0] | dst[0][1] |
	1 | src[1][0] | src[1][1] |
	
(8)访问dst[1][1] dst[1][1]映射到块1  不命中  同时加载dst[1][0]到Cache块1

	Cache 
	0 | dst[0][0] | dst[0][1] |
	1 | dst[1][0] | dst[1][1] |
	
// 结论
1. dst 全部不命中
2. src 只有最后一个命中

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/38351.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注